refactor(di): rework the way we build modules

Related to #38