add user model and authentication