code: public IPromise<KSubscription> _subscribe( Callback subscriber ) {
          if ( subscribers == null )
              subscribers = new HashMap<>();
          int id = subsIdCount++;
          KSubscription subs = new KSubscription(self(), id);
          subscribers.put( id, new SubscriberEntry(id, subs, subscriber) );
          return new Promise<>(subs);
      }
docs: private / as validation needs to be done synchronously, its on callerside. This is the async part of impl