injector refactoring, added typed framework