revert: refactor merge recursive code into its own function