Fig. 1. Relationships between objects in the model-document-view architecture. Arrows indicate data communication between objects. Communication between model(s) and document is bidirectional while data flow between document and views may be unidirectional or bidirectional.