Add validate / invalidate behavior
Add undo / redo support for validation / invalidation