Research in robotics has primarily progressed along two parallel paths: high-level planning concerned with generating detailed plans from abstract specifications, and low-level control concerned with the role of sensors and manipulators and focusing on the dynamics of realistic domains. In trying to achieve robust performance, researchers interested in low-level control have tried to dispense with complex representations. At the same time, researchers concerned with designing reasonably autonomous robots are convinced that high-level specifications (and their attendant complex representations) are crucial. The fact is different sorts of decision making require representations and computations of varying degrees of complexity and time criticality. The trick is to integrate the different types of decision making and control in a single framework. We describe an architecture for control that makes use of several functionally independent modules each of which has a set of provable properties specific to its particular function. The various modules communicate using representations designed with the particular real-time processing requirements of the communicating modules in mind. The architecture makes it possible for slow modules to communicate with fast modules without interrupting critical behaviors. We believe that our approach will enable us to preserve the desirable properties of the functionally independent modules while at the same time achieving the (relative) singularity of purpose necessary for useful high-level control.