Completed event processing rewrite
functionality is the same as before again, there may still be some graphical bugs