add User model and authentication