Refactoring DI & loader.core