finalized redesign iterators