GUISE is an object-oriented framework designed for the construction of direct manipulation user-interfaces adapted to existing, graph-structured applications. The GUISE interface model consists of three orthogonal components: abstraction, presentation and layout. User-editable graphs made of abstraction objects represent the syntax and semantics of the application domain. Manipulating these abstract structures involves a presentation level made of graphical symbol objects. Layout pattern objects act upon the presentation level to enforce domain-dependent placement rules, moving graphical symbols when necessary. This paper focuses on two original aspects of the GUISE design with respect to orthogonal user interface designs. First, each type of component has its own ''part-whole'' hierarchy, loosely coupled with the other component types' hierarchies. Second, layout components are implemented by role synthesis, which requires mapping specific layout roles to standard graphical symbol objects at runtime.