introduce ISchedule(<T>)
implement Scheduler