docs: function (callback) {
          debug('inject all needed dependencies...');
  
          self.revisionGuard = new RevisionGuard(self.revisionGuardStore, self.options.revisionGuard);
          self.revisionGuard.onEventMissing(function (info, evt) {
            self.onEventMissingHandle(info, evt);
          });
  
          self.eventDispatcher = new EventDispatcher(self.tree, self.definitions.event);
          self.tree.defineOptions(self.options)
            .defineEvent(self.definitions.event)
            .defineNotification(self.definitions.notification)
            .idGenerator(self.getNewId)
            .useRepository(self.repository);
  
          self.revisionGuard.defineEvent(self.definitions.event);
  
          self.replayHandler = new ReplayHandler(self.eventDispatcher, self.revisionGuardStore, self.definitions.event, self.options);
  
          callback(null);
        }