In this paper, we show that designing large situation calculus theories can be made simple by using object-oriented techniques and tools together with established solutions to the frame problem. Situation calculus (McCarthy-Hayes 1969) is one of the leading logical models for action and change, but large situation calculus theories are not easy to design and maintain, nor are they flexible for extension or reuse. However, we wish to use it to represent large, complex domains. To solve this problem, we apply our proposed methodology to situation calculus theories and analyze the composition of theories in its light. The object-oriented tools that we use do not change the semantics for situation calculus, so all the original situation calculus results apply in our setting and vice versa. We get two additional results from this approach. First, we offer a new treatment to loosely interacting agents that uses situation calculus without abandoning the -result- formalism. This treatment allows a theory-builder to construct a theory without considering its potential inclusion in a multiple-agents setup. Second, theories that we build in this way admit specialized reasoning algorithms.