class RecoveryPresenter {

  @Nonnull
  public Completable startPresenting() {
    return Completable.create(emitter -> {
      synchronized (startStopPresentingLock) {
        if (currentlyPresenting.compareAndSet(false, true)) {
          subscribeToEvents();
        }
        
        emitter.onComplete();
      }
    });
  }

  public  RecoveryPresenter(
      @Nonnull final RecoveryView view,
      @Nonnull final Scheduler presentationScheduler,
      @Nonnull final Scheduler viewScheduler,
      @Nonnull final RxShamir rxShamir,
      @Nonnull final SecretEncoder secretEncoder,
      @Nonnull final PersistenceOperations persistenceOperations,
      @Nonnull final RxFiles rxFiles);

}