add functions
merge