Removed static definition for model validation rules
Refactored model scaffolding stuff into a trait
Added select list method into trait
Moved properties trait into a requirement