General merge