WIP - Add scheduler

Got the Scheduler working but need some help with the implementation. Wanted to keep the API as simple as possible. Feel free to comment & we can collaborate via this pull request.