public StateTransition RegisterCarQueueing() { if (_isAllowedToLetTrafficThrough()) { return(StateTransition.Push(new RedLightAboutToChange())); } return(StateTransition.Push(new RedLightWaitingForAccess(_isAllowedToLetTrafficThrough))); }