public static <TElement, TCollection extends Collection<TElement>> TCollection addAllFlat(final TCollection target, final Iterable<? extends Iterable<? extends TElement>> sources) {
        if (target != null && sources != null) {
            for (Iterable<? extends TElement> source : sources) {
                for (TElement element : source) {
                    target.add(element);
                }
            }
        }
        return target;
    }