class NestedIterator implements Iterator<T> {

	@Override
	public T next() {
		if (this.innerIterator == null) {
			throw new NoSuchElementException();
		}
		T result = this.innerIterator.next();
		if (!this.innerIterator.hasNext()) {
			advanceOuterIterator();
		}
		return result;
	}

	public  NestedIterator(Iterable<? extends Iterable<T>> iterableOfIterables);

}