public Path walkPath() {
    Path small = PathUtils.convertPath(full, super.walkPath());
    this.graph = full;
    
    Path maxresult = small;
    
    if (small.size() > maxLength.get() - EXTENSION_CUTOFF) {
      for (int x = 0; x < EXTENSION_ITERATIONS; x++) {
        Path path = super.walkPath(small);
        if (path.size() > maxresult.size()) {
          maxresult = path;
        }
      }
    }
    this.graph = reduced;
    return maxresult;
  }