Implement CancellationTokenSource
Add tests for `run`