code: protected Flowable<Map.Entry<Integer, PropertySource>> aggregateResults(InfoSource[] sources) {
          List<Publisher<Map.Entry<Integer, PropertySource>>> publishers = new ArrayList<>(sources.length);
          for (int i = 0; i < sources.length; i++) {
              int index = i;
              Single<Map.Entry<Integer, PropertySource>> single = Flowable
                  .fromPublisher(sources[i].getSource())
                  .first(new EmptyPropertySource())
                  .map((source) -> new AbstractMap.SimpleEntry<>(index, source));
              publishers.add(single.toFlowable());
          }
          return Flowable.merge(publishers);
      }
docs: Create a {@link Flowable} of ordered {@link PropertySource} from an array of {@link InfoSource}.
  
  @param sources Array of {@link InfoSource}
  @return An {@link Flowable} of {@link java.util.Map.Entry}, where the key is an {@link Integer} and value is the
  {@link PropertySource} returned by the {@link InfoSource}