Initial implementation of the SingleThreadedScheduler
Also includes unit tests!