Add event system with events, using Java's new MethodHandles. IDK if it works. It probably doesn't. Also flesh out some other stuff