@Override
				public Integer next() {
					if (!backingIterator.hasNext()) {
						// if we're out of primes, we need to resize and get a new iterator
						resizeCaches();
						backingIterator = primeListCache.listIterator();
						// fast forward to our old position.
						// TODO: optimize this
						while (backingIterator.next() != last);
					}
					return last = backingIterator.next();
				}