introduce ScheduleLeaf and ScheduleBranch