vastly simpler event handler adding, removal