public virtual void ChangeState(AbstractState newState) { Helper.GuardNotNull(newState); _state = newState; OnStateChanged(); }