Refactor BaseModel to be less dumb.