event bindings refactored