add model validations
somewhat finish p5