Adding pre and post-eval validation and expression preparation (all virtual functions in datum)