base event class