docs: private static Collection<Runnable> evaluateGuards(final Event event,
  			final Iterable<BehaviorGuardEvaluator> behaviorGuardEvaluators) throws InvocationTargetException {
  
  		final MultiCollection<Runnable> behaviorsMethodsToExecute = new MultiCollection<>();
  
  		try {
  			StreamSupport.stream(behaviorGuardEvaluators.spliterator(), true).forEach(evaluator -> {
  				final Collection<Runnable> behaviorsMethodsToExecutePerTarget = Lists.newLinkedList();
  				evaluator.evaluateGuard(event, behaviorsMethodsToExecutePerTarget);
  				synchronized (behaviorsMethodsToExecute) {
  					behaviorsMethodsToExecute.addCollection(behaviorsMethodsToExecutePerTarget);
  				}
  			});
  		} catch (Exception exception) {
  			if (exception instanceof InvocationTargetException) {
  				throw (InvocationTargetException) exception;
  			}
  			final Throwable t = exception.getCause();
  			if (t instanceof InvocationTargetException) {
  				throw (InvocationTargetException) t;
  			}
  			throw exception;
  		}
  
  		return behaviorsMethodsToExecute;
  	}