Enhancement #2:  Added before and after validation events
Bugfix:  validate was incorrectly being called on load