tree operations
merge