merge implementations