Architectures sometimes are organized into components which operate asynchronously. This is usually done to reduce the complexity of the environment for each component by focusing it on a specific subset or layer of importance.. On one extreme of asynchronous design is Behavior-Based programming (R.A.Brooks), which is made up of many narrowly focused asynchronous components. Another example of asynchronous operation is Guardian's (B. Hayes-Roth) perception/action systems which operate asynchronously with the cognition system.