added optional CancellationTokenSource param to operations