1. A method comprising: defining a plurality of different processes for analyzing and manipulating a document comprising a plurality of primitive elements; and defining a storage for data associated with the primitive elements, wherein at least some of the data is stored in a separate memory space from the processes and is shared by at least two different processes, wherein the processes access the data by use of references to the data, wherein the data is not replicated by the processes.