implement merge