created seperate package for algorithm providers, added tests to show that a given algorithm provider is well formed, added functions SchedulerFactory to help override algorithm provider config choices