public void onComplete(final Consumer<OnComplete> fn){
  this.forXOf=fn;
  if (done) {
    fn.accept(buildOnComplete());
  }
}

public void onComplete ( final Consumer < OnComplete > fn ) { this . forXOf = fn ; if ( done ) { fn . accept ( buildOnComplete ( ) ) ; } }
called at least once on complete
