The inner workings of the system are encapsulated at different degrees by the various levels. The invoking routine only needs to know the behavior of the called routine as opposed to its representation. Thus, low-level changes are automatically propagated throughout the system. Similarly, the system can be scaled up to handle new types of objects. For example, QuickTime movies or sound files could easily be supported.
Users can specify multiple windows and subwindows with different coordinate systems.
To put it mildly, coordinating objects in the same region with different coordinate systems is problematic. To create their own classes of objects, users need to acquire an understanding of the design of objects and the principles of inheritance. Through interaction with the system, some working knowledge of the behavior of objects may result. The question is how to refine this knowledge so that users begin to design modular software. Radio boxes provide a familiar starting point with some widget-like interactions.