code: public Component register(Object providerHolder) throws ProvideException,
              ProviderConflictException {
          Method[] methods = providerHolder.getClass().getDeclaredMethods();
          for (Method method : methods) {
              if (method.isAnnotationPresent(Provides.class)) {
                  registerProvides(providerHolder, method);
              }
          }
          return this;
      }
docs: <p>
  Register component where methods annotated by {@link Provides} will be registered as
  injection providers. When allowOverride = false, it allows to register overriding
  binding against the same type and {@link Qualifier} and <b>last wins</b>, otherwise
  {@link ProviderConflictException} will be thrown.
  </p>
  
  <pre>
  component.register(new Object(){
  @ Provides
  @ EventBusV
  public EventBus createEventBusV() {
  return eventBusV;
  }
  });
  </pre>
  
  @param providerHolder The object with methods marked by {@link Provides} to provide injectable
  instances
  @return this instance
  @throws ProvideException          Thrown when exception occurs during providers creating instances
  @throws ProviderConflictException Thrown when duplicate registries detected against the same
  type and qualifier.