fix recursively merge