added user password hashing and validation