refactoring
add mergehelper