anchor.diff:  
     public void start()
     {
  -    preStart();
  -<% if repository.arez? -%>
  -    setupArezLocator();
  -<% end -%>
   <% if repository.appcache? -%>
       setupAppCache();
   <% end -%>
  -<% if repository.keycloak? && repository.imit? -%>
  -    setupReplicantToken();
  +<% if repository.imit? -%>
  +    prepareReplicant();
   <% end -%>
       setupUncaughtExceptionHandler();
  -    prepareServices();
  -    prepareUI();
  -    postStart();
  +    performStart();
  +  }
  +
  +  protected final void postInjetorSetup()
  +  {
  +<% if repository.arez? -%>
  +    registerArezLocator();
  +<% end -%>
  +<% if repository.imit? -%>
  +    registerReplicantConnector();
  +<% end -%>
     }
   
     private void setupUncaughtExceptionHandler()
  
positive.code:   protected abstract void onAppcacheUpdateReadyEvent();
  <% end -%>
  
    protected void postStart()
    {
    }
  
    protected void preStart()
    {
    }
  
    protected void prepareServices()
    {
  <% if repository.imit? -%>
      replicant.WebStorageCacheService.install();
      elemental2.dom.DomGlobal.window.addEventListener( "beforeunload", e -> replicant.Replicant.context().deactivate(), true );
  <% end -%>
    }
  
    protected abstract void prepareUI();
  
    protected void onUncaughtException( @javax.annotation.Nonnull final Throwable e )
    {
  
negative.code:   }
  <% if repository.arez? -%>
  
    private void registerArezLocator()
    {
      arez.Arez.context().registerLocator( ensureInjector().getLocator() );
    }
  