refactoring custom user provider and admin user controller