First draft of new event system