Rewrote the event system. Again.