separated events into different types