add callback interface to Scheduler