stawel merge: separating ProgramMenus from Programs
stawel merge: separating ProgramDCcycle from Program
stawel merge: optimization, adding Strategy::exitImmediately