docs: function ProcessManagement(options) {
    EventEmitter.call(this);
  
    options = options || {};
  
    if (!options.sagaPath && options.sagaPath !== '') {
      var err = new Error('Please provide sagaPath in options');
      debug(err);
      throw err;
    }
  
    var defaults = {
      commandRejectedEventName: 'commandRejected'
    };
  
    _.defaults(options, defaults);
  
    this.structureLoader = createStructureLoader(options.structureLoader);
    this.sagaStore = sagastore.create(options.sagaStore);
  
    options.retryOnConcurrencyTimeout = options.retryOnConcurrencyTimeout || 800;
  
    var defaultRevOpt = {
      queueTimeout: 1000,
      queueTimeoutMaxLoops: 3//,
      // startRevisionNumber: 1
    };
  
    if (options.revisionGuard !== false) {
      options.revisionGuard = options.revisionGuard || {};
      _.defaults(options.revisionGuard, defaultRevOpt);
      this.revisionGuardStore = revisionGuardStore.create(options.revisionGuard);
    }
  
    this.options = options;
  
    this.definitions = {
      command: {
        id: 'id'
  ////      name: 'name',                   // optional
  ////      aggregateId: 'aggregate.id',    // optional
  ////      context: 'context.name',        // optional
  ////      aggregate: 'aggregate.name',    // optional
  ////      payload: 'payload',             // optional
  ////      revision: 'revision',           // optional
  ////      version: 'version',             // optional
  //      meta: 'meta'                    // optional (will be passed directly to corresponding event(s))
      },
      event: {
  ////      correlationId: 'correlationId', // optional
  ////      id: 'id',                       //optional
        name: 'name'
  ////      aggregateId: 'aggregate.id',    // optional
  //      context: 'context.name',        // optional
  //      aggregate: 'aggregate.name',    // optional
  ////      payload: 'payload',             // optional
  ////      revision: 'revision'            // optional
  //      version: 'version',             // optional
  //      meta: 'meta'                    // optional (will be passed directly from corresponding command)
      }
    };
  
    this.idGenerator(function () {
      return uuid().toString();
    });
  
    // DO not register a "dummy" onCommand handler because of getTimeoutedSagas handling
    // this.onCommand(function (cmd) {
    //   debug('emit:', cmd);
    // });
  
    this.onEventMissing(function (info, evt) {
      debug('missing events: ', info, evt);
    });
  }