events: validate data before save