code: protected MapBinder<String, MessageOutput.Factory2<? extends MessageOutput>> outputsMapBinder2() {
          return MapBinder.newMapBinder(binder(),
                  TypeLiteral.get(String.class),
                  new TypeLiteral<MessageOutput.Factory2<? extends MessageOutput>>() {
                  });
      }
docs: See comments in MessageOutput.Factory and MessageOutput.Factory2 for details