Lots of explanatory comments. Secondary Sort expressed in terms of Scala types instead of Java types
Killing SecondarySort as it adds a lot of complexity for a relative edge case
Tidy up imports and comments -> javadocs
Reordered for clarity