loose coupling between PhaseManager & Ghost. phase is managed exclusively by PhaseManager