Почему CancellationToken отличается от CancellationTokenSource?

Я ищу объяснение того, почему .NET CancellationTokenstruct была введена в дополнение к CancellationTokenSourceклассу. Я понимаю, как следует использовать API, но хочу также понять, почему он так устроен. Т.е. почему у нас: var cts = new CancellationTokenSource();...