create user model with auth methods