 
 // MARK: - NSOutlineViewDataSource
 extension FileOutlineView {
+
+  fileprivate func prepare(_ children: [FileBrowserItem]) -> [FileBrowserItem] {
+    return children.filter { !$0.fileItem.isHidden }.sorted()
+  }
 
   func outlineView(_: NSOutlineView, numberOfChildrenOfItem item: Any?) -> Int {
     if item == nil {

    }

    self.adjustColumnWidth(for: fileBrowserItem.children, outlineViewLevel: level)
    return fileBrowserItem.children.filter({ !$0.fileItem.isHidden })[index]
  }

  func outlineView(_: NSOutlineView, isItemExpandable item: Any) ->  Bool {
    guard let fileBrowserItem = item as? FileBrowserItem else {
      return false
    }

    return fileBrowserItem.fileItem.isDir
  }

  @objc(outlineView: objectValueForTableColumn:byItem:)
  func outlineView(_: NSOutlineView, objectValueFor: NSTableColumn?, byItem item: Any?) -> Any? {
    guard let fileBrowserItem = item as? FileBrowserItem else {
      return nil
