subtree merge