Seperated out scheduler code into header, implementation, and test file