docs: @Override
      @Trivial
      //marked trivial as there will be one of these per wab, and they get told about all bundles in the framework..
      //so we don't want that in the trace all the time
      public void removedBundle(Bundle bundle, BundleEvent event, WAB wab) {
          if (bundle.getBundleId() == wabBundleId) {
              synchronized (terminated) {
                  if (terminated.get()) {
                      installer.wabLifecycleDebug("SubTracker unable to remove bundle, as has been terminated.", this, wab);
                      //if we are terminated, then the WABGroup will be handling the uninstall
                      //and state transitions.. so it's important not to get involved here.
                      return;
                  } else {
                      installer.wabLifecycleDebug("Sub Tracker for WAB processing remove event", wab);
                      //invoke the removal logic.
                      //we already hold the terminated lock, so will be allowed to continue in that method.
                      removeWAB();
                      terminateWAB();
                  }
              }
          }
      }