Some more work on the iterator.  Almost working.  I have ideas for how to fix it in a bit.