code: function (o) {
      if (!o.src) {
        throw new Error('src dir missing');
      }
  
      var opts = _.extend({}, defaults, o);
  
      var hasStyle = function () {
        return !!opts.style;
      };
  
      var stream = vfs.src(opts.src)
        .pipe(tile(opts))
        .on('error', handleError())
        .pipe(layout(opts))
        .on('error', handleError())
        .pipe(sprite(opts))
        .on('error', handleError())
        .pipe(ifStream(hasStyle, style(opts)))
        .on('error', handleError())
        .pipe(toVinyl(opts))
        .on('error', handleError())
        .pipe(through2(function (obj, enc, cb) {
          if (obj instanceof Error) {
            cb(obj, null);
          }
          else {
            cb(null, obj);
          }
        }));
  
      return stream;
    }
docs: /*
  returns a Readable/Writable stream of vinyl objects with sprite and style files