Thinking before writing this time ... how would that be any different than this?

```java
    public final static <T> Observable<T> create(final OnSubscribe<T> f) {
        return new Observable<T>(new OnSubscribe<T>() {

            @Override
            public void call(Subscriber<? super T> s) {
                System.out.println("*** onSubscribe");
                s.onSubscribe();
                f.call(s);
            }
        });
    }
```

Even though the function `f` is not yet invoked when wrapped, I don't see it any differently as far as lifecycle that if the abstract class has not yet invoked `onCall`.

Perhaps once all operators are migrated to using `lift` so that only the origins use `OnSubscribe` this is sufficient?