added new function: surface-merge