allow custom collection iterators