generalizing event handler implicit