- Locality matters
use arrays or vectors
- Whole-Part Relationships and Composite Objects
- Connected (all parts of the whole are reachable from the whole)
- Noncircular (something can not be a part of itself (directly or indirectly)
- Logically disjoint (an object can be shared between two other objects but if one of those objects are changed the other is not)
- Owning (if an object is copied/deleted all its parts are copied/deleted too)