seperating finding the byte offsets from generating the iterator