some updates to the iterator