refactored login providers