split off Eval.  Simplify a lot of proofs, quite a lot
merge