we need to rewrite approach to nested objects sometime. right now we clone using object.create so all the magic getters etc work.