reduction and eigenvectors swapping is working