Chapter 6: make a basic user model (including secure passwords)