write section on diagonalization