Created BaseModel, which can automatically create nested models when parsing data
Added recursive option to BaseModel.toJSON() to deal with nested submodels