feat(injector): allows registering a provider and uses its
feat(injector): injects the  method of a provider