More flexible IteratorProxy