structure reorg and refactoring...
reverting to making Scheduler an interface.