refactor Iterator __next__()