docs: function provecss(string, options) {
    options             = options || {};
    this.browsers       = options.browsers;
    if (options.path) {
      this.import_path  = path.basename(options.path);
      this.import_base  = options.base || path.dirname(options.path);
    }
    this.import_filter  = options.import_filter;
    this.vars           = options.vars;
    this.media_match    = options.media_match;
    this.media_extract  = options.media_extract;
  
    //not run autoprefixer by default
    if (this.browsers) {
      string = prefixes(this.browsers).process(string).css;
    }
  
    //handle import inlining if any
    if (this.import_path) {
      var opts = {
        path: this.import_path,
        base: this.import_base,
        target: this.import_filter
      };
      string = rework(string).use(imprt(opts)).toString();
    }
  
    //filter media query if any
    if (this.media_match) {
      if (!this.media_match.width || !this.media_match.height) {
        throw new Error('Must provide device width and device height');
      }
      var extractOptions = {
        deviceOptions: {
          width: this.media_match.width,
          height: this.media_match.height,
          orientation: this.media_match.orientation || 'any'
        },
        extractQuery: this.media_extract
      };
      string = rework(string).use(move).use(extract(extractOptions)).toString();
    }
  
    if (this.vars) {
      string = rework(string).use(vars).toString();
    }
  
    return rework(string, options)
      .use(hex)
      .use(color)
      .use(calc)
      .toString(options);
  }