Needs testing.
Not figured out yet, but here's something to test.
Prevent double initialization of custom types.   Fixed a bug with how I initialized the ValueIterator.