parser.parse = function(str, options, cb) {
  var csv = requires.csv || (requires.csv = require('parse-csv'));
  if (typeof options === 'function') {
    cb = options;
    options = {};
  }

  var opts = extend({headers: {included: true}}, options);
  try {
    opts.jsonType = opts.jsonType || 'jsonDict';
    cb(null, JSON.parse(csv.to(opts.csv, stripBOM(str), opts)));
  } catch (err) {
    cb(err);
    return;
  }
};