This makes looping over the phases much simpler which maintaining support for phase-name lookup.
and two-phase functionality separated from multiphase functionality