Move logic into a validate function
- Moved away from automatically handling for submissions since we can't guarantee event order
- Added a public validate and onValidSubmit function wrapper
- Updated the example