moved the scheduler out into it's own package