implemented basic User model (chapter 6)