Updated with Gems
updating with  authentication module
updated with user model