Perhaps interruptOnCancel should be part of the cancel action? Then you don't need this extra property which is kind of weird.