refactored omniauth