Once the archetypal node and edge objects are defined with appropriate attributes and methods, then a code representation of the real system can be constructed, where nodes (representing people or localities) and contact routes are instances of node and edge objects, respectively. The whole network is also an object with its own set of attributes and methods. In fact, Epigrass also allows for multiple edge sets in order to represent multiple contact networks in a single model. Figure 1 Architecture of an Epigrass simulation model. A simulation object contains the whole model and all other objects representing the graph, sites and edges. Site object contaim model objects, which can be one of the built-in epidemiological models or a custom model written by the user.