started iterators refactoring