docs: private <I> void addConsideringOrder(Map<String, I> map, I newEntry) {
      for(Map.Entry<String, I> entry : map.entrySet()) {
        if(entry.getValue() instanceof MustBeAfter<?>) {
          final Class<? extends ClassLoaderPreMortemCleanUp>[] existingMustBeAfter = 
              ((MustBeAfter<ClassLoaderPreMortemCleanUp>)entry.getValue()).mustBeBeforeMe();
          for(Class<? extends ClassLoaderPreMortemCleanUp> clazz : existingMustBeAfter) {
            if(clazz.isAssignableFrom(newEntry.getClass())) { // Entry needs to be after new entry
              // TODO Resolve order automatically #51
              throw new IllegalStateException(clazz.getName() + " must be added after " + newEntry.getClass());
            }
          }
        }
      }
      
      map.put(newEntry.getClass().getName(), newEntry);
    }