make a startSchedule() method so it is more obvious what happens where
a bit more refactoring/cleanup