complete the iterators and generators part.