code: function output (err, value) {
        // Buffer err and value for
        // sending in case we do not have
        // a callback yet
        if (arguments.length >= 1) {
          buffer.push([err, value])
        }
  
        // We have something to output
        // and a callback, do it
        if (_cb && buffer.length > 0) {
          var cb = _cb
          _cb = null
          var call = buffer.shift()
          cb(call[0], call[1])
        }
      }
docs: Interface:  output(): drain remaining values output(err, value): stores value to send output.setCb(cb): set the next callback