merge implemented