updated CollectionIterator, some more testing to be done before finalized