private void completeLeave() {
    currentState.onLeaveComplete();
    prevState = currentState;
    currentState = nextState;
    nextState = null;
    leaving = null;

    if (entering == null) {
      completeEnter();
    }
  }