rewrote iterator as multi-pass--it's not pretty but it solves it!