introduce the full diagonalization