basic user model and authentication
finish chapter 6