docs: function (path, absolute, filter) {
    // Argument flipping
    if (typeof absolute === 'object') {
      filter = absolute;
      absolute = false;
    }
    else if (typeof absolute !== 'boolean') {
      absolute = false;
    }
  
    // Call super constructor
    Stream.call(this);
    // Set readable
    this.readable = true;
    // Remember path
    this.path = path;
    // Emit absolute paths?
    this.absolute = absolute;
    // File list
    this.files = [];
    // Total number of files
    this.total = 0;
    // Filter regex
    this.filter = filter;
    // Is currently streaming, internal
    this._streaming = false;
    // Files have been loaded
    this._filesLoaded = false;
  
    // Check if target directory exists
    var self = this;
    Stat(path, function (err, stats) {
      // Error stating path
      if (err) {
        self.emit('error', err);
        self.end();
        return;
      }
      // Target path not directory
      else if (!stats.isDirectory()) {
        self.emit('error', new Error('Target path is not a directory.'));
        self.end();
        return;
      }
  
      // Scan directory
      ReadDir(path, function (err, files) {
        self.handleFiles.apply(self, arguments);
      });
    });
  }