a much better function name
moved the scheduler out into it's own package