added validation on all three models