void Initialize(
            ITestBinaryNotifier testBinaryNotifier,
            ITestContainerFactory containerFactory)
        {
            this.containerFactory = containerFactory;

            testBinaryNotifier.PathStream.Subscribe(_ =>
            {
                RaiseTestContainersUpdated();
            })
            .DisposeWith(disposables);

            var noDllPaths = new string[0];

            var hotContainerStream = testBinaryNotifier.PathStream
                                     .StartWith(noDllPaths)
                                     .Select(MapToContainers)
                                     .Replay(1); // "remember" last observation when TestContainers is requested for the first time

            hotContainerStream.Connect().DisposeWith(disposables);

            containerStream = hotContainerStream;
        }
 // Unit tests need a constructor with injected dependencies
 public NSpecTestContainerDiscoverer(
     ITestBinaryNotifier testBinaryNotifier,
     ITestContainerFactory containerFactory)
 {
     Initialize(testBinaryNotifier, containerFactory);
 }