DRY up a bit
Better formatting
GroupingByKeyIterator