add user model for authentication and complete with its functinalites