The central editor code has four sets of object-oriented interfaces to various subsystems, including database access, geometry processing, display management, and command parser/human interface. In each case, a common interface has been defined for the set of functions that implement the subsystem; multiple instances of these function sets can exist. The routines in each instance of a subsystem are completely independent of all the routines in other functions sets, making it easy to add new instances of the subsystem. A new type of primitive geometry, a new display manager, a new database interface, or a new command processor can each be added simply by writing all the routines to implement a new subsystem. This approach greatly simplifies software maintenance, and allows different groups to have responsibility for the creation and enhancement of features within each of the subsystems.