Added cancel event, useful in edge-cases, typically one would invoke the `end` event, but we should let the developer decide.