Clean up
More clean up
Experiment with non-abstract iterators
Merge from origin