class RandomSelector implements Supplier<Mono<T>> {

    @Nullable
    public T next() {
        if (size > 1) {
            T t = elements.get(ThreadLocalRandom.current().nextInt(size));
            if (t == null) {
                t = elements.get(0);
            }
            return t;
        } else if (size == 1) {
            return elements.get(0);
        } else {
            return null;
        }
    }

    public  RandomSelector(String name, List<T> elements);

}