one-way merge