start of User model and controller