more work on iterators