code: public static void createAsync(final TemplateBasedViewBuilderClient client) {
          GWT.runAsync(new RunAsyncCallback() {
              public void onFailure(Throwable err) {
                  client.onUnavailable();
                  throw new IllegalStateException(err);
              }
  
              public void onSuccess() {
                  GWTVizPlot.createAsync(new GWTVizPlot.GWTVizPlotClient() {
                      @Override
                      public void onSuccess(GWTVizPlot gwtVizPlot) {
                          if (instance == null) {
                              instance = new TemplateBasedViewBuilder(gwtVizPlot);
                          }
                          client.onSuccess(instance);
                      }
  
                      @Override
                      public void onUnavailable() {
                          throw new IllegalStateException("unable to load plotter");
                      }
                  });
  
  
              }
          });
      }
docs: Access the module's instance.  The callback
  runs asynchronously, once the necessary
  code has downloaded.