user model and user authentication complete