Aside: Creation Order

In general, the order of creation of objects is "preorder". A composite is created before its property values. Within a composite component, the objects that are its properties are created in a documented order -- the order that the properties appear in its property table. The creation order is best described recursively with pseudo-code:

Object preOrderCreate(Type type) {
    Object obj = createNewInstance(type);
    foreach property of type {
        obj.property = preOrderCreate(type of property);
    } 
    return obj;
}

The creation order has implications for the use of global variables. The document describing global variables also contains good example of creation order.