code: public void addOutputExtension(OutputExtensionModel<?, ?> outputExtension) throws IllegalIDException {
          if (outputExtensions.containsKey(outputExtension.getPluginId())) {
              outputExtensions.get(outputExtension.getPluginId()).add(outputExtension);
          } else {
              IdentifiableSet<OutputExtensionModel<?, ?>> outputExtensionList = new IdentifiableSet<>();
              outputExtensionList.add(outputExtension);
              outputExtensions.put(outputExtension.getPluginId(), outputExtensionList);
          }
          IdentificationManager.getInstance().getIdentification(outputExtension)
                  .ifPresent(id -> outputPlugins.stream()
                          .filter(outputPlugin -> outputPlugin.getID().equals(outputExtension.getPluginId()))
                          .forEach(outputPlugin -> outputPlugin.outputExtensionAdded(id)));
      }
docs: adds output extension to desired outputPlugin
  <p>
  adds output extension to desired outputPlugin, so that the output-plugin can start and stop the outputExtension
  task as needed. The outputExtension is specific to the output-plugin
  
  @param outputExtension the outputExtension to be added
  @throws IllegalIDException not yet implemented