code: public CommunicationGroupDriver getNewInstance(
        final Class<? extends Name<String>> groupName,
        final Class<? extends Topology> topologyClass,
        final int numberOfTasks,
        final int customFanOut) throws InjectionException {
  
      final Injector newInjector = injector.forkInjector();
      newInjector.bindVolatileParameter(CommGroupNameClass.class, groupName);
      newInjector.bindVolatileParameter(TopologyClass.class, topologyClass);
      newInjector.bindVolatileParameter(CommGroupNumTask.class, numberOfTasks);
      newInjector.bindVolatileParameter(TreeTopologyFanOut.class, customFanOut);
      return newInjector.getInstance(CommunicationGroupDriver.class);
    }
docs: Instantiates a new CommunicationGroupDriver instance.
  @param groupName specified name of the communication group
  @param topologyClass topology implementation
  @param numberOfTasks minimum number of tasks needed in this group before start
  @param customFanOut fanOut for TreeTopology
  @return CommunicationGroupDriver instance
  @throws InjectionException