Make events polymorphic