Refactor Model into Model and BaseModel