private boolean nextInterval() {
          List<Supplier<? extends T>> intervals = currentNode.intervals;
          while (indexInCurrentList < intervals.size()) {
            T t = intervals.get(indexInCurrentList).get();
            indexInCurrentList++;
            if (t != null) {
              current = t;
              return true;
            }
          }
          indexInCurrentList = 0;
          return false;
        }
private boolean nextInterval()