basic user model following Hartl ch 7