renamed to final iterator_provider