completed Chapter6, added User model