added form validation and new controllers/models