for some reason ,prevent diagonally swapping