code: public <T> Component unregister(Class<T> type, Annotation qualifier) throws ProviderMissingException {
          //Detach corresponding provider from  it's component
          Provider<T> provider = findProvider(type, qualifier);
          provider.setComponent(null);
  
          String key = PokeHelper.makeProviderKey(type, qualifier);
          Component targetComponent = getRootComponent().componentLocator.get(key);
  
          targetComponent.providers.remove(key);
          if (targetComponent.scopeCache != null) {
              targetComponent.scopeCache.removeInstance(PokeHelper.makeProviderKey(type, qualifier));
          }
  
          Component root = getRootComponent();
          //Remove it from root component's locator
          root.componentLocator.remove(key);
  
          return this;
      }
docs: Find the provider in this {@link Component} and its descents. If the provider is found,
  detach it from its associated {@link Component}. After this point, the provider will use its
  own scope instances.
  @param type The type of the provider
  @param qualifier The qualifier of the provider
  @return this instance
  
  @throws ProviderMissingException Thrown when the provider with the given type and qualifier
  cannot be found under this component