code: public Optional<EventCallable> registerEventPublisher(Identification identification) throws IllegalIDException {
          if(registered.containsKey(identification)) return Optional.empty();
          EventPublisher eventPublisher = new EventPublisher(events);
          registered.put(identification, eventPublisher);
          return Optional.of(eventPublisher);
      }
docs: with this method you can register EventPublisher add a Source of Events to the System.
  <p>
  This method represents a higher level of abstraction! Use the EventManager to fire Events!
  This method is intended for use cases where you have an entire new source of events (e.g. network)
  @param identification the Identification of the Source
  @return An Optional Object which may or may not contains an EventPublisher
  @throws IllegalIDException not yet implemented