Adding `this.events[id]?.()` cleans up the listener. I removed `opts.cancel()` because with it, the event had issues firing after the first time. Resolves: #1242
Adding `this.events[id]?.()` cleans up the listener. I removed `opts.cancel()` because with it, the event had issues firing after the first time. Resolves: #1242