add port function
merge