diff --git a/modules/apps/callbacks/testing/simapp/app.go b/modules/apps/callbacks/testing/simapp/app.go
index b1e260384be..54be2c89580 100644
--- a/modules/apps/callbacks/testing/simapp/app.go
+++ b/modules/apps/callbacks/testing/simapp/app.go
@@ -12,6 +12,7 @@ import (
 	"github.com/spf13/cast"
 
 	coreaddress "cosmossdk.io/core/address"
+	appmodule "cosmossdk.io/core/appmodule"
 	"cosmossdk.io/log"
 	storetypes "cosmossdk.io/store/types"
 	"cosmossdk.io/x/accounts"
@@ -587,33 +588,33 @@ func NewSimApp(
 
 	// NOTE: Any module instantiated in the module manager that is later modified
 	// must be passed by reference here.
-	app.ModuleManager = module.NewManager(
-		genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
-		accounts.NewAppModule(appCodec, app.AccountsKeeper),
-		auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
-		vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
-		bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
-		feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
-		gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
-		mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
-		slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
-		distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
-		staking.NewAppModule(appCodec, app.StakingKeeper),
-		upgrade.NewAppModule(app.UpgradeKeeper),
-		params.NewAppModule(app.ParamsKeeper),
-		consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
+	app.ModuleManager = module.NewManagerFromMap(map[string]appmodule.AppModule{
+		genutiltypes.ModuleName:        genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
+		accounts.ModuleName:            accounts.NewAppModule(appCodec, app.AccountsKeeper),
+		authtypes.ModuleName:           auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
+		vestingtypes.ModuleName:        vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
+		banktypes.ModuleName:           bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
+		feegrant.ModuleName:            feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
+		govtypes.ModuleName:            gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
+		minttypes.ModuleName:           mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
+		slashingtypes.ModuleName:       slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
+		distrtypes.ModuleName:          distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
+		stakingtypes.ModuleName:        staking.NewAppModule(appCodec, app.StakingKeeper),
+		upgradetypes.ModuleName:        upgrade.NewAppModule(app.UpgradeKeeper),
+		paramstypes.ModuleName:         params.NewAppModule(app.ParamsKeeper),
+		consensusparamtypes.ModuleName: consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
 
 		// IBC modules
-		ibc.NewAppModule(appCodec, app.IBCKeeper),
-		transfer.NewAppModule(appCodec, app.TransferKeeper),
-		ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
-		ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
-		mockModule,
+		ibcexported.ModuleName:      ibc.NewAppModule(appCodec, app.IBCKeeper),
+		ibctransfertypes.ModuleName: transfer.NewAppModule(appCodec, app.TransferKeeper),
+		ibcfeetypes.ModuleName:      ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
+		icatypes.ModuleName:         ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
+		mockModule.Name():           mockModule,
 
 		// IBC light clients
-		ibctm.NewAppModule(tmLightClientModule),
-		solomachine.NewAppModule(smLightClientModule),
-	)
+		ibctm.ModuleName:       ibctm.NewAppModule(tmLightClientModule),
+		solomachine.ModuleName: solomachine.NewAppModule(smLightClientModule),
+	})
 
 	app.ModuleManager.RegisterLegacyAminoCodec(legacyAmino)
 	app.ModuleManager.RegisterInterfaces(interfaceRegistry)
diff --git a/modules/light-clients/08-wasm/testing/simapp/app.go b/modules/light-clients/08-wasm/testing/simapp/app.go
index ee74bd75f6c..90cc9d4e8de 100644
--- a/modules/light-clients/08-wasm/testing/simapp/app.go
+++ b/modules/light-clients/08-wasm/testing/simapp/app.go
@@ -17,6 +17,7 @@ import (
 	apisigning "cosmossdk.io/api/cosmos/tx/signing/v1beta1"
 	"cosmossdk.io/client/v2/autocli"
 	coreaddress "cosmossdk.io/core/address"
+	appmodule "cosmossdk.io/core/appmodule"
 	corestore "cosmossdk.io/core/store"
 	"cosmossdk.io/log"
 	storetypes "cosmossdk.io/store/types"
@@ -698,36 +699,36 @@ func NewSimApp(
 
 	// NOTE: Any module instantiated in the module manager that is later modified
 	// must be passed by reference here.
-	app.ModuleManager = module.NewManager(
-		genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
-		auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
-		vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
-		bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
-		feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
-		gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
-		mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
-		slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
-		distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
-		staking.NewAppModule(appCodec, app.StakingKeeper),
-		upgrade.NewAppModule(app.UpgradeKeeper),
-		evidence.NewAppModule(appCodec, app.EvidenceKeeper, cometService),
-		params.NewAppModule(app.ParamsKeeper),
-		authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.interfaceRegistry),
-		groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
-		consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
+	app.ModuleManager = module.NewManagerFromMap(map[string]appmodule.AppModule{
+		genutiltypes.ModuleName:        genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
+		authtypes.ModuleName:           auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
+		vestingtypes.ModuleName:        vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
+		banktypes.ModuleName:           bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
+		feegrant.ModuleName:            feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
+		govtypes.ModuleName:            gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
+		minttypes.ModuleName:           mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
+		slashingtypes.ModuleName:       slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
+		distrtypes.ModuleName:          distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
+		stakingtypes.ModuleName:        staking.NewAppModule(appCodec, app.StakingKeeper),
+		upgradetypes.ModuleName:        upgrade.NewAppModule(app.UpgradeKeeper),
+		evidencetypes.ModuleName:       evidence.NewAppModule(appCodec, app.EvidenceKeeper, cometService),
+		paramstypes.ModuleName:         params.NewAppModule(app.ParamsKeeper),
+		authz.ModuleName:               authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.interfaceRegistry),
+		group.ModuleName:               groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
+		consensusparamtypes.ModuleName: consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
 
 		// IBC modules
-		ibc.NewAppModule(appCodec, app.IBCKeeper),
-		transfer.NewAppModule(appCodec, app.TransferKeeper),
-		ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
-		ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
-		mockModule,
+		ibcexported.ModuleName:      ibc.NewAppModule(appCodec, app.IBCKeeper),
+		ibctransfertypes.ModuleName: transfer.NewAppModule(appCodec, app.TransferKeeper),
+		ibcfeetypes.ModuleName:      ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
+		icatypes.ModuleName:         ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
+		mockModule.Name():           mockModule,
 
 		// IBC light clients
-		wasm.NewAppModule(appCodec, app.WasmClientKeeper), // TODO(damian): see if we want to pass the lightclient module here, keeper is used in AppModule.RegisterServices etc
-		ibctm.NewAppModule(tmLightClientModule),
-		solomachine.NewAppModule(smLightClientModule),
-	)
+		wasmtypes.ModuleName:   wasm.NewAppModule(appCodec, app.WasmClientKeeper), // TODO(damian): see if we want to pass the lightclient module here, keeper is used in AppModule.RegisterServices etc
+		ibctm.ModuleName:       ibctm.NewAppModule(tmLightClientModule),
+		solomachine.ModuleName: solomachine.NewAppModule(smLightClientModule),
+	})
 
 	app.ModuleManager.RegisterLegacyAminoCodec(legacyAmino)
 	app.ModuleManager.RegisterInterfaces(interfaceRegistry)
diff --git a/simapp/app.go b/simapp/app.go
index ccac26e4a27..2ac4e0c639e 100644
--- a/simapp/app.go
+++ b/simapp/app.go
@@ -17,6 +17,7 @@ import (
 	"cosmossdk.io/client/v2/autocli"
 	clienthelpers "cosmossdk.io/client/v2/helpers"
 	coreaddress "cosmossdk.io/core/address"
+	appmodule "cosmossdk.io/core/appmodule"
 	corestore "cosmossdk.io/core/store"
 	"cosmossdk.io/log"
 	storetypes "cosmossdk.io/store/types"
@@ -685,40 +686,40 @@ func NewSimApp(
 
 	// NOTE: Any module instantiated in the module manager that is later modified
 	// must be passed by reference here.
-	app.ModuleManager = module.NewManager(
-		genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
-		accounts.NewAppModule(appCodec, app.AccountsKeeper),
-		auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
-		vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
-		bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
-		feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
-		gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
-		mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
-		slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
-		distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
-		staking.NewAppModule(appCodec, app.StakingKeeper),
-		upgrade.NewAppModule(app.UpgradeKeeper),
-		params.NewAppModule(app.ParamsKeeper),
-		evidence.NewAppModule(appCodec, app.EvidenceKeeper, cometService),
-		authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.interfaceRegistry),
-		groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
-		nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
-		consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
-		circuit.NewAppModule(appCodec, app.CircuitKeeper),
-		protocolpool.NewAppModule(appCodec, app.PoolKeeper, app.AuthKeeper, app.BankKeeper),
-		epochs.NewAppModule(appCodec, app.EpochsKeeper),
+	app.ModuleManager = module.NewManagerFromMap(map[string]appmodule.AppModule{
+		genutiltypes.ModuleName:   genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
+		accounts.ModuleName:       accounts.NewAppModule(appCodec, app.AccountsKeeper),
+		authtypes.ModuleName:      auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
+		vestingtypes.ModuleName:   vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
+		banktypes.ModuleName:      bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
+		feegrant.ModuleName:       feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
+		govtypes.ModuleName:       gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
+		minttypes.ModuleName:      mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
+		slashingtypes.ModuleName:  slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
+		distrtypes.ModuleName:     distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
+		stakingtypes.ModuleName:   staking.NewAppModule(appCodec, app.StakingKeeper),
+		upgradetypes.ModuleName:   upgrade.NewAppModule(app.UpgradeKeeper),
+		evidencetypes.ModuleName:  evidence.NewAppModule(appCodec, app.EvidenceKeeper, cometService),
+		paramstypes.ModuleName:    params.NewAppModule(app.ParamsKeeper),
+		authz.ModuleName:          authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.interfaceRegistry),
+		group.ModuleName:          groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
+		nft.ModuleName:            nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
+		consensustypes.ModuleName: consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
+		circuittypes.ModuleName:   circuit.NewAppModule(appCodec, app.CircuitKeeper),
+		pooltypes.ModuleName:      protocolpool.NewAppModule(appCodec, app.PoolKeeper, app.AuthKeeper, app.BankKeeper),
+		epochstypes.ModuleName:    epochs.NewAppModule(appCodec, app.EpochsKeeper),
 
 		// IBC modules
-		ibc.NewAppModule(appCodec, app.IBCKeeper),
-		transfer.NewAppModule(appCodec, app.TransferKeeper),
-		ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
-		ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
-		mockModule,
+		ibcexported.ModuleName:      ibc.NewAppModule(appCodec, app.IBCKeeper),
+		ibctransfertypes.ModuleName: transfer.NewAppModule(appCodec, app.TransferKeeper),
+		ibcfeetypes.ModuleName:      ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
+		icatypes.ModuleName:         ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
+		mockModule.Name():           mockModule,
 
 		// IBC light clients
-		ibctm.NewAppModule(tmLightClientModule),
-		solomachine.NewAppModule(smLightClientModule),
-	)
+		ibctm.ModuleName:       ibctm.NewAppModule(tmLightClientModule),
+		solomachine.ModuleName: solomachine.NewAppModule(smLightClientModule),
+	})
 
 	app.ModuleManager.RegisterLegacyAminoCodec(legacyAmino)
 	app.ModuleManager.RegisterInterfaces(interfaceRegistry)
diff --git a/testing/simapp/app.go b/testing/simapp/app.go
index 15430a455fe..d7ca75cc6ed 100644
--- a/testing/simapp/app.go
+++ b/testing/simapp/app.go
@@ -16,6 +16,7 @@ import (
 	"cosmossdk.io/client/v2/autocli"
 	clienthelpers "cosmossdk.io/client/v2/helpers"
 	coreaddress "cosmossdk.io/core/address"
+	appmodule "cosmossdk.io/core/appmodule"
 	corestore "cosmossdk.io/core/store"
 	"cosmossdk.io/log"
 	storetypes "cosmossdk.io/store/types"
@@ -655,39 +656,39 @@ func NewSimApp(
 
 	// NOTE: Any module instantiated in the module manager that is later modified
 	// must be passed by reference here.
-	app.ModuleManager = module.NewManager(
-		genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
-		accounts.NewAppModule(appCodec, app.AccountsKeeper),
-		auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
-		vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
-		bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
-		feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
-		gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
-		mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
-		slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
-		distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
-		staking.NewAppModule(appCodec, app.StakingKeeper),
-		upgrade.NewAppModule(app.UpgradeKeeper),
-		params.NewAppModule(app.ParamsKeeper),
-		evidence.NewAppModule(appCodec, app.EvidenceKeeper, cometService),
-		authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.interfaceRegistry),
-		groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
-		nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
-		consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
-		protocolpool.NewAppModule(appCodec, app.PoolKeeper, app.AuthKeeper, app.BankKeeper),
-		epochs.NewAppModule(appCodec, app.EpochsKeeper),
+	app.ModuleManager = module.NewManagerFromMap(map[string]appmodule.AppModule{
+		genutiltypes.ModuleName:   genutil.NewAppModule(appCodec, app.AuthKeeper, app.StakingKeeper, app, txConfig, genutiltypes.DefaultMessageValidator),
+		accounts.ModuleName:       accounts.NewAppModule(appCodec, app.AccountsKeeper),
+		authtypes.ModuleName:      auth.NewAppModule(appCodec, app.AuthKeeper, app.AccountsKeeper, authsims.RandomGenesisAccounts, nil),
+		vestingtypes.ModuleName:   vesting.NewAppModule(app.AuthKeeper, app.BankKeeper),
+		banktypes.ModuleName:      bank.NewAppModule(appCodec, app.BankKeeper, app.AuthKeeper),
+		feegrant.ModuleName:       feegrantmodule.NewAppModule(appCodec, app.FeeGrantKeeper, app.interfaceRegistry),
+		govtypes.ModuleName:       gov.NewAppModule(appCodec, &app.GovKeeper, app.AuthKeeper, app.BankKeeper, app.PoolKeeper),
+		minttypes.ModuleName:      mint.NewAppModule(appCodec, app.MintKeeper, app.AuthKeeper),
+		slashingtypes.ModuleName:  slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AuthKeeper, app.BankKeeper, app.StakingKeeper, app.interfaceRegistry, cometService),
+		distrtypes.ModuleName:     distr.NewAppModule(appCodec, app.DistrKeeper, app.StakingKeeper),
+		stakingtypes.ModuleName:   staking.NewAppModule(appCodec, app.StakingKeeper),
+		upgradetypes.ModuleName:   upgrade.NewAppModule(app.UpgradeKeeper),
+		paramstypes.ModuleName:    params.NewAppModule(app.ParamsKeeper),
+		evidencetypes.ModuleName:  evidence.NewAppModule(appCodec, app.EvidenceKeeper, cometService),
+		authz.ModuleName:          authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.interfaceRegistry),
+		group.ModuleName:          groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
+		nft.ModuleName:            nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AuthKeeper, app.BankKeeper, app.interfaceRegistry),
+		consensustypes.ModuleName: consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper),
+		pooltypes.ModuleName:      protocolpool.NewAppModule(appCodec, app.PoolKeeper, app.AuthKeeper, app.BankKeeper),
+		epochstypes.ModuleName:    epochs.NewAppModule(appCodec, app.EpochsKeeper),
 
 		// IBC modules
-		ibc.NewAppModule(appCodec, app.IBCKeeper),
-		transfer.NewAppModule(appCodec, app.TransferKeeper),
-		ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
-		ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
-		mockModule,
+		ibcexported.ModuleName:      ibc.NewAppModule(appCodec, app.IBCKeeper),
+		ibctransfertypes.ModuleName: transfer.NewAppModule(appCodec, app.TransferKeeper),
+		ibcfeetypes.ModuleName:      ibcfee.NewAppModule(appCodec, app.IBCFeeKeeper),
+		icatypes.ModuleName:         ica.NewAppModule(appCodec, &app.ICAControllerKeeper, &app.ICAHostKeeper),
+		mockModule.Name():           mockModule,
 
 		// IBC light clients
-		ibctm.NewAppModule(tmLightClientModule),
-		solomachine.NewAppModule(smLightClientModule),
-	)
+		ibctm.ModuleName:       ibctm.NewAppModule(tmLightClientModule),
+		solomachine.ModuleName: solomachine.NewAppModule(smLightClientModule),
+	})
 
 	app.ModuleManager.RegisterLegacyAminoCodec(legacyAmino)
 	app.ModuleManager.RegisterInterfaces(interfaceRegistry)