class SingleTimeout extends CompletionSingle<T> {

    @Override
    public void subscribe(Flow.Subscriber<? super T> subscriber) {
        TimeoutSubscriber<T> parent = new TimeoutSubscriber<>(subscriber, fallback);
        subscriber.onSubscribe(parent);

        parent.setFuture(executor.schedule(parent, timeout, unit));

        source.subscribe(parent);
    }

      SingleTimeout(Single<T> source, long timeout, TimeUnit unit,
                  ScheduledExecutorService executor, Single<T> fallback);

}