adding authentication and user model