docs: public void immediateDispatchTo(Object listener, Event event) {
  		assert event != null;
  		Iterable<BehaviorGuardEvaluator> behaviorGuardEvaluators = null;
  		synchronized (this.behaviorGuardEvaluatorRegistry) {
  			behaviorGuardEvaluators = AgentInternalEventsDispatcher.this.behaviorGuardEvaluatorRegistry
  					.getBehaviorGuardEvaluatorsFor(event, listener);
  		}
  		if (behaviorGuardEvaluators != null) {
  			final Collection<Runnable> behaviorsMethodsToExecute;
  			try {
  				behaviorsMethodsToExecute = evaluateGuards(event, behaviorGuardEvaluators);
  				executeBehaviorMethodsInParalellWithSynchroAtTheEnd(behaviorsMethodsToExecute);
  			} catch (RuntimeException exception) {
  				throw exception;
  			} catch (InterruptedException | ExecutionException | InvocationTargetException e) {
  				throw new RuntimeException(e);
  			}
  
  		}
  	}