See patch comments for details. All three are not massive. 1) Comparison and sorting collections 2) Taking part of the code from long module and putting it into a new module for readability 3) Adding new functionality to the module created in previous patch