Implement User model and authentication