added user management and password hashing