initialize/start/stop/finalize should check that the current phase is valid