private IDisposable BindAdditions() { return(Roots.ObserveAdditions() .SubscribeOn(RxApp.TaskpoolScheduler) .ObserveOn(RxApp.MainThreadScheduler) .SubscribeWithLog(path => { var watcher = new DirectoryWatcher(path); var builder = new FileExplorerNodeBuilder(watcher, path); var subscription = builder.GetActions() .SubscribeOn(RxApp.TaskpoolScheduler) .ObserveOn(RxApp.MainThreadScheduler) .SubscribeWithLog(builder.HandleAction); Nodes.Add(builder.Root); _roots.Add(path, builder.Root); _disposables.Add(path, subscription); })); }