Refactor component loading + use own DI