move _swapImpl