public static Assembler createGenericAssembler(String toolName, ConanExecutorService ces) {

    AssemblerArgs args = createProcessArgs(toolName);

    if (args == null) return null;

    ServiceLoader<Assembler> procLoader = ServiceLoader.load(Assembler.class);

    for (Assembler assembler : procLoader) {
      if (assembler.getName().equalsIgnoreCase(toolName.trim())) {
        assembler.initialise(args.toConanArgs(), ces);
        return assembler;
      }
    }

    return null;
  }