Try to be more compatible.

- Do not rely on `.once()` but `.on()`.
- Do not try to remove listeners if `.removeListener()` is not defined.