added basic user model with authentication