Finally allow models to be arbitrarily sub-structured and both be manipulated and observed at this finer level. This allows us to more reasonably deal with complex data structures and is also a pre-requisite for using modern DOM-manipulation solutions like RactiveJS, etc