Refactor merge() to be pointer-heavy. Less code now, just more complex.