class UseCase {

    @SuppressWarnings("unchecked")
    public void execute( Subscriber UseCaseSubscriber ) {

        this.subscription = this.buildUseCaseObservable()
                .subscribeOn( Schedulers.from( threadExecutor ) )
                .observeOn( postExecutionThread.getScheduler() )
                .subscribe( UseCaseSubscriber );

    }

    protected  UseCase( ThreadExecutor threadExecutor, PostExecutionThread postExecutionThread );

}