           self.beFirstResponder()
         }
 
-        var reloadData = false
-
-        if self.isShowHidden != state.fileBrowserShowHidden {
-          self.isShowHidden = state.fileBrowserShowHidden
-          reloadData = true
-        }
-
-        if state.cwd != self.cwd {
-          self.lastFileSystemUpdateMark = state.lastFileSystemUpdate.mark
-          self.root = FileBrowserItem(state.cwd)
-
-          reloadData = true
-        }
-
-        if reloadData {
-          self.lastFileSystemUpdateMark = state.lastFileSystemUpdate.mark
-          self.reloadData()
+        guard self.reloadData(for: state) else {
           return
         }
+
+        self.isShowHidden = state.fileBrowserShowHidden
+        self.lastFileSystemUpdateMark = state.lastFileSystemUpdate.mark
+        self.root = FileBrowserItem(state.cwd)
+        self.reloadData()
       })
       .disposed(by: self.disposeBag)
   }


  required init?(coder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
  }

  fileprivate func update(_ url: URL) {

    self.doubleAction = #selector(FileOutlineView.doubleClickAction)

    source
      .filter { !self.reloadData(for: $0) }
      .filter { $0.lastFileSystemUpdate.mark != self.lastFileSystemUpdateMark }
      .throttle(2 * FileMonitor.fileSystemEventsLatency + 1,
                latest: true,
                scheduler: SerialDispatchQueueScheduler(qos: .background))
