@Override
  public final void back() {
    removeInvalidFilesFromStacks();
    if (backPlaces.isEmpty()) {
      return;
    }

    PlaceInfo info = backPlaces.removeLast();
    project.getMessageBus().syncPublisher(RecentPlacesListener.TOPIC).recentPlaceRemoved(info, false);

    PlaceInfo current = getCurrentPlaceInfo();
    if (current != null) {
      forwardPlaces.add(current);
    }

    myBackInProgress = true;
    try {
      executeCommand(() -> gotoPlaceInfo(info), "", null);
    }
    finally {
      myBackInProgress = false;
    }
  }
@Override
  public final void back()