Added validations and associations