I don't see any problems with all the overloaded methods here exactly because they are all pre-implemented in `AbstractScheduler`. I'm not sure whether there's any advantage in having `Scheduler` as interface separate from the `AbstractScheduler` class. It might be more confusing than useful. - I'm very used to traits (in Scala) already, though...