added user model validation and started adding password hashing