rename merge_recursive to mergeRecursive and add new methods