add more validations on models and controllers