define a generic event type