refactoring and remove unused providers for now