Fix tests
Reimplement merge strategy to be O(1) rather than O(n)