feature detect eventListener instead of try catch