In this paper we describe the subsumption architecture, a design methodology for multiprocessor control systems. The architecture is based on a new decomposition of problems into task-achieving behaviors. This decomposition allows us to incrementally construct more competent robots by adding new behaviors. We demonstrate this by showing how two different control systems can be built on top of the same set of core behaviors. We have implemented both systems and have run them on a real mobile robot. The details and performance of each will be discussed.