code: protected Iterator<T> doIterator() throws Throwable {
          final ToHandlerIterator<T> iterator = new ToHandlerIterator<T>(this);
          iterator.submit();
          return iterator;
      }
docs: Implementation method responsible of producing an Iterator over the elements of the Stream.
  This method is called by {@link #iterator()} with the guarantee that it is called at most
  once and with the Stream in the <i>available</i> state. If the returned Iterator implements
  the {@link Closeable} interface, it will be automatically closed when the Stream is closed.
  
  @return an Iterator over the elements of the Stream
  @throws Throwable
  in case of failure