implemented user model