introduce ISchedule[Mode, Leaf, Branch]