worked on index iterators