refactor(di): rework the way we build modules