add recursive walk of models objects so that you can nest models.

This should make it so that you can have nested models of any depth.