The purpose of this chapter is to once again illustrate the design of a program as a universe of interacting agents working together to produce the desired outcome.