@Override
 public T next() {
   return iterator.next();
 }
 @Override
 public void close() {
   iterator.close();
   this.closed = true;
 }
 @Override
 public boolean hasNext() {
   return iterator.hasNext();
 }
 @Override
 public void remove() {
   iterator.remove();
 }