The ability to create objects (whether nodes or links) or list them is common across the system irrespective of the kind of object. Hence, these can be shared processes reacting differently based on the type of object being acted upon (similar to the object-oriented concept of operator overloading). The shared process of creation can be extended to create templates.