code: function run(command, state, callback)
  {
    var error = new Error()
      , cb
      , runner
      , terminator
      , control
      ;
  
    // handle different kinds of commands
    switch (typeof command)
    {
      case 'function':
        runner = runFunction;
        break;
  
      case 'string':
      case 'object':
        runner = runCommand;
        break;
  
      default:
        error.message = 'Unsupported command type: [' + (typeof command) + '] ' + command;
        callback(error); // eslint-disable-line callback-return
        return;
    }
  
    // make sure it called only once
    cb = once(callback);
  
    // runner would return terminator function,
    // invoked it will signal ongoing task to stop what it's doing.
    terminator = runner.call(state, {}, command, cb);
  
    control =
    {
      callback  : cb,
      terminator: terminator
    };
  
    return control;
  }
docs: Runs single command, accepts functions, strings or arrays (and objects)
  runs provided functions within state context
  and passes rest to `executioner` with `state` object as parameters
  
  @private
  @param   {mixed} command - command to run
  @param   {object} state - current state
  @param   {function} callback - invoked after finished executing
  @returns {object} - invoke ready terminator function and
  callback reference to prevent undesired calls