Refactor MergingReader, pulling out a class