class SingleTappedPublisher extends CompletionSingle<T> {

    @Override
    public void subscribe(Flow.Subscriber<? super T> subscriber) {
        Objects.requireNonNull(subscriber, "subscriber is null");
        source.subscribe(new MultiTappedSubscriber<>(subscriber,
                onSubscribeCallback, onNextCallback,
                onErrorCallback, onCompleteCallback,
                onRequestCallback, onCancelCallback));
    }

      SingleTappedPublisher(Single<T> source,
                          Consumer<? super Flow.Subscription> onSubscribeCallback,
                          Consumer<? super T> onNextCallback,
                          Consumer<? super Throwable> onErrorCallback,
                          Runnable onCompleteCallback,
                          LongConsumer onRequestCallback,
                          Runnable onCancelCallback);

}