scheduler is now an interface again.