organize events into types