core injector refactor