working on implementing iterators