Refactoring to extend BaseModel with validate() method