different edge case with swapping