give up on reverse_merge - without mutation its less efficient than it was originally