When all items have been processed, iterator should: - store last iteration in history - return the final result saying iteration have been successful. So it gets stored by the executor It was not doing the first step, so we were losing the last iteration. Splitting into separated function + adding tests