Much better merge algorithm. Cleaner by far.