increased extensibility of iterator