did more work on Model's constructor, this refactoring is only halfway done as a new kind of datatype is needed to dynamically handle _id attributes