optimize utils.merge