eigenvalue stuff