refactored authentication providers