This looks okay now. One question to @benjchristensen : what should be the class visibility of the scheduler implementations?