chapter 6: user model
update