code: function FilesNode(src, raw, config) {
    utils.define(this, 'isFilesNode', true);
    this.options = utils.omit(raw.options, ['mapDest', 'flatten', 'rename', 'filter']);
    this.src = utils.arrayify(src);
  
    if (this.options.resolve) {
      var cwd = path.resolve(this.options.cwd || process.cwd());
      this.src = this.src.map(function(fp) {
        return path.resolve(cwd, fp);
      });
    }
  
    if (raw.options.mapDest) {
      this.dest = mapDest(raw.dest, src, raw);
    } else {
      this.dest = rewriteDest(raw.dest, src, raw.options);
    }
  
    // copy properties to the new node
    for (var key in raw) {
      if (key !== 'src' && key !== 'dest' && key !== 'options') {
        this[key] = raw[key];
      }
    }
    util.run(config, 'filesNode', this);
  }
docs: Create a new `Node` with the given `src`, `raw` node and
  `config` object.
  
  @param {String|Array} `src` Glob patterns
  @param {Object} `raw` FilesNode with un-expanded glob patterns.
  @param {Object} `config`
  @return {Object}