reconstruct EventPublish interface to support all events.