public Task Start(CancellationToken token)
        {
            return(Task.Factory.StartNew(() =>
            {
                while (!token.IsCancellationRequested)
                {
                    CreateSnapshots(eventStore.GetStreamsToSnapshot(threshold).ToArray());

                    token.WaitHandle.WaitOne(checkInterval);
                }
            }));
        }