first revision of ::merge