schedules refactoring (stage 1)
schedules refactoring (stage 2)
schedules refactoring (stage 3)