add validity check for the diagonalization precision
describe design goals and make requirements more precise