Iterators refactor