add authentication, validations in user model