more documentation
allow splitting, sorting and transforming customizations in NewReader
refactor out the tail extraction
ordering was incorrectly affected by the transform functions