Chapter 6: basic user model