private PlaceInfo getTargetForwardInfo() {
    if (forwardPlaces.isEmpty()) return null;

    PlaceInfo target = forwardPlaces.removeLast();
    PlaceInfo current = getCurrentPlaceInfo();

    while (!forwardPlaces.isEmpty()) {
      if (current != null && isSame(current, target)) {
        target = forwardPlaces.removeLast();
      }
      else {
        break;
      }
    }
    return target;
  }
private PlaceInfo getTargetForwardInfo()