replaced event listener shim