simpler, working iterator