Graphs are commonly used to model relations in computer systems. Nodes are used to represent entities in an application, and edges represent relationships between entities. Many graph based applications need to provide user interfaces for the user to create and edit graphs depicted as diagrams. The underlying graph model should be powerful enough to represent a wide range of applications yet simple enough to enable good layout. In this paper we propose a new model: cigraphs. In a cigraph, each node may consist of a (sub)cigraph. Layout functions are assigned to nodes (that is, to sub-cigraphs) in an object-oriented fashion; this allows considerable user control of layout. Keywords: graph, graph drawing, formalism, cigraph, user interface. ...