distinguish different event type