Work Towards Nested Attributes

This gets us a long way there. There's some problems with types and we need a proper list implementation.