         console.error(err)
         process.exit(1)
       else
-        list[opt.arg].optarg = true
+        opt.optarg = true
+        @_setOptionArg(opt, listName)
 
 # processes `process.arv' producing two arrays, one containing options,
 # their indexes and any arguments passed in the `--OPTION=ARG' fashion,

            index: ind }))

  _runCallbacks: () =>
    @_cooked.forEach((food) =>
      optarg = food.cb.apply(@, [food.optarg])
      food.names.forEach((name) =>
        yummy = optarg
        @_eaten[name] = yummy))

  _clean: () =>
    Object.keys(@).forEach((key) =>
      if /^_/.test(key)
        [
          '_runCallbacks',
          '_log',
          '_raw',
          '_cooked',
          '_eaten',
          '_help'
        ].forEach((target) =>
          if key isnt target
            delete @[key]))
    return @

  parse: () =>
    @_makeHelp()
    @_gather()
    @_resolveOpts()
    #@_runCallbacks()

module.exports = Bebopt

        ++child.index # increment child.index again to set it to its own index
        child.name = name
        child.list = listName
        child.arg = undefined
        # give parent a pointer to its child
        self._parent.child = child
        self._options.push(child)
