Now that we implement disconnect, we can probably drop the `canceled` everywhere. Simpler design FTW.