event creation and validation