finalized user model with secure passwords and authentication