updating to enable different schedulers via factory and interface