refactored some of your event stuff, we can kill this  commit if you want