You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2019/12/05 20:13:20 UTC

[isis] 02/10: ISIS-2215: adds missing modules, move some classes around

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2215
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 2737d96bceadd0ba1a7cfd48e2804d718c6d0c5e
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 5 16:00:48 2019 +0000

    ISIS-2215: adds missing modules, move some classes around
    
    and started to enumerate @Components for some (applib, metamodel) ... ie to remove @ComponentScan
---
 .../isis-configurations-and-modules.pptx           | Bin 49411 -> 50050 bytes
 .../org/apache/isis/applib/IsisApplibModule.java   |  58 ----------
 .../org/apache/isis/applib/IsisModuleApplib.java   | 121 +++++++++++++++++++++
 .../isis/applib/domain/DomainObjectList.java       |  16 +--
 .../isis/applib/mixins/dto/Dto_downloadXml.java    |   2 +-
 .../isis/applib/mixins/dto/Dto_downloadXsd.java    |   2 +-
 .../mixins/layout/Object_downloadLayoutXml.java    |   2 +-
 .../applib/mixins/layout/Object_openRestApi.java   |   2 +-
 .../mixins/layout/Object_rebuildMetamodel.java     |   2 +-
 .../metamodel/Object_downloadMetaModelXml.java     |   2 +-
 .../mixins/metamodel/Object_objectIdentifier.java  |   2 +-
 .../applib/mixins/metamodel/Object_objectType.java |   2 +-
 .../applib/services/actinvoc/package-info.java     |  31 ------
 .../services/audit/AuditerServiceLogging.java      |   3 +-
 .../services/bookmark/BookmarkHolder_lookup.java   |   4 +-
 .../services/bookmark/BookmarkHolder_object.java   |   4 +-
 .../services/confview/ConfigurationMenu.java       |   4 +-
 .../applib/services/layout/LayoutServiceMenu.java  |   4 +-
 .../services/metamodel/MetaModelServicesMenu.java  |   4 +-
 .../services/swagger/SwaggerServiceMenu.java       |   4 +-
 .../bytebuddy/IsisModuleCodegenByteBuddy.java      |   7 ++
 .../ClassLoadingStrategyAdvisor.java               |   2 +-
 .../ProxyFactoryPluginUsingByteBuddy.java          |   4 +-
 ...ons.internal.plugins.codegen.ProxyFactoryPlugin |   2 +-
 .../org/apache/isis/commons/IsisModuleCommons.java |  13 +++
 .../commons/handler/ChainOfResponsibility.java     |   9 +-
 ...IsisConfigModule.java => IsisModuleConfig.java} |  14 ++-
 .../isis/config/presets/DebugDiscovery.properties  |   2 +-
 .../facets/object/mixin/MixinIntendedAs.java       |   4 +-
 .../object/mixin/MixinIntendedAsActionTest.java    |  10 --
 core/metamodel/pom.xml                             |   2 +-
 .../apache/isis/metamodel/IsisModuleMetamodel.java | 101 +++++++++++++++++
 .../metamodel/{ => context}/MetaModelContext.java  |   2 +-
 .../{ => context}/MetaModelContextAware.java       |   2 +-
 .../{ => context}/MetaModelContext_usingIoc.java   |   2 +-
 .../metamodel/{ => context}/MetaModelContexts.java |   2 +-
 .../isis/metamodel/facetapi/FacetAbstract.java     |   2 +-
 .../isis/metamodel/facetapi/FacetHolder.java       |   2 +-
 .../isis/metamodel/facetapi/FacetHolderImpl.java   |   4 +-
 .../metamodel/facets/FacetFactoryAbstract.java     |   4 +-
 .../ViewModelSemanticCheckingFacetFactory.java     |   2 +-
 .../DomainObjectAnnotationFacetFactory.java        |   2 +-
 .../DomainServiceFacetAnnotationFactory.java       |   2 +-
 .../parameter/ParameterAnnotationFacetFactory.java |   2 +-
 .../property/PropertyAnnotationFacetFactory.java   |   2 +-
 .../metamodel/objectmanager/ObjectManager.java     |   2 +-
 .../objectmanager/ObjectManagerDefault.java        |   2 +-
 .../objectmanager/create/ObjectCreator.java        |   4 +-
 .../create/ObjectCreator_builtinHandlers.java      |   2 +-
 .../metamodel/objectmanager/load/ObjectLoader.java |   4 +-
 .../load/ObjectLoader_builtinHandlers.java         |   2 +-
 .../refresh/ObjectRefresher_builtinHandlers.java   |   2 +-
 .../param/DeriveFacetsPostProcessor.java           |   4 +-
 .../progmodel/ProgrammingModelAbstract.java        |   8 +-
 .../services/appfeat/ApplicationFeature.java       |   8 +-
 .../ApplicationFeatureRepositoryDefault.java       |   3 +-
 .../apache/isis/metamodel/spec/ManagedObject.java  |   2 +-
 .../isis/metamodel/spec/feature/ObjectAction.java  |   3 +-
 .../specloader/ProgrammingModelServiceDefault.java |   2 +-
 .../specloader/SpecificationLoaderDefault.java     |   2 +-
 .../specloader/facetprocessor/FacetProcessor.java  |   2 +-
 .../specimpl/ObjectActionParameterAbstract.java    |   3 +-
 .../specloader/specimpl/ObjectMemberAbstract.java  |   2 +-
 .../specimpl/dflt/ObjectSpecificationDefault.java  |   2 +-
 .../validator/MetaModelValidatorAbstract.java      |   4 +-
 .../metamodel/MetaModelContext_configTest.java     |   1 +
 .../metamodel/MetaModelContext_forTesting.java     |   1 +
 .../isis/metamodel/ServiceInjector_forTesting.java |   1 +
 .../isis/metamodel/ServiceRegistry_forTesting.java |   3 +-
 .../facets/AbstractFacetFactoryJUnit4TestCase.java |   4 +-
 .../metamodel/facets/AbstractFacetFactoryTest.java |   2 +-
 .../ViewModelSemanticCheckingFacetFactoryTest.java |   4 +-
 .../ident/title/TitleFacetViaMethodTest.java       |   2 +-
 .../TitleFacetViaTitleAnnotationTest.java          |   2 +-
 .../parseable/ParseableFacetUsingParserTest.java   |   2 +-
 .../BigDecimalValueSemanticsProviderTest.java      |   2 +-
 .../value/BigIntValueSemanticsProviderTest.java    |   2 +-
 .../value/ByteValueSemanticsProviderTest.java      |   2 +-
 .../value/DoubleValueSemanticsProviderTest.java    |   2 +-
 .../value/FloatValueSemanticsProviderTest.java     |   2 +-
 .../value/IntValueSemanticsProviderTest.java       |   2 +-
 .../JavaSqlDateValueSemanticsProviderTest.java     |   2 +-
 .../JavaSqlTimeValueSemanticsProviderTest.java     |   2 +-
 .../JavaUtilDateValueSemanticsProviderTest.java    |   2 +-
 .../value/LongValueSemanticsProviderTest.java      |   2 +-
 .../value/MoneyValueSemanticsProviderTest.java     |   2 +-
 .../PercentageValueSemanticsProviderTest.java      |   2 +-
 .../value/ShortValueSemanticsProviderTest.java     |   2 +-
 .../ValueSemanticsProviderAbstractTestCase.java    |   2 +-
 .../ServiceInjectorDefaultTest_usingFields.java    |   4 +-
 ...InjectorDefaultTest_validateServices_happy.java |   4 +-
 .../services/ServiceInjectorLegacyTest.java        |   4 +-
 .../SpecificationLoaderTestAbstract.java           |   2 +-
 .../jdo/applib/services/IsisModuleJdoApplib.java}  |   7 +-
 ...Nucleus.java => IsisModuleJdoDataNucleus5.java} |  10 +-
 .../service/JdoPersistenceLifecycleService.java    |   2 +-
 .../mixins/Persistable_datanucleusIdLong.java      |   2 +-
 .../mixins/Persistable_datanucleusVersionLong.java |   2 +-
 .../Persistable_datanucleusVersionTimestamp.java   |   2 +-
 .../mixins/Persistable_downloadJdoMetadata.java    |   2 +-
 .../objectadapter/ObjectAdapterContext.java        |   2 +-
 .../persistence/IsisPersistenceSessionJdoBase.java |   3 +-
 .../persistence/PersistenceSession5.java           |   9 +-
 .../persistence/PersistenceSessionFactory5.java    |   2 +-
 ...AnnotationFacetFactoryTest_refineMetaModel.java |   3 +-
 .../WrapperFactoryDefaultTest_wrappedObject.java   |   2 +-
 ...FactoryDefaultTest_wrappedObject_transient.java |   2 +-
 .../runtime/system/ObjectMemberAbstractTest.java   |   2 +-
 core/pom.xml                                       |   2 +-
 .../services/IsisModuleRuntimeServices.java        |   8 +-
 .../services/IsisRuntimeServicesModule.java        |  35 ------
 .../services/i18n/po/TranslationServicePoMenu.java |   4 +-
 .../menubars/bootstrap3/MenuBarsServiceBS3.java    |   2 +-
 .../services/wrapper/WrapperFactoryDefault.java    |   2 +-
 .../handlers/DomainObjectInvocationHandler.java    |   2 +-
 .../wrapper/handlers/ProxyContextHandler.java      |   2 +-
 ...isRuntimeModule.java => IsisModuleRuntime.java} |   6 +-
 .../system/context/session/RuntimeContext.java     |   2 +-
 .../system/context/session/RuntimeContextBase.java |   2 +-
 .../persistence/PersistenceSessionFactory.java     |   2 +-
 .../isis/runtime/system/session/IsisSession.java   |   2 +-
 .../system/session/IsisSessionFactoryDefault.java  |   2 +-
 .../system/ObjectActionLayoutXmlDefaultTest.java   |   2 +-
 ...IsisSchemaModule.java => IsisModuleSchema.java} |   2 +-
 core/security/api/pom.xml                          |   2 +-
 .../isis/security/api/IsisModuleSecurityApi.java   |  10 +-
 core/security/bypass/pom.xml                       |   2 +-
 ...tyBypass.java => IsisModuleSecurityBypass.java} |   2 +-
 core/security/keycloak/pom.xml                     |   2 +-
 ...ycloak.java => IsisModuleSecurityKeycloak.java} |   2 +-
 core/security/shiro/pom.xml                        |   2 +-
 ...rityShiro.java => IsisModuleSecurityShiro.java} |   2 +-
 core/testsupport/integtestsupport/pom.xml          |   2 +-
 .../applib/IsisModuleRestfulObjectsApplib.java     |   7 ++
 .../IsisModuleRestfulObjectsJaxrsResteasy4.java    |   7 ++
 .../restfulobjects/rendering/IResourceContext.java |   2 +-
 .../IsisModuleRestfulObjectsRendering.java         |   7 ++
 ...ts.java => IsisModuleRestfulObjectsViewer.java} |   6 +-
 .../viewer/context/ResourceContext.java            |   2 +-
 .../viewer/resources/ResourceAbstract.java         |   2 +-
 ..._ensureCompatibleAcceptHeader_ContractTest.java |   3 +-
 .../context/ResourceContext_getArg_Test.java       |   3 +-
 .../viewer/wicket/model/IsisModuleWicketModel.java |   7 ++
 .../wicket/model/models/EntityModel_hintsTest.java |   2 +-
 .../ScalarModel_isScalarSubtypingAnyOf_Test.java   |   2 +-
 .../isis/viewer/wicket/ui/IsisModuleWicketUi.java  |   7 ++
 .../isis/viewer/wicket/ui/panels/PanelBase.java    |   2 +-
 .../ui/ComponentFactoryAbstractTest_init.java      |   2 +-
 ...ollectionContentsSelectorDropdownPanelTest.java |   2 +-
 ...ewerWicket.java => IsisModuleWicketViewer.java} |   6 +-
 .../ComponentFactoryRegistryDefault.java           |   2 +-
 .../viewer/wicketapp/IsisWicketApplication.java    |   2 +-
 .../{IsisBootWebApp.java => IsisModuleWebapp.java} |   2 +-
 .../webapp/context/IsisWebAppCommonContext.java    |   2 +-
 .../springboot/IsisModuleSpringBoot.java}          |  13 +--
 .../java/demoapp/application/DemoAppManifest.java  |  40 +++----
 .../demo/src/main/java/demoapp/utils/DemoStub.java |   2 +-
 .../demoapp/utils/LibraryPreloadingService.java    |   2 +-
 .../testdomain/conf/Configuration_headless.java    |  12 +-
 .../testdomain/conf/Configuration_usingJdo.java    |  16 +--
 .../conf/Configuration_usingJdoAndShiro.java       |  16 +--
 .../model/bad/InvalidOrphanedActionSupport.java    |   2 +-
 .../bad/InvalidOrphanedCollectionSupport.java      |   2 +-
 .../model/bad/InvalidOrphanedPropertySupport.java  |   2 +-
 .../testdomain/model/good/ProperActionSupport.java |   2 +-
 .../model/good/ProperActionSupport_action.java     |   2 +-
 .../model/good/ProperActionSupport_collection.java |   2 +-
 .../good/ProperActionSupport_collection2.java      |   2 +-
 .../model/good/ProperActionSupport_mixin.java      |   2 +-
 .../model/good/ProperActionSupport_property.java   |   2 +-
 .../model/good/ProperActionSupport_property2.java  |   2 +-
 .../model/good/ProperCollectionSupport.java        |   2 +-
 .../model/good/ProperPrefixedMember.java           |   2 +-
 .../model/good/ProperPropertySupport.java          |   2 +-
 .../bootstrapping/AutoConfigurationTest.java       |   2 +-
 .../isis/testdomain/config/IsisConfigBeanTest.java |   4 +-
 .../isis/testdomain/rest/RestServiceTest.java      |   2 +-
 .../isis/testdomain/shiro/ShiroSecmanLdapTest.java |  16 +--
 .../shiro/ShiroSecmanLdap_restfulStressTest.java   |  17 ++-
 .../isis/testdomain/shiro/ShiroSecmanTest.java     |  16 +--
 ...tSpringModule.java => IsisModuleExtSpring.java} |   2 +-
 .../extensions/base/dom/IsisModuleExtBase.java     |   7 ++
 .../{ExcelModule.java => IsisModuleExtExcel.java}  |   2 +-
 ...ule.java => IsisModuleExtFakeDataFixtures.java} |   6 +-
 .../extensions/fakedata/dom/FakeDataService.java   |   1 +
 .../IsisModuleExtFakeData.java}                    |   4 +-
 .../apache/isis/extensions/fakedata/dom/Uuids.java |  14 ---
 .../fakedata/dom/{ => types}/Addresses.java        |   5 +-
 .../fakedata/dom/{ => types}/BigDecimals.java      |   6 +-
 .../fakedata/dom/{ => types}/BigIntegers.java      |   6 +-
 .../extensions/fakedata/dom/{ => types}/Books.java |   5 +-
 .../fakedata/dom/{ => types}/Booleans.java         |   5 +-
 .../extensions/fakedata/dom/{ => types}/Bytes.java |   6 +-
 .../extensions/fakedata/dom/{ => types}/Chars.java |   6 +-
 .../fakedata/dom/{ => types}/Collections.java      |   6 +-
 .../extensions/fakedata/dom/{ => types}/Comms.java |   5 +-
 .../fakedata/dom/{ => types}/CreditCards.java      |   4 +-
 .../fakedata/dom/{ => types}/Doubles.java          |   6 +-
 .../extensions/fakedata/dom/{ => types}/Enums.java |   6 +-
 .../fakedata/dom/{ => types}/Floats.java           |   6 +-
 .../fakedata/dom/{ => types}/Integers.java         |   6 +-
 .../fakedata/dom/{ => types}/IsisBlobs.java        |   6 +-
 .../fakedata/dom/{ => types}/IsisClobs.java        |   6 +-
 .../fakedata/dom/{ => types}/IsisMoneys.java       |   6 +-
 .../fakedata/dom/{ => types}/IsisPasswords.java    |   6 +-
 .../fakedata/dom/{ => types}/J8DateTimes.java      |   6 +-
 .../fakedata/dom/{ => types}/J8LocalDates.java     |   6 +-
 .../fakedata/dom/{ => types}/J8Periods.java        |   6 +-
 .../fakedata/dom/{ => types}/JavaSqlDates.java     |   6 +-
 .../dom/{ => types}/JavaSqlTimestamps.java         |   6 +-
 .../fakedata/dom/{ => types}/JavaUtilDates.java    |   6 +-
 .../extensions/fakedata/dom/{ => types}/Longs.java |   6 +-
 .../extensions/fakedata/dom/{ => types}/Lorem.java |   5 +-
 .../extensions/fakedata/dom/{ => types}/Names.java |   4 +-
 .../fakedata/dom/{ => types}/Shorts.java           |   6 +-
 .../fakedata/dom/{ => types}/Strings.java          |   6 +-
 .../extensions/fakedata/dom/{ => types}/Urls.java  |   6 +-
 .../isis/extensions/fakedata/dom/types/Uuids.java  |  17 +++
 .../fakedata/dom/FakeDataServiceTest.java          |   2 +
 .../dom/IsisModuleExtUnitTestSupport.java          |   7 ++
 ...soleModule.java => IsisModuleExtH2Console.java} |   6 +-
 .../h2console/dom/services/H2ManagerMenu.java      |   4 +-
 ...bMgrModule.java => IsisModuleExtHsqldbMgr.java} |   6 +-
 .../hsqldbmgr/dom/services/HsqlDbManagerMenu.java  |   4 +-
 ...rityModule.java => IsisModuleExtSecmanApi.java} |   5 +-
 .../permission/ApplicationPermissionValueSet.java  |   8 +-
 .../secman/api/tenancy/ApplicationTenancy.java     |   8 +-
 ...java => IsisModuleSecmanEncryptionJbcrypt.java} |   3 +-
 .../PasswordEncryptionServiceUsingJBcrypt.java     |   2 +-
 ...SecmanModel.java => IsisModuleSecmanModel.java} |   4 +-
 .../app/feature/ApplicationFeatureViewModel.java   |   8 +-
 .../app/feature/ApplicationFeatureViewModels.java  |   8 +-
 .../app/feature/ApplicationPermission_feature.java |   4 +-
 .../user/ApplicationUser_filterPermissions.java    |   4 +-
 .../app/user/ApplicationUser_permissions.java      |   4 +-
 .../secman/model/app/user/MeService.java           |   8 +-
 .../model/app/user/UserPermissionViewModel.java    |   8 +-
 .../dom/permission/ApplicationPermissionMenu.java  |   8 +-
 .../secman/model/dom/role/ApplicationRoleMenu.java |   8 +-
 .../model/dom/tenancy/ApplicationTenancyMenu.java  |   8 +-
 .../secman/model/dom/user/ApplicationUserMenu.java |   8 +-
 .../secman/model/dom/user/HasUsername_open.java    |   4 +-
 ...do.java => IsisModuleSecmanPersistenceJdo.java} |   4 +-
 .../jdo/dom/permission/ApplicationPermission.java  |   8 +-
 .../secman/jdo/dom/role/ApplicationRole.java       |   8 +-
 .../secman/jdo/dom/user/ApplicationUser.java       |   8 +-
 extensions/security/secman/pom.xml                 |   2 +-
 .../secman/shiro/AuthInfoForApplicationUser.java   |   1 +
 ...mShiro.java => IsisModuleSecmanRealmShiro.java} |   3 +-
 .../secman/shiro/IsisModuleSecurityRealm.java      |   1 +
 .../SecurityRealmServiceUsingShiro.java            |   3 +-
 .../secman/shiro/{ => util}/ShiroUtils.java        |  11 +-
 ...turesModule.java => IsisModuleExtFixtures.java} |   6 +-
 .../specsupport/IsisModuleExtSpecSupport.java      |   4 +
 .../integration}/ObjectFactoryForIntegration.java  |   2 +-
 .../isis/{ => extensions}/specsupport/specs/V.java |   4 +-
 .../restclient/IsisModuleExtRestClient.java        |   7 ++
 .../applib/IsisModuleExtAsciidocApplib.java        |   7 +-
 .../asciidoc/{ => applib/value}/AsciiDoc.java      |   3 +-
 .../asciidoc/ui/IsisModuleExtAsciidocUi.java}      |   8 +-
 .../{ => ui/components}/AsciiDocComponent.java     |   2 +-
 .../AsciiDocPanelFactoriesForWicket.java           |   3 +-
 .../asciidoc/ui/components}/css/prism.css          |   0
 .../asciidoc/ui/components}/js/prism1.14.js        |   0
 .../{ => ui/converter}/AsciiDocConverter.java      |   4 +-
 ...g.apache.isis.viewer.wicket.ui.ComponentFactory |   4 +-
 ...Module.java => IsisModuleExtExcelDownload.java} |   6 +-
 .../{ => components}/CollectionContentsAsExcel.css |   0
 .../CollectionContentsAsExcel.html                 |   0
 .../CollectionContentsAsExcel.java                 |   2 +-
 .../CollectionContentsAsExcelFactory.java          |   2 +-
 .../{ => components}/ExcelFileDownloadLink.java    |   2 +-
 .../excel/{ => components}/ExcelFileModel.java     |   2 +-
 .../{ => components}/Util_TimeConversion.java      |   2 +-
 ...g.apache.isis.viewer.wicket.ui.ComponentFactory |   2 +-
 .../applib/IsisModuleExtMarkdownApplib.java        |   7 ++
 .../markdown/{ => applib/value}/Markdown.java      |   3 +-
 .../markdown/ui/IsisModuleExtMarkdownUi.java       |  10 ++
 .../{ => ui/components}/MarkdownComponent.java     |   2 +-
 .../MarkdownPanelFactoriesForWicket.java           |   3 +-
 .../markdown/ui/components}/css/prism.css          |   0
 .../markdown/ui/components}/js/prism1.14.js        |   0
 .../{ => ui/converter}/MarkdownConverter.java      |   2 +-
 ...g.apache.isis.viewer.wicket.ui.ComponentFactory |   4 +-
 .../apache/isis/extensions/sse/IsisBootSse.java    |   2 +-
 .../ServerSentEventsServlet.java                   |   2 +-
 .../WebModuleServerSentEvents.java                 |   2 +-
 .../model/applib/IsisModuleIncModelApplib.java}    |   8 +-
 .../model}/applib/annotation/Model.java            |   2 +-
 .../metamodel/IsisModuleIncModelMetaModel.java     |  20 ++--
 .../SupportingMethodValidatorRefinerFactory.java   |   5 +-
 .../services}/IncubatorMetaModelPlugin.java        |   4 +-
 .../{ => legacy}/applib/DomainObjectContainer.java |   5 +-
 .../isis/{ => legacy}/applib/filter/Filter.java    |   2 +-
 .../isis/{ => legacy}/applib/filter/Filters.java   |   2 +-
 .../background/BackgroundCommandService2.java      |   4 +-
 .../services/background/BackgroundService.java     |   2 +-
 .../services/background/BackgroundService2.java    |   2 +-
 .../services/eventbus/ActionDomainEvent.java       |   2 +-
 .../services/eventbus/CollectionDomainEvent.java   |   3 +-
 .../services/eventbus/PropertyDomainEvent.java     |   2 +-
 .../FutureWithIndexIntoFutureOfList.java           |   2 +-
 .../threadpool/ThreadPoolExecutionMode.java        |   2 +-
 .../internal/threadpool/ThreadPoolSizeAdvisor.java |   2 +-
 .../internal/threadpool/ThreadPoolSupport.java     |   2 +-
 .../internal/threadpool/ThreadPoolSupportTest.java |   4 +-
 .../runtime/snapshot/DomSerializer.java            |   2 +-
 .../runtime/snapshot/DomSerializerJaxp.java        |   2 +-
 .../runtime/sysout/SystemPrinter.java              |   2 +-
 .../system/persistence/LoggingLocation.java        |   2 +-
 .../runtime/system/persistence/ObjectFactory.java  |   2 +-
 .../system/persistence/SuspendableListener.java    |   2 +-
 .../viewer/web/AbstractServletOrFilterMapping.java |   2 +-
 .../runtime/viewer/web/FilterSpecification.java    |   2 +-
 .../runtime/viewer/web/ServletSpecification.java   |   2 +-
 .../runtime/viewer/web/WebAppSpecification.java    |   2 +-
 legacy/testsupport/mavenplugin/pom.xml             |   2 +-
 mavendeps/webapp/pom.xml                           |   2 +-
 318 files changed, 954 insertions(+), 678 deletions(-)

diff --git a/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx b/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx
index 2a21074..62b22f3 100644
Binary files a/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx and b/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx differ
diff --git a/core/applib/src/main/java/org/apache/isis/applib/IsisApplibModule.java b/core/applib/src/main/java/org/apache/isis/applib/IsisApplibModule.java
deleted file mode 100644
index 64a7033..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/IsisApplibModule.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.applib;
-
-import org.apache.isis.schema.IsisSchemaModule;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import({
-        IsisSchemaModule.class
-})
-@ComponentScan
-public class IsisApplibModule {
-
-    // -- UI EVENT CLASSES
-
-    public abstract static class TitleUiEvent<S>
-    extends org.apache.isis.applib.events.ui.TitleUiEvent<S> {}
-
-    public abstract static class IconUiEvent<S>
-    extends org.apache.isis.applib.events.ui.IconUiEvent<S> {}
-
-    public abstract static class CssClassUiEvent<S>
-    extends org.apache.isis.applib.events.ui.CssClassUiEvent<S> {}
-    public abstract static class LayoutUiEvent<S>
-    extends org.apache.isis.applib.events.ui.LayoutUiEvent<S> {}
-
-    // -- DOMAIN EVENT CLASSES
-
-    public abstract static class ActionDomainEvent<S>
-    extends org.apache.isis.applib.events.domain.ActionDomainEvent<S> {}
-
-    public abstract static class CollectionDomainEvent<S,T>
-    extends org.apache.isis.applib.events.domain.CollectionDomainEvent<S,T> {}
-
-    public abstract static class PropertyDomainEvent<S,T>
-    extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> {}
-
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java b/core/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
new file mode 100644
index 0000000..fa69121
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
@@ -0,0 +1,121 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.applib;
+
+import org.apache.isis.applib.mixins.dto.DtoMappingHelper;
+import org.apache.isis.applib.mixins.dto.Dto_downloadXml;
+import org.apache.isis.applib.mixins.dto.Dto_downloadXsd;
+import org.apache.isis.applib.mixins.layout.Object_downloadLayoutXml;
+import org.apache.isis.applib.mixins.layout.Object_openRestApi;
+import org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel;
+import org.apache.isis.applib.mixins.metamodel.Object_downloadMetaModelXml;
+import org.apache.isis.applib.mixins.metamodel.Object_objectIdentifier;
+import org.apache.isis.applib.mixins.metamodel.Object_objectType;
+import org.apache.isis.applib.services.audit.AuditerServiceLogging;
+import org.apache.isis.applib.services.bookmark.BookmarkHolder_lookup;
+import org.apache.isis.applib.services.bookmark.BookmarkHolder_object;
+import org.apache.isis.applib.services.clock.ClockService;
+import org.apache.isis.applib.services.command.CommandContext;
+import org.apache.isis.applib.services.confview.ConfigurationMenu;
+import org.apache.isis.applib.services.conmap.command.ContentMappingServiceForCommandDto;
+import org.apache.isis.applib.services.conmap.command.ContentMappingServiceForCommandsDto;
+import org.apache.isis.applib.services.iactn.InteractionContext;
+import org.apache.isis.applib.services.jaxb.JaxbServiceDefault;
+import org.apache.isis.applib.services.layout.LayoutServiceMenu;
+import org.apache.isis.applib.services.metamodel.MetaModelServicesMenu;
+import org.apache.isis.applib.services.publish.PublisherServiceLogging;
+import org.apache.isis.applib.services.queryresultscache.QueryResultsCacheInternal;
+import org.apache.isis.applib.services.scratchpad.Scratchpad;
+import org.apache.isis.applib.services.swagger.SwaggerServiceMenu;
+import org.apache.isis.applib.services.tablecol.TableColumnOrderService;
+import org.apache.isis.applib.services.urlencoding.UrlEncodingServiceWithCompression;
+import org.apache.isis.schema.IsisModuleSchema;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({
+        // modules
+        IsisModuleSchema.class,
+
+        // mixins
+        BookmarkHolder_lookup.class,
+        BookmarkHolder_object.class,
+        Dto_downloadXml.class,
+        Dto_downloadXsd.class,
+        Object_downloadLayoutXml.class,
+        Object_downloadMetaModelXml.class,
+        Object_objectIdentifier.class,
+        Object_objectType.class,
+        Object_openRestApi.class,
+        Object_rebuildMetamodel.class,
+
+        // @DomainService's
+        ConfigurationMenu.class,
+        ContentMappingServiceForCommandDto.class,
+        ContentMappingServiceForCommandsDto.class,
+        DtoMappingHelper.class,
+        LayoutServiceMenu.class,
+        MetaModelServicesMenu.class,
+        QueryResultsCacheInternal.class,
+        Scratchpad.class,
+        SwaggerServiceMenu.class,
+        TableColumnOrderService.class,
+        UrlEncodingServiceWithCompression.class,
+
+        // @Component's
+        CommandContext.class,
+
+        // @Service's
+        AuditerServiceLogging.class,
+        ClockService.class,
+        InteractionContext.class,
+        JaxbServiceDefault.class,
+        PublisherServiceLogging.class
+
+
+})
+public class IsisModuleApplib {
+
+    // -- UI EVENT CLASSES
+
+    public abstract static class TitleUiEvent<S>
+    extends org.apache.isis.applib.events.ui.TitleUiEvent<S> {}
+
+    public abstract static class IconUiEvent<S>
+    extends org.apache.isis.applib.events.ui.IconUiEvent<S> {}
+
+    public abstract static class CssClassUiEvent<S>
+    extends org.apache.isis.applib.events.ui.CssClassUiEvent<S> {}
+    public abstract static class LayoutUiEvent<S>
+    extends org.apache.isis.applib.events.ui.LayoutUiEvent<S> {}
+
+    // -- DOMAIN EVENT CLASSES
+
+    public abstract static class ActionDomainEvent<S>
+    extends org.apache.isis.applib.events.domain.ActionDomainEvent<S> {}
+
+    public abstract static class CollectionDomainEvent<S,T>
+    extends org.apache.isis.applib.events.domain.CollectionDomainEvent<S,T> {}
+
+    public abstract static class PropertyDomainEvent<S,T>
+    extends org.apache.isis.applib.events.domain.PropertyDomainEvent<S,T> {}
+
+
+}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java b/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
index 93cfb21..5d64609 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/domain/DomainObjectList.java
@@ -26,7 +26,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Collection;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.DomainObjectLayout;
@@ -63,16 +63,16 @@ import org.apache.isis.commons.internal.collections._Lists;
 public class DomainObjectList {
 
     // -- ui event classes
-    public static class TitleUiEvent extends IsisApplibModule.TitleUiEvent<DomainObjectList>{  }
-    public static class IconUiEvent extends IsisApplibModule.IconUiEvent<DomainObjectList>{  }
-    public static class CssClassUiEvent extends IsisApplibModule.CssClassUiEvent<DomainObjectList>{  }
-    public static class LayoutUiEvent extends IsisApplibModule.LayoutUiEvent<DomainObjectList>{  }
+    public static class TitleUiEvent extends IsisModuleApplib.TitleUiEvent<DomainObjectList>{  }
+    public static class IconUiEvent extends IsisModuleApplib.IconUiEvent<DomainObjectList>{  }
+    public static class CssClassUiEvent extends IsisModuleApplib.CssClassUiEvent<DomainObjectList>{  }
+    public static class LayoutUiEvent extends IsisModuleApplib.LayoutUiEvent<DomainObjectList>{  }
 
 
     // -- domain event classes
-    public static abstract class PropertyDomainEvent<T> extends IsisApplibModule.PropertyDomainEvent<DomainObjectList, T> {  }
-    public static abstract class CollectionDomainEvent<T> extends IsisApplibModule.CollectionDomainEvent<DomainObjectList, T> {  }
-    public static abstract class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<DomainObjectList> {  }
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleApplib.PropertyDomainEvent<DomainObjectList, T> {  }
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleApplib.CollectionDomainEvent<DomainObjectList, T> {  }
+    public static abstract class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<DomainObjectList> {  }
 
 
     // -- constructors
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java
index 5f737db..95f0026 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java
@@ -42,7 +42,7 @@ public class Dto_downloadXml {
     private final Dto holder;
 
     public static class ActionDomainEvent
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Dto_downloadXml> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Dto_downloadXml> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
index 1da5db6..f297601 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
@@ -46,7 +46,7 @@ public class Dto_downloadXsd {
     private final Dto holder;
 
     public static class ActionDomainEvent
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Dto_downloadXsd> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Dto_downloadXsd> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
index 49873d9..48a618f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
@@ -42,7 +42,7 @@ public class Object_downloadLayoutXml {
     private final Object holder;
 
     public static class ActionDomainEvent
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_downloadLayoutXml> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Object_downloadLayoutXml> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java
index 62e4740..ee3e8fe 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java
@@ -43,7 +43,7 @@ public class Object_openRestApi {
     private final Object holder;
 
     public static class ActionDomainEvent
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_openRestApi> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Object_openRestApi> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
index 2a9af94..e6721ee 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_rebuildMetamodel.java
@@ -40,7 +40,7 @@ public class Object_rebuildMetamodel {
     private final Object holder;
 
     public static class ActionDomainEvent
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_rebuildMetamodel> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Object_rebuildMetamodel> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java
index 1694747..3d94c23 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java
@@ -46,7 +46,7 @@ public class Object_downloadMetaModelXml {
     private final Object holder;
 
     public static class ActionDomainEvent 
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_downloadMetaModelXml> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Object_downloadMetaModelXml> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
index b456092..9cd5181 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
@@ -41,7 +41,7 @@ public class Object_objectIdentifier {
     private final Object holder;
 
     public static class ActionDomainEvent 
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_objectIdentifier> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Object_objectIdentifier> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java
index 73e8edb..92cba00 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java
@@ -41,7 +41,7 @@ public class Object_objectType {
     private final Object holder;
 
     public static class ActionDomainEvent 
-    extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Object_objectType> {}
+    extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Object_objectType> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java
deleted file mode 100644
index 1c52c3e..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/package-info.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-/**
- * The @{@link org.apache.isis.applib.services.actinvoc.ActionInvocationContext} domain service is a
- * <code>@RequestScoped</code> service intended to support the implementation of "bulk" actions annotated with
- * {@link org.apache.isis.applib.annotation.Action#invokeOn()}.
- *
- * <p>
- * This allows the user to select multiple objects in a table and then invoke the same action against all of them.
- * </p>
- *
- * @see <a href="http://isis.apache.org/guides/rgsvc/rgsvc.html#_rgsvc_application-layer-api_ActionInvocationContext">Reference guide</a>
- */
-package org.apache.isis.applib.services.actinvoc;
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
index 31f1810..dfce5fa 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/audit/AuditerServiceLogging.java
@@ -23,6 +23,7 @@ import java.util.UUID;
 
 import javax.annotation.PostConstruct;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
@@ -30,7 +31,7 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import lombok.extern.log4j.Log4j2;
 
 @Service
-@Log4j2
+@Log4j2 @Qualifier("logging")
 public class AuditerServiceLogging implements AuditerService {
 
     @PostConstruct
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java
index 6347cc8..f5422cd 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_lookup.java
@@ -20,7 +20,7 @@ package org.apache.isis.applib.services.bookmark;
 
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Contributed;
@@ -36,7 +36,7 @@ public class BookmarkHolder_lookup {
         this.bookmarkHolder = bookmarkHolder;
     }
 
-    public static class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<BookmarkHolder_lookup> {}
+    public static class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<BookmarkHolder_lookup> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java
index b1ae00d..d7718de 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkHolder_object.java
@@ -20,7 +20,7 @@ package org.apache.isis.applib.services.bookmark;
 
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Contributed;
@@ -36,7 +36,7 @@ public class BookmarkHolder_object {
         this.bookmarkHolder = bookmarkHolder;
     }
 
-    public static class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<BookmarkHolder_object> { }
+    public static class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<BookmarkHolder_object> { }
 
     @Action(
             semantics = SemanticsOf.SAFE,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
index 6fefb67..98759c7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
@@ -23,7 +23,7 @@ import java.util.Set;
 
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
@@ -42,7 +42,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 public class ConfigurationMenu {
 
     public static abstract class ActionDomainEvent
-    extends IsisApplibModule.ActionDomainEvent<ConfigurationMenu> {}
+    extends IsisModuleApplib.ActionDomainEvent<ConfigurationMenu> {}
 
     public static class AllConfigurationPropertiesDomainEvent
     extends ActionDomainEvent {}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
index 2acfcce..6b0cab9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutServiceMenu.java
@@ -22,7 +22,7 @@ import javax.activation.MimeType;
 import javax.activation.MimeTypeParseException;
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
@@ -48,7 +48,7 @@ import org.apache.isis.commons.internal.base._Strings;
 public class LayoutServiceMenu {
 
     public static abstract class ActionDomainEvent
-    extends IsisApplibModule.ActionDomainEvent<LayoutServiceMenu> {}
+    extends IsisModuleApplib.ActionDomainEvent<LayoutServiceMenu> {}
 
     private final MimeType mimeTypeApplicationZip;
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
index 533c78a..bb3b5b8 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
@@ -28,7 +28,7 @@ import javax.activation.MimeType;
 import javax.activation.MimeTypeParseException;
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
@@ -57,7 +57,7 @@ import org.apache.isis.schema.metamodel.v1.MetamodelDto;
         )
 public class MetaModelServicesMenu {
 
-    public static abstract class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<MetaModelServicesMenu> { }
+    public static abstract class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<MetaModelServicesMenu> { }
 
     final MimeType mimeTypeTextCsv;
     final MimeType mimeTypeTextXml;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
index 15385e6..02b17ee 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/swagger/SwaggerServiceMenu.java
@@ -20,7 +20,7 @@ package org.apache.isis.applib.services.swagger;
 
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
@@ -46,7 +46,7 @@ import org.apache.isis.commons.internal.resources._Resources;
         )
 public class SwaggerServiceMenu {
 
-    public static abstract class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<SwaggerServiceMenu> { }
+    public static abstract class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<SwaggerServiceMenu> { }
     public static class OpenSwaggerUiDomainEvent extends ActionDomainEvent { }
 
     @Action(
diff --git a/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/IsisModuleCodegenByteBuddy.java b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/IsisModuleCodegenByteBuddy.java
new file mode 100644
index 0000000..b12e8bc
--- /dev/null
+++ b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/IsisModuleCodegenByteBuddy.java
@@ -0,0 +1,7 @@
+package org.apache.isis.codegen.bytebuddy;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleCodegenByteBuddy {
+}
diff --git a/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/ClassLoadingStrategyAdvisor.java b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/services/ClassLoadingStrategyAdvisor.java
similarity index 98%
rename from core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/ClassLoadingStrategyAdvisor.java
rename to core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/services/ClassLoadingStrategyAdvisor.java
index 4d453e6..1a76085 100644
--- a/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/ClassLoadingStrategyAdvisor.java
+++ b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/services/ClassLoadingStrategyAdvisor.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.codegen.bytebuddy;
+package org.apache.isis.codegen.bytebuddy.services;
 
 import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodHandles;
diff --git a/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/ProxyFactoryPluginUsingByteBuddy.java b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/services/ProxyFactoryPluginUsingByteBuddy.java
similarity index 98%
rename from core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/ProxyFactoryPluginUsingByteBuddy.java
rename to core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/services/ProxyFactoryPluginUsingByteBuddy.java
index 6403a63..e1e7c1b 100644
--- a/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/ProxyFactoryPluginUsingByteBuddy.java
+++ b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/services/ProxyFactoryPluginUsingByteBuddy.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.codegen.bytebuddy;
+package org.apache.isis.codegen.bytebuddy.services;
 
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
@@ -42,7 +42,7 @@ import net.bytebuddy.matcher.ElementMatchers;
 
 public class ProxyFactoryPluginUsingByteBuddy implements ProxyFactoryPlugin {
 
-    private final ClassLoadingStrategyAdvisor strategyAdvisor = new ClassLoadingStrategyAdvisor(); 
+    private final ClassLoadingStrategyAdvisor strategyAdvisor = new ClassLoadingStrategyAdvisor();
 
     @Override
     public <T> ProxyFactory<T> factory(
diff --git a/core/codegen-bytebuddy/src/main/resources/META-INF/services/org.apache.isis.commons.internal.plugins.codegen.ProxyFactoryPlugin b/core/codegen-bytebuddy/src/main/resources/META-INF/services/org.apache.isis.commons.internal.plugins.codegen.ProxyFactoryPlugin
index b255b8d..5ff2be7 100644
--- a/core/codegen-bytebuddy/src/main/resources/META-INF/services/org.apache.isis.commons.internal.plugins.codegen.ProxyFactoryPlugin
+++ b/core/codegen-bytebuddy/src/main/resources/META-INF/services/org.apache.isis.commons.internal.plugins.codegen.ProxyFactoryPlugin
@@ -1 +1 @@
-org.apache.isis.codegen.bytebuddy.ProxyFactoryPluginUsingByteBuddy
\ No newline at end of file
+org.apache.isis.codegen.bytebuddy.services.ProxyFactoryPluginUsingByteBuddy
\ No newline at end of file
diff --git a/core/commons/src/main/java/org/apache/isis/commons/IsisModuleCommons.java b/core/commons/src/main/java/org/apache/isis/commons/IsisModuleCommons.java
new file mode 100644
index 0000000..eae0fd5
--- /dev/null
+++ b/core/commons/src/main/java/org/apache/isis/commons/IsisModuleCommons.java
@@ -0,0 +1,13 @@
+package org.apache.isis.commons;
+
+import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({
+    // @Service's
+    IsisSystemEnvironment.class
+})
+public class IsisModuleCommons {
+}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/handler/ChainOfResponsibility.java b/core/commons/src/main/java/org/apache/isis/commons/handler/ChainOfResponsibility.java
index 784b553..65d76ef 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/handler/ChainOfResponsibility.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/handler/ChainOfResponsibility.java
@@ -71,12 +71,11 @@ public interface ChainOfResponsibility<X, R> {
     
         return request -> {
 
-            val response = chainOfHandlers.stream()
-                    .filter(h->h.isHandling(request))
+            final Optional<R> responseIfAny = chainOfHandlers.stream()
+                    .filter(h -> h.isHandling(request))
                     .findFirst()
-                    .map(h->h.handle(request));
-
-            return response;
+                    .map(h -> h.handle(request));
+            return responseIfAny;
         };
         
     }
diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java b/core/config/src/main/java/org/apache/isis/config/IsisModuleConfig.java
similarity index 84%
rename from core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
rename to core/config/src/main/java/org/apache/isis/config/IsisModuleConfig.java
index 37e7cb0..dccc231 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfigModule.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisModuleConfig.java
@@ -21,6 +21,8 @@ package org.apache.isis.config;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.isis.commons.IsisModuleCommons;
+import org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
@@ -32,12 +34,18 @@ import org.apache.isis.config.viewer.wicket.WebAppConfiguration;
 
 @Configuration
 @Import({
+    // modules
+    IsisModuleCommons.class,
+
+    // @Component's
     IsisConfiguration.PatternsConverter.class,
-    IsisSystemEnvironment.class,
-    WebAppConfiguration.class
+    IsisBeanFactoryPostProcessorForSpring.class,
+
+    // @Service's
+    WebAppConfiguration.class,
 })
 @EnableConfigurationProperties(IsisConfiguration.class)
-public class IsisConfigModule {
+public class IsisModuleConfig {
     
     @SuppressWarnings("ConfigurationProperties") // think this is not really an issue...
     @ConfigurationProperties(prefix = "isis")
diff --git a/core/config/src/main/java/org/apache/isis/config/presets/DebugDiscovery.properties b/core/config/src/main/java/org/apache/isis/config/presets/DebugDiscovery.properties
index 4141dbf..53d21fb 100644
--- a/core/config/src/main/java/org/apache/isis/config/presets/DebugDiscovery.properties
+++ b/core/config/src/main/java/org/apache/isis/config/presets/DebugDiscovery.properties
@@ -15,5 +15,5 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-logging.level.org.apache.isis.config.registry.IsisBeanTypeRegistry = DEBUG
+logging.level.org.apache.isis.config.beans.IsisBeanTypeRegistry = DEBUG
 logging.level.org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring = DEBUG
diff --git a/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAs.java b/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAs.java
index e3f9c30..79404fb 100644
--- a/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAs.java
+++ b/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAs.java
@@ -21,15 +21,13 @@ package org.apache.isis.metamodel.facets.object.mixin;
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
-import org.mockito.ArgumentCaptor;
 import org.mockito.ArgumentMatchers;
-import org.mockito.Matchers;
 import org.mockito.Mockito;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.services.i18n.TranslationService.Mode;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FeatureType;
diff --git a/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAsActionTest.java b/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAsActionTest.java
index 10479ee..ece3508 100644
--- a/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAsActionTest.java
+++ b/core/detached-tests/src/test/java/org/apache/isis/metamodel/facets/object/mixin/MixinIntendedAsActionTest.java
@@ -27,23 +27,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
-import org.springframework.util.ReflectionUtils;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.Collection;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.metamodel.facets.object.mixin.MixinFacet.Policy;
-import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.metamodel.specloader.specimpl.IntrospectionState;
-import org.apache.isis.runtime.persistence.adapter.PojoAdapter;
 
 import lombok.Data;
 import lombok.RequiredArgsConstructor;
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index 02000d2..4ef95dd 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -88,7 +88,7 @@
         
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-security</artifactId>
+            <artifactId>isis-security-api</artifactId>
         </dependency>
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisModuleMetamodel.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisModuleMetamodel.java
new file mode 100644
index 0000000..1e96b1d
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisModuleMetamodel.java
@@ -0,0 +1,101 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.metamodel;
+
+import org.apache.isis.applib.IsisModuleApplib;
+import org.apache.isis.config.IsisModuleConfig;
+import org.apache.isis.metamodel.context.MetaModelContexts;
+import org.apache.isis.metamodel.objectmanager.ObjectManagerDefault;
+import org.apache.isis.metamodel.progmodel.ProgrammingModelInitFilterDefault;
+import org.apache.isis.metamodel.services.ServiceInjectorDefault;
+import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureFactory;
+import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault;
+import org.apache.isis.metamodel.services.classsubstitutor.ClassSubstitutorDefault;
+import org.apache.isis.metamodel.services.events.MetamodelEventService;
+import org.apache.isis.metamodel.services.events.MetamodelEventSupport_Spring;
+import org.apache.isis.metamodel.services.exceprecog.ExceptionRecognizerDocDefault;
+import org.apache.isis.metamodel.services.grid.GridLoaderServiceDefault;
+import org.apache.isis.metamodel.services.grid.GridReaderUsingJaxb;
+import org.apache.isis.metamodel.services.grid.GridServiceDefault;
+import org.apache.isis.metamodel.services.grid.bootstrap3.GridSystemServiceBS3;
+import org.apache.isis.metamodel.services.layout.LayoutServiceDefault;
+import org.apache.isis.metamodel.services.metamodel.MetaModelServiceDefault;
+import org.apache.isis.metamodel.services.registry.ServiceRegistryDefault;
+import org.apache.isis.metamodel.services.swagger.SwaggerServiceDefault;
+import org.apache.isis.metamodel.services.swagger.internal.ClassExcluderDefault;
+import org.apache.isis.metamodel.services.swagger.internal.SwaggerSpecGenerator;
+import org.apache.isis.metamodel.services.swagger.internal.TaggerDefault;
+import org.apache.isis.metamodel.services.swagger.internal.ValuePropertyFactoryDefault;
+import org.apache.isis.metamodel.services.title.TitleServiceDefault;
+import org.apache.isis.metamodel.services.user.UserServiceDefault;
+import org.apache.isis.metamodel.specloader.InjectorMethodEvaluatorDefault;
+import org.apache.isis.metamodel.specloader.ProgrammingModelServiceDefault;
+import org.apache.isis.metamodel.specloader.SpecificationLoaderDefault;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({
+        // modules
+        IsisModuleApplib.class,
+        IsisModuleConfig.class,
+
+        // @Configuration's
+        MetaModelContexts.class,
+        MetamodelEventSupport_Spring.class,
+
+        // @Component's
+        ProgrammingModelInitFilterDefault.class,
+        ClassSubstitutorDefault.class,
+        ClassExcluderDefault.class,
+        SwaggerSpecGenerator.class,
+        TaggerDefault.class,
+        ValuePropertyFactoryDefault.class,
+
+        // @Service's
+        ObjectManagerDefault.class,
+        ServiceInjectorDefault.class,
+        ApplicationFeatureFactory.class,
+        MetamodelEventService.class,
+        ExceptionRecognizerDocDefault.class,
+        GridLoaderServiceDefault.class,
+        GridReaderUsingJaxb.class,
+        GridServiceDefault.class,
+        GridSystemServiceBS3.class,
+        LayoutServiceDefault.class,
+        MetaModelServiceDefault.class,
+        SwaggerServiceDefault.class,
+        TitleServiceDefault.class,
+        UserServiceDefault.class,
+        InjectorMethodEvaluatorDefault.class,
+        ProgrammingModelServiceDefault.class,
+        SpecificationLoaderDefault.class,
+
+        // @Repository's
+        ApplicationFeatureRepositoryDefault.class,
+
+        // @DomainService's
+        ServiceRegistryDefault.class,
+        UserServiceDefault.SudoServiceSpi.class,
+
+})
+public class IsisModuleMetamodel {
+
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContext.java
similarity index 99%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
rename to core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContext.java
index e022f54..e2ecb1d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContext.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.metamodel;
+package org.apache.isis.metamodel.context;
 
 import java.util.stream.Stream;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContextAware.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContextAware.java
similarity index 95%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContextAware.java
rename to core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContextAware.java
index 4c01a1d..6b0814e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContextAware.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContextAware.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.metamodel;
+package org.apache.isis.metamodel.context;
 
 /**
  * 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContext_usingIoc.java
similarity index 99%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
rename to core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContext_usingIoc.java
index 6dca88b..1ce14d8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContext_usingIoc.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContext_usingIoc.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.metamodel;
+package org.apache.isis.metamodel.context;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContexts.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContexts.java
similarity index 96%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContexts.java
rename to core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContexts.java
index 57b9cc6..b73d218 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/MetaModelContexts.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/context/MetaModelContexts.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.metamodel;
+package org.apache.isis.metamodel.context;
 
 import javax.inject.Singleton;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetAbstract.java
index 986c55a..4d0375d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetAbstract.java
@@ -26,7 +26,7 @@ import java.util.function.Consumer;
 
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 
 import static org.apache.isis.commons.internal.base._With.requires;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolder.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolder.java
index 4358ca1..a1adde6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolder.java
@@ -21,7 +21,7 @@ package org.apache.isis.metamodel.facetapi;
 
 import java.util.stream.Stream;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 
 import lombok.val;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolderImpl.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolderImpl.java
index 7fb21a9..7276254 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolderImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facetapi/FacetHolderImpl.java
@@ -27,8 +27,8 @@ import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.collections._Maps.AliasMap;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 
 import static org.apache.isis.commons.internal.base._Casts.uncheckedCast;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactoryAbstract.java
index f93aa6f..fe7edb4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactoryAbstract.java
@@ -22,8 +22,8 @@ package org.apache.isis.metamodel.facets;
 import java.util.List;
 
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java
index bd3f121..da16bd4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java
@@ -26,7 +26,7 @@ import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ViewModel;
 import org.apache.isis.applib.annotation.ViewModelLayout;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.metamodel.facets.Annotations;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index dcf9ca5..4fe237e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -39,7 +39,7 @@ import org.apache.isis.applib.events.lifecycle.ObjectUpdatedEvent;
 import org.apache.isis.applib.events.lifecycle.ObjectUpdatingEvent;
 import org.apache.isis.applib.services.HasUniqueId;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
index 9fd7142..36b65d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainservice/annotation/DomainServiceFacetAnnotationFactory.java
@@ -24,7 +24,7 @@ import java.util.stream.Stream;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.metamodel.facets.Annotations;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
index 40d03dd..8ecb736 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/param/parameter/ParameterAnnotationFacetFactory.java
@@ -23,7 +23,7 @@ import javax.annotation.Nullable;
 import javax.validation.constraints.Pattern;
 
 import org.apache.isis.applib.annotation.Parameter;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
index afc3b0e..7e6f205 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.events.domain.PropertyDomainEvent;
 import org.apache.isis.applib.services.HasUniqueId;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facetapi.FeatureType;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java
index 498a5bb..f5f6d85 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManager.java
@@ -20,7 +20,7 @@ package org.apache.isis.metamodel.objectmanager;
 
 import javax.annotation.Nullable;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.metamodel.objectmanager.identify.ObjectIdentifier;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java
index b501d2e..f0274ff 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java
@@ -23,7 +23,7 @@ import javax.inject.Inject;
 
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.objectmanager.create.ObjectCreator;
 import org.apache.isis.metamodel.objectmanager.identify.ObjectIdentifier;
 import org.apache.isis.metamodel.objectmanager.load.ObjectLoader;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator.java
index fff3a74..fc21161 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator.java
@@ -22,8 +22,8 @@ package org.apache.isis.metamodel.objectmanager.create;
 import org.apache.isis.commons.handler.ChainOfResponsibility;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java
index e9439bf..43228a3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/create/ObjectCreator_builtinHandlers.java
@@ -27,7 +27,7 @@ import org.apache.isis.applib.services.eventbus.EventBusService;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.commons.internal.factory.InstanceUtil;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facets.object.callbacks.CallbackFacet;
 import org.apache.isis.metamodel.facets.object.callbacks.CreatedCallbackFacet;
 import org.apache.isis.metamodel.facets.object.callbacks.CreatedLifecycleEventFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader.java
index b6175cf..6ca438a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader.java
@@ -22,8 +22,8 @@ package org.apache.isis.metamodel.objectmanager.load;
 import org.apache.isis.commons.handler.ChainOfResponsibility;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java
index 0f6ed91..81ca9b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/load/ObjectLoader_builtinHandlers.java
@@ -24,7 +24,7 @@ import java.lang.reflect.Modifier;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.metamodel.objectmanager.load.ObjectLoader.Request;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/refresh/ObjectRefresher_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/refresh/ObjectRefresher_builtinHandlers.java
index 8dfcaa5..c1f5d98 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/refresh/ObjectRefresher_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/refresh/ObjectRefresher_builtinHandlers.java
@@ -19,7 +19,7 @@
 package org.apache.isis.metamodel.objectmanager.refresh;
 
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
index b85e903..135850e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
@@ -31,8 +31,8 @@ import org.apache.isis.applib.events.domain.CollectionDomainEvent;
 import org.apache.isis.applib.events.domain.PropertyDomainEvent;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.reflection._Annotations;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facets.FacetedMethod;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java
index 8b691d9..128a2e7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/progmodel/ProgrammingModelAbstract.java
@@ -22,7 +22,6 @@ package org.apache.isis.metamodel.progmodel;
 import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.function.Supplier;
 import java.util.stream.Stream;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
@@ -30,14 +29,11 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Multimaps;
 import org.apache.isis.commons.internal.collections._Multimaps.SetMultimap;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.metamodel.facets.FacetFactory;
-import org.apache.isis.metamodel.progmodel.ProgrammingModel.Marker;
-import org.apache.isis.metamodel.progmodel.ProgrammingModel.ValidationOrder;
 import org.apache.isis.metamodel.specloader.validator.MetaModelValidator;
-import org.apache.isis.metamodel.specloader.validator.MetaModelValidatorVisiting;
 
 import lombok.EqualsAndHashCode;
 import lombok.Value;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeature.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeature.java
index 0217655..339965b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeature.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeature.java
@@ -25,7 +25,7 @@ import java.util.function.Predicate;
 
 import javax.enterprise.inject.Vetoed;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.appfeat.ApplicationFeatureRepository;
@@ -48,17 +48,17 @@ import org.apache.isis.commons.internal.collections._Sets;
 public class ApplicationFeature implements Comparable<ApplicationFeature> {
 
     public static abstract class PropertyDomainEvent<T> 
-    extends IsisApplibModule.PropertyDomainEvent<ApplicationFeature, T> {
+    extends IsisModuleApplib.PropertyDomainEvent<ApplicationFeature, T> {
         private static final long serialVersionUID = 1L;
     }
 
     public static abstract class CollectionDomainEvent<T> 
-    extends IsisApplibModule.CollectionDomainEvent<ApplicationFeature, T> {
+    extends IsisModuleApplib.CollectionDomainEvent<ApplicationFeature, T> {
         private static final long serialVersionUID = 1L;
     }
 
     public static abstract class ActionDomainEvent 
-    extends IsisApplibModule.ActionDomainEvent<ApplicationFeature> {
+    extends IsisModuleApplib.ActionDomainEvent<ApplicationFeature> {
         private static final long serialVersionUID = 1L;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
index 9f4b848..336ae72 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureRepositoryDefault.java
@@ -30,6 +30,7 @@ import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 
 import org.apache.isis.config.metamodel.services.ApplicationFeaturesInitConfiguration;
+import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.annotation.SemanticsOf;
@@ -62,7 +63,7 @@ import static org.apache.isis.commons.internal.base._NullSafe.stream;
 
 import lombok.val;
 
-@Service
+@Repository
 public class ApplicationFeatureRepositoryDefault implements ApplicationFeatureRepository {
 
     // -- caches
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
index c11c9e9..3a011b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
@@ -33,8 +33,8 @@ import org.apache.isis.applib.domain.DomainObjectList;
 import org.apache.isis.commons.internal.base._Tuples.Tuple2;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.ParentedOid;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.commons.ClassExtensions;
 import org.apache.isis.metamodel.commons.ListExtensions;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectAction.java
index a9585b6..c5ce02b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/feature/ObjectAction.java
@@ -38,8 +38,7 @@ import org.apache.isis.applib.value.Clob;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.consent.Consent;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.facets.actions.action.associateWith.AssociatedWithFacet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
index b1ec9e1..d91b7a9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
@@ -25,7 +25,7 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.commons.internal.base._Lazy;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.metamodel.progmodel.ProgrammingModelInitFilter;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index d2c30b8..02e4d58 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -39,7 +39,7 @@ import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.beans.IsisBeanTypeRegistryHolder;
 import org.apache.isis.config.metamodel.specloader.IntrospectionMode;
 import org.apache.isis.config.beans.IsisBeanTypeRegistry;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.metamodel.progmodel.ProgrammingModelService;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/facetprocessor/FacetProcessor.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/facetprocessor/FacetProcessor.java
index ac0bfad..25689ac 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/facetprocessor/FacetProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/facetprocessor/FacetProcessor.java
@@ -32,7 +32,7 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.collections._Multimaps;
 import org.apache.isis.commons.internal.collections._Multimaps.ListMultimap;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.commons.ListExtensions;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FeatureType;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index c810ee4..76d8272 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -26,8 +26,7 @@ import java.util.function.Predicate;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.commons.ClassExtensions;
 import org.apache.isis.metamodel.commons.ListExtensions;
 import org.apache.isis.metamodel.commons.StringExtensions;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index 54d2499..dd95b44 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -26,7 +26,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.commons.StringExtensions;
 import org.apache.isis.metamodel.consent.Consent;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 7a6d209..f7d7807 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -30,7 +30,7 @@ import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.commons.StringExtensions;
 import org.apache.isis.metamodel.commons.ToString;
 import org.apache.isis.metamodel.facetapi.Facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/validator/MetaModelValidatorAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/validator/MetaModelValidatorAbstract.java
index c5bd3f3..f796b74 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/validator/MetaModelValidatorAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/validator/MetaModelValidatorAbstract.java
@@ -21,8 +21,8 @@ package org.apache.isis.metamodel.specloader.validator;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 
 import lombok.Getter;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java
index 6afa283..f8a9645 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_configTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.metamodel;
 
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
index 267deea..99d5a35 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/MetaModelContext_forTesting.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Stream;
 
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.springframework.core.env.AbstractEnvironment;
 
 import org.apache.isis.applib.services.i18n.TranslationService;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java
index b40cc70..b5d51ca 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java
@@ -20,6 +20,7 @@ package org.apache.isis.metamodel;
 
 import java.util.function.Consumer;
 
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.springframework.beans.factory.InjectionPoint;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceRegistry_forTesting.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceRegistry_forTesting.java
index b53a62b..4d0d508 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceRegistry_forTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/ServiceRegistry_forTesting.java
@@ -33,6 +33,7 @@ import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.commons.internal.ioc.IocContainer;
 import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
 import org.apache.isis.commons.internal.ioc.spring._Spring;
+import org.apache.isis.metamodel.context.MetaModelContext;
 
 import lombok.Builder;
 import lombok.Getter;
@@ -45,7 +46,7 @@ import lombok.val;
 @RequiredArgsConstructor
 class ServiceRegistry_forTesting implements ServiceRegistry {
 
-    @NonNull private final MetaModelContext metaModelContext; 
+    @NonNull private final MetaModelContext metaModelContext;
     
     @Getter @Setter private IocContainer iocContainer;
     private final Set<ManagedBeanAdapter> registeredBeans = _Sets.newHashSet();
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
index 975c309..d3f732a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
@@ -33,8 +33,8 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryTest.java
index eaa4fd2..b6d816d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/AbstractFacetFactoryTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactoryTest.java
index 19596dd..82c7042 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ViewModelSemanticCheckingFacetFactoryTest.java
@@ -28,8 +28,8 @@ import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.FacetFactory;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
index 1894bf5..af5cb1e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
@@ -30,7 +30,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
index 1b73991..96e1047 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
@@ -30,7 +30,7 @@ import org.junit.Test;
 
 import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facets.Annotations;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
index 32a0ceb..a2b6f2d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/parseable/ParseableFacetUsingParserTest.java
@@ -30,7 +30,7 @@ import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.adapters.ParsingException;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
index 841457c..5e13ea0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
@@ -24,7 +24,7 @@ import java.math.BigDecimal;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigIntValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
index 6360f77..a002a4c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
@@ -24,7 +24,7 @@ import java.math.BigInteger;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ByteValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ByteValueSemanticsProviderTest.java
index e44c5b3..c209f36 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ByteValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ByteValueSemanticsProviderTest.java
@@ -22,7 +22,7 @@ package org.apache.isis.metamodel.facets.value;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/DoubleValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
index b94b353..bfb0be4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/DoubleValueSemanticsProviderTest.java
@@ -22,7 +22,7 @@ package org.apache.isis.metamodel.facets.value;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/FloatValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/FloatValueSemanticsProviderTest.java
index b0889c7..bc97a75 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/FloatValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/FloatValueSemanticsProviderTest.java
@@ -22,7 +22,7 @@ package org.apache.isis.metamodel.facets.value;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/IntValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/IntValueSemanticsProviderTest.java
index 75512cd..5d06408 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/IntValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/IntValueSemanticsProviderTest.java
@@ -22,7 +22,7 @@ package org.apache.isis.metamodel.facets.value;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
index b50ecca..7820ebe 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlDateValueSemanticsProviderTest.java
@@ -28,7 +28,7 @@ import java.util.TimeZone;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlTimeValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlTimeValueSemanticsProviderTest.java
index eb69c5f..677082b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlTimeValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaSqlTimeValueSemanticsProviderTest.java
@@ -27,7 +27,7 @@ import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.value.timesql.JavaSqlTimeValueSemanticsProvider;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
index d5133ae..086d523 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/JavaUtilDateValueSemanticsProviderTest.java
@@ -27,7 +27,7 @@ import java.util.TimeZone;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/LongValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/LongValueSemanticsProviderTest.java
index daa1a60..b43e519 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/LongValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/LongValueSemanticsProviderTest.java
@@ -22,7 +22,7 @@ package org.apache.isis.metamodel.facets.value;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/MoneyValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/MoneyValueSemanticsProviderTest.java
index 8581bc1..b855ec2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/MoneyValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/MoneyValueSemanticsProviderTest.java
@@ -25,7 +25,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.isis.applib.value.Money;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/PercentageValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/PercentageValueSemanticsProviderTest.java
index 3d13b21..ab8b579 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/PercentageValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/PercentageValueSemanticsProviderTest.java
@@ -23,7 +23,7 @@ import org.junit.Before;
 import org.junit.Test;
 
 import org.apache.isis.applib.value.Percentage;
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.value.percentage.PercentageValueSemanticsProvider;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ShortValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ShortValueSemanticsProviderTest.java
index 5925121..93e4f27 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ShortValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ShortValueSemanticsProviderTest.java
@@ -22,7 +22,7 @@ package org.apache.isis.metamodel.facets.value;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContextAware;
+import org.apache.isis.metamodel.context.MetaModelContextAware;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
 import org.apache.isis.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.metamodel.facets.object.parseable.TextEntryParseException;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
index 526cf1c..4940c5a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
@@ -29,7 +29,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.facetapi.FacetHolder;
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java
index a128b77..dd3e6bf 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java
@@ -34,7 +34,7 @@ import org.springframework.test.context.ActiveProfiles;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.config.IsisConfigModule;
+import org.apache.isis.config.IsisModuleConfig;
 import org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring;
 import org.apache.isis.metamodel.services.registry.ServiceRegistryDefault;
 
@@ -46,7 +46,7 @@ import lombok.Getter;
 @ActiveProfiles("test")
 @SpringBootTest(classes = {
         IsisBeanFactoryPostProcessorForSpring.class,
-        IsisConfigModule.class,
+        IsisModuleConfig.class,
         ServiceInjectorDefault.class,
         ServiceRegistryDefault.class,
         ServiceInjectorLegacyTest.Producers.class,
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java
index b39d0d5..0288b42 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java
@@ -32,7 +32,7 @@ import org.springframework.test.context.ActiveProfiles;
 
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
-import org.apache.isis.config.IsisConfigModule;
+import org.apache.isis.config.IsisModuleConfig;
 import org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring;
 import org.apache.isis.metamodel.services.registry.ServiceRegistryDefault;
 
@@ -40,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @ActiveProfiles("test")
 @SpringBootTest(classes = {
-        IsisConfigModule.class,
+        IsisModuleConfig.class,
         ServiceInjectorDefault.class,
         ServiceRegistryDefault.class,
         ServiceInjectorLegacyTest.Producers.class,
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorLegacyTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorLegacyTest.java
index c609b84..67c0ec9 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorLegacyTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorLegacyTest.java
@@ -35,7 +35,7 @@ import org.springframework.test.context.ActiveProfiles;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.config.IsisConfigModule;
+import org.apache.isis.config.IsisModuleConfig;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring;
 import org.apache.isis.metamodel.services.registry.ServiceRegistryDefault;
@@ -51,7 +51,7 @@ import lombok.val;
 @ActiveProfiles("test")
 @SpringBootTest(classes = {
         IsisBeanFactoryPostProcessorForSpring.class,
-        IsisConfigModule.class,
+        IsisModuleConfig.class,
         ServiceInjectorLegacy.class,
         ServiceRegistryDefault.class,
         ServiceInjectorLegacyTest.Producers.class,
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
index 3b30b70..f979eca 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.applib.services.title.TitleService;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facets.actcoll.typeof.TypeOfFacet;
diff --git a/core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java b/core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisModuleJdoApplib.java
similarity index 87%
copy from core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java
copy to core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisModuleJdoApplib.java
index bb6acf2..37c6cca 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java
+++ b/core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisModuleJdoApplib.java
@@ -16,13 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.schema;
+package org.apache.isis.persistence.jdo.applib.services;
 
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-public class IsisSchemaModule {
-
-
+public class IsisModuleJdoApplib {
 }
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisBootDataNucleus.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisModuleJdoDataNucleus5.java
similarity index 88%
rename from core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisBootDataNucleus.java
rename to core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisModuleJdoDataNucleus5.java
index 2731748..b569a9f 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisBootDataNucleus.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisModuleJdoDataNucleus5.java
@@ -21,6 +21,9 @@ package org.apache.isis.persistence.jdo.datanucleus5;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.isis.metamodel.IsisModuleMetamodel;
+import org.apache.isis.persistence.jdo.applib.services.IsisModuleJdoApplib;
+import org.apache.isis.schema.IsisModuleSchema;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
@@ -38,6 +41,11 @@ import org.apache.isis.persistence.jdo.datanucleus5.persistence.PersistenceSessi
 
 @Configuration
 @Import({
+        // modules
+        IsisModuleJdoApplib.class,
+        IsisModuleMetamodel.class,
+        IsisModuleSchema.class,
+
     DataNucleusSettings.class, // config bean
     JdoProgrammingModelPlugin.class, // metamodel extensions
     JdoPersistenceLifecycleService.class,
@@ -51,7 +59,7 @@ import org.apache.isis.persistence.jdo.datanucleus5.persistence.PersistenceSessi
                 // bring in the mixins
                 Persistable_datanucleusIdLong.class,
         })
-public class IsisBootDataNucleus {
+public class IsisModuleJdoDataNucleus5 {
     
     // reserved for datanucleus' own config props
     @ConfigurationProperties(prefix = "isis.persistor.datanucleus.impl")
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
index e361879..495ee6d 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
@@ -27,7 +27,7 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.config.beans.IsisBeanTypeRegistryHolder;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.runtime.system.context.session.AppLifecycleEvent;
 import org.apache.isis.runtime.system.context.session.SessionLifecycleEvent;
 import org.apache.isis.runtime.system.persistence.PersistenceSession;
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusIdLong.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusIdLong.java
index d140995..26e214eb 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusIdLong.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusIdLong.java
@@ -42,7 +42,7 @@ public class Persistable_datanucleusIdLong {
         this.persistable = persistable;
     }
 
-    public static class ActionDomainEvent extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Persistable_datanucleusIdLong> {}
+    public static class ActionDomainEvent extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Persistable_datanucleusIdLong> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionLong.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionLong.java
index 4c2bc0d..2bddb75 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionLong.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionLong.java
@@ -41,7 +41,7 @@ public class Persistable_datanucleusVersionLong {
         this.persistable = persistable;
     }
 
-    public static class ActionDomainEvent extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Persistable_datanucleusVersionLong> {}
+    public static class ActionDomainEvent extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Persistable_datanucleusVersionLong> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionTimestamp.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionTimestamp.java
index e0b442c..af25448 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionTimestamp.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_datanucleusVersionTimestamp.java
@@ -41,7 +41,7 @@ public class Persistable_datanucleusVersionTimestamp {
         this.persistable = persistable;
     }
 
-    public static class ActionDomainEvent extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Persistable_datanucleusVersionTimestamp> {}
+    public static class ActionDomainEvent extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Persistable_datanucleusVersionTimestamp> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_downloadJdoMetadata.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_downloadJdoMetadata.java
index 5fb1e2f..e77c121 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_downloadJdoMetadata.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/mixins/Persistable_downloadJdoMetadata.java
@@ -49,7 +49,7 @@ public class Persistable_downloadJdoMetadata {
         this.persistable = persistable;
     }
 
-    public static class ActionDomainEvent extends org.apache.isis.applib.IsisApplibModule.ActionDomainEvent<Persistable_downloadJdoMetadata> {}
+    public static class ActionDomainEvent extends org.apache.isis.applib.IsisModuleApplib.ActionDomainEvent<Persistable_downloadJdoMetadata> {}
 
     @Action(
             domainEvent = ActionDomainEvent.class,
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext.java
index 9a68cd1..08b5fc8 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/objectadapter/ObjectAdapterContext.java
@@ -24,7 +24,7 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.commons.internal.assertions._Assert;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.persistence.jdo.datanucleus5.persistence.IsisPersistenceSessionJdo;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.adapter.oid.Oid;
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java
index d00a6ed..796722e 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java
@@ -35,7 +35,8 @@ import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.user.UserService;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryProcessor;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.commons.ToString;
 import org.apache.isis.metamodel.spec.ManagedObject;
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
index 11a8c70..34ae594 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
@@ -49,7 +49,14 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.commons.exceptions.IsisException;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.commands.DataNucleusCreateObjectCommand;
+import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.commands.DataNucleusDeleteObjectCommand;
+import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryFindAllInstancesProcessor;
+import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryFindUsingApplibQueryProcessor;
+import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryProcessor;
+import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.spi.JdoObjectIdSerializer;
+import org.apache.isis.persistence.jdo.datanucleus5.objectadapter.ObjectAdapterContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException;
 import org.apache.isis.metamodel.adapter.oid.Oid;
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
index ccb713a..1013248 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
@@ -39,7 +39,7 @@ import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.DataNucleusSetti
 import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.JDOStateManagerForIsis;
 import org.apache.isis.persistence.jdo.datanucleus5.entities.JdoEntityTypeRegistry;
 import org.apache.isis.persistence.jdo.datanucleus5.lifecycles.JdoStoreLifecycleListenerForIsis;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.runtime.persistence.FixturesInstalledState;
 import org.apache.isis.runtime.persistence.FixturesInstalledStateHolder;
 import org.apache.isis.runtime.system.persistence.PersistenceSession;
diff --git a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java
index 14a0984..331aa72 100644
--- a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java
+++ b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/persistence/jdo/datanucleus5/metamodel/facets/object/version/JdoVersionAnnotationFacetFactoryTest_refineMetaModel.java
@@ -20,7 +20,6 @@ package org.apache.isis.persistence.jdo.datanucleus5.metamodel.facets.object.ver
 
 import javax.jdo.annotations.Version;
 
-import org.apache.isis.persistence.jdo.datanucleus5.metamodel.facets.object.version.JdoVersionAnnotationFacetFactory;
 import org.jmock.Expectations;
 import org.jmock.Sequence;
 import org.junit.Before;
@@ -28,7 +27,7 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.isis.applib.Identifier;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facets.all.deficiencies.DeficiencyFacet;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.specloader.validator.MetaModelValidator;
diff --git a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject.java b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
index cfb20af..8fccc17 100644
--- a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
+++ b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
@@ -38,7 +38,7 @@ import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.applib.services.wrapper.HiddenException;
 import org.apache.isis.applib.services.wrapper.InvalidException;
 import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.facetapi.FacetUtil;
 import org.apache.isis.metamodel.facets.FacetedMethod;
diff --git a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
index 75ca4dc..812fe9a 100644
--- a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
+++ b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
@@ -40,7 +40,7 @@ import org.apache.isis.applib.services.wrapper.events.PropertyModifyEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyUsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.PropertyVisibilityEvent;
 import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.consent.Allow;
 import org.apache.isis.metamodel.consent.Consent;
diff --git a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java
index 4b801a9..8574928 100644
--- a/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/persistence/jdo/datanucleus-5/src/test/java/org/apache/isis/runtime/system/ObjectMemberAbstractTest.java
@@ -27,7 +27,7 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.adapter.oid.Oid.Factory;
diff --git a/core/pom.xml b/core/pom.xml
index e451634..cbc20d5 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -849,7 +849,7 @@
 			</dependency>
 			<dependency>
 				<groupId>org.apache.isis.core</groupId>
-				<artifactId>isis-security</artifactId>
+				<artifactId>isis-security-api</artifactId>
 				<version>2.0.0-M3-SNAPSHOT</version>
 			</dependency>
 			<dependency>
diff --git a/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisExtHsqldbMgrModule.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
similarity index 86%
copy from extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisExtHsqldbMgrModule.java
copy to core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
index 5d71d5f1..c654f3f 100644
--- a/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisExtHsqldbMgrModule.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
@@ -16,18 +16,18 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.hsqldbmgr.dom;
+package org.apache.isis.runtime.services;
 
-import org.apache.isis.webapp.IsisBootWebApp;
+import org.apache.isis.runtime.IsisModuleRuntime;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-        IsisBootWebApp.class
+        IsisModuleRuntime.class,
 })
 @ComponentScan
-public class IsisExtHsqldbMgrModule {
+public class IsisModuleRuntimeServices {
 
 }
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisRuntimeServicesModule.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisRuntimeServicesModule.java
deleted file mode 100644
index 0c258a3..0000000
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisRuntimeServicesModule.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.runtime.services;
-
-import org.apache.isis.config.IsisConfigModule;
-import org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring;
-import org.apache.isis.runtime.IsisRuntimeModule;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-@Configuration
-@Import({
-        IsisRuntimeModule.class,
-})
-@ComponentScan
-public class IsisRuntimeServicesModule {
-
-}
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java
index 78ffc81..ba08593 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePoMenu.java
@@ -20,7 +20,7 @@ package org.apache.isis.runtime.services.i18n.po;
 
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
@@ -42,7 +42,7 @@ import org.apache.isis.applib.value.Clob;
         )
 public class TranslationServicePoMenu {
 
-    public static abstract class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<TranslationServicePoMenu> {}
+    public static abstract class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<TranslationServicePoMenu> {}
 
     // //////////////////////////////////////
 
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
index da87dc5..48a62fa 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
@@ -46,7 +46,7 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.facets.actions.notinservicemenu.NotInServiceMenuFacet;
 import org.apache.isis.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.metamodel.facets.members.order.MemberOrderFacet;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java
index 526a548..7ca49b2 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java
@@ -58,7 +58,7 @@ import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.security.api.authentication.AuthenticationSessionProvider;
 import org.apache.isis.runtime.services.wrapper.dispatchers.InteractionEventDispatcher;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/DomainObjectInvocationHandler.java
index d6107a9..3c89374 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -42,7 +42,7 @@ import org.apache.isis.applib.services.wrapper.events.UsabilityEvent;
 import org.apache.isis.applib.services.wrapper.events.ValidityEvent;
 import org.apache.isis.applib.services.wrapper.events.VisibilityEvent;
 import org.apache.isis.commons.internal.collections._Arrays;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.consent.InteractionResult;
 import org.apache.isis.metamodel.facets.ImperativeFacet;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/ProxyContextHandler.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/ProxyContextHandler.java
index 8a07931..3c678c1 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/ProxyContextHandler.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/handlers/ProxyContextHandler.java
@@ -24,7 +24,7 @@ import java.util.EnumSet;
 import java.util.Map;
 
 import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.runtime.services.wrapper.proxy.ProxyCreator;
 
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/IsisRuntimeModule.java b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
similarity index 89%
rename from core/runtime/src/main/java/org/apache/isis/runtime/IsisRuntimeModule.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
index ed7afd0..f53b450 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/IsisRuntimeModule.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
@@ -18,16 +18,16 @@
  */
 package org.apache.isis.runtime;
 
-import org.apache.isis.metamodel.IsisMetamodelModule;
+import org.apache.isis.metamodel.IsisModuleMetamodel;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-        IsisMetamodelModule.class,
+        IsisModuleMetamodel.class,
 })
 @ComponentScan
-public class IsisRuntimeModule {
+public class IsisModuleRuntime {
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java
index 7e5bac0..798b2a9 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContext.java
@@ -21,7 +21,7 @@ package org.apache.isis.runtime.system.context.session;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.services.homepage.HomePageAction;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java
index 5dee024..fc98adf 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeContextBase.java
@@ -24,7 +24,7 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.services.homepage.HomePageAction;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSessionFactory.java
index 35b9d04..1c1fe18 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/PersistenceSessionFactory.java
@@ -18,7 +18,7 @@
  */
 package org.apache.isis.runtime.system.persistence;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
 
 public interface PersistenceSessionFactory {
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSession.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSession.java
index 73dff34..4ddd752 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSession.java
@@ -24,7 +24,7 @@ import java.util.Optional;
 import org.apache.isis.applib.services.xactn.TransactionId;
 import org.apache.isis.applib.services.xactn.TransactionState;
 import org.apache.isis.commons.internal.context._Context;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.commons.ToString;
 import org.apache.isis.runtime.system.context.session.RuntimeContextBase;
 import org.apache.isis.runtime.system.context.session.RuntimeEventService;
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java
index d14764e..4afbe9f 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java
@@ -35,7 +35,7 @@ import org.apache.isis.commons.internal.concurrent._ConcurrentContext;
 import org.apache.isis.commons.internal.concurrent._ConcurrentTaskList;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.runtime.system.context.session.RuntimeEventService;
 import org.apache.isis.runtime.system.internal.IsisLocaleInitializer;
diff --git a/core/runtime/src/test/java/org/apache/isis/runtime/system/ObjectActionLayoutXmlDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/runtime/system/ObjectActionLayoutXmlDefaultTest.java
index d762ef4..eaf1e7e 100644
--- a/core/runtime/src/test/java/org/apache/isis/runtime/system/ObjectActionLayoutXmlDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/runtime/system/ObjectActionLayoutXmlDefaultTest.java
@@ -26,7 +26,7 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.isis.applib.Identifier;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.facets.FacetedMethod;
 import org.apache.isis.metamodel.facets.all.named.NamedFacet;
diff --git a/core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java b/core/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
similarity index 96%
copy from core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java
copy to core/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
index bb6acf2..503c95d 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
@@ -22,7 +22,7 @@ import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-public class IsisSchemaModule {
+public class IsisModuleSchema {
 
 
 }
diff --git a/core/security/api/pom.xml b/core/security/api/pom.xml
index 5f77511..df0767b 100644
--- a/core/security/api/pom.xml
+++ b/core/security/api/pom.xml
@@ -27,7 +27,7 @@
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
-    <artifactId>isis-security</artifactId>
+    <artifactId>isis-security-api</artifactId>
     <name>Apache Isis Security - API</name>
 
     <properties>
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/package-info.java b/core/security/api/src/main/java/org/apache/isis/security/api/IsisModuleSecurityApi.java
similarity index 84%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/package-info.java
rename to core/security/api/src/main/java/org/apache/isis/security/api/IsisModuleSecurityApi.java
index 129535f..be238d1 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/package-info.java
+++ b/core/security/api/src/main/java/org/apache/isis/security/api/IsisModuleSecurityApi.java
@@ -16,8 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
+package org.apache.isis.security.api;
 
-/**
- * Viewer API.
- */
-package org.apache.isis.runtime.viewer;
\ No newline at end of file
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleSecurityApi {
+}
diff --git a/core/security/bypass/pom.xml b/core/security/bypass/pom.xml
index 8faee5b..3075076 100644
--- a/core/security/bypass/pom.xml
+++ b/core/security/bypass/pom.xml
@@ -38,7 +38,7 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-security</artifactId>
+            <artifactId>isis-security-api</artifactId>
         </dependency>
         
         <dependency>
diff --git a/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisBootSecurityBypass.java b/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisModuleSecurityBypass.java
similarity index 97%
rename from core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisBootSecurityBypass.java
rename to core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisModuleSecurityBypass.java
index 2c314cc..6ba614e 100644
--- a/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisBootSecurityBypass.java
+++ b/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisModuleSecurityBypass.java
@@ -41,7 +41,7 @@ import org.apache.isis.security.api.authorization.standard.Authorizor;
     AuthorizationManagerStandard.class,
     AuthenticationManagerStandard.class
 })
-public class IsisBootSecurityBypass {
+public class IsisModuleSecurityBypass {
 
     @Bean @Singleton
     public Authenticator authenticator() {
diff --git a/core/security/keycloak/pom.xml b/core/security/keycloak/pom.xml
index aa5a461..e88158d 100644
--- a/core/security/keycloak/pom.xml
+++ b/core/security/keycloak/pom.xml
@@ -55,7 +55,7 @@
     
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-security</artifactId>
+            <artifactId>isis-security-api</artifactId>
         </dependency>
 
         <dependency>
diff --git a/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisBootSecurityKeycloak.java b/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisModuleSecurityKeycloak.java
similarity index 97%
rename from core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisBootSecurityKeycloak.java
rename to core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisModuleSecurityKeycloak.java
index e4268b2..da52a6f 100644
--- a/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisBootSecurityKeycloak.java
+++ b/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisModuleSecurityKeycloak.java
@@ -43,7 +43,7 @@ import org.apache.isis.security.api.authorization.standard.Authorizor;
     AuthenticationManagerStandard.class,
     WebModuleKeycloak.class
 })
-public class IsisBootSecurityKeycloak {
+public class IsisModuleSecurityKeycloak {
 
     @Bean @Singleton
     public Authenticator authenticator() {
diff --git a/core/security/shiro/pom.xml b/core/security/shiro/pom.xml
index 5724c9a..059b9ee 100644
--- a/core/security/shiro/pom.xml
+++ b/core/security/shiro/pom.xml
@@ -55,7 +55,7 @@
     
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-security</artifactId>
+            <artifactId>isis-security-api</artifactId>
         </dependency>
 
         <dependency>
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisBootSecurityShiro.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisModuleSecurityShiro.java
similarity index 98%
rename from core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisBootSecurityShiro.java
rename to core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisModuleSecurityShiro.java
index 2996ca4..8f0e27a 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisBootSecurityShiro.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisModuleSecurityShiro.java
@@ -42,7 +42,7 @@ import org.apache.isis.security.shiro.authorization.ShiroAuthorizor;
     AuthenticationManagerStandard.class,
     WebModuleShiro.class
 })
-public class IsisBootSecurityShiro {
+public class IsisModuleSecurityShiro {
 
     @Bean @Singleton
     public Authenticator authenticator() {
diff --git a/core/testsupport/integtestsupport/pom.xml b/core/testsupport/integtestsupport/pom.xml
index 2be8f26..af793bd 100644
--- a/core/testsupport/integtestsupport/pom.xml
+++ b/core/testsupport/integtestsupport/pom.xml
@@ -138,7 +138,7 @@
 
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>
-			<artifactId>isis-security</artifactId>
+			<artifactId>isis-security-api</artifactId>
 		</dependency>
 		
 		<dependency>
diff --git a/core/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/IsisModuleRestfulObjectsApplib.java b/core/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/IsisModuleRestfulObjectsApplib.java
new file mode 100644
index 0000000..540d534
--- /dev/null
+++ b/core/viewers/restfulobjects/applib/src/main/java/org/apache/isis/viewer/restfulobjects/applib/IsisModuleRestfulObjectsApplib.java
@@ -0,0 +1,7 @@
+package org.apache.isis.viewer.restfulobjects.applib;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleRestfulObjectsApplib {
+}
diff --git a/core/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleRestfulObjectsJaxrsResteasy4.java b/core/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleRestfulObjectsJaxrsResteasy4.java
new file mode 100644
index 0000000..b725360
--- /dev/null
+++ b/core/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleRestfulObjectsJaxrsResteasy4.java
@@ -0,0 +1,7 @@
+package org.apache.isis.viewer.restfulobjects.jaxrsresteasy4;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleRestfulObjectsJaxrsResteasy4 {
+}
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
index de96120..a9ca5e2 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IResourceContext.java
@@ -25,7 +25,7 @@ import javax.ws.rs.core.MediaType;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
new file mode 100644
index 0000000..568fd75
--- /dev/null
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
@@ -0,0 +1,7 @@
+package org.apache.isis.viewer.restfulobjects.rendering;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleRestfulObjectsRendering {
+}
diff --git a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisBootViewerRestfulObjects.java b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleRestfulObjectsViewer.java
similarity index 90%
rename from core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisBootViewerRestfulObjects.java
rename to core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleRestfulObjectsViewer.java
index 5c98b0d..02d8369 100644
--- a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisBootViewerRestfulObjects.java
+++ b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleRestfulObjectsViewer.java
@@ -23,7 +23,7 @@ import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
-import org.apache.isis.webapp.IsisBootWebApp;
+import org.apache.isis.webapp.IsisModuleWebapp;
 
 /**
  * 
@@ -31,9 +31,9 @@ import org.apache.isis.webapp.IsisBootWebApp;
  */
 @Configuration
 @Import({
-    IsisBootWebApp.class
+    IsisModuleWebapp.class
 })
 @ComponentScan
-public class IsisBootViewerRestfulObjects {
+public class IsisModuleRestfulObjectsViewer {
 
 }
diff --git a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java
index 2c6e8bd..fe17578 100644
--- a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java
+++ b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext.java
@@ -35,7 +35,7 @@ import javax.ws.rs.ext.Providers;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Sets;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.spec.ManagedObject;
diff --git a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
index 43c7a45..eb53563 100644
--- a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
+++ b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/ResourceAbstract.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.commons.internal.url.UrlDecoderUtil;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
diff --git a/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java b/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
index be987b1..7a71b53 100644
--- a/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
+++ b/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_ensureCompatibleAcceptHeader_ContractTest.java
@@ -27,7 +27,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 
-import org.apache.isis.viewer.restfulobjects.viewer.context.ResourceContext;
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
@@ -37,7 +36,7 @@ import org.springframework.web.context.WebApplicationContext;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.runtime.system.persistence.PersistenceSession;
diff --git a/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java b/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
index 4a6ed23..921ea1e 100644
--- a/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
+++ b/core/viewers/restfulobjects/viewer/src/test/java/org/apache/isis/viewer/restfulobjects/viewer/context/ResourceContext_getArg_Test.java
@@ -24,7 +24,6 @@ import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.core.HttpHeaders;
 
-import org.apache.isis.viewer.restfulobjects.viewer.context.ResourceContext;
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
@@ -35,7 +34,7 @@ import org.springframework.web.context.WebApplicationContext;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.url.UrlDecoderUtil;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.runtime.system.persistence.PersistenceSession;
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
new file mode 100644
index 0000000..f5fd67d
--- /dev/null
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
@@ -0,0 +1,7 @@
+package org.apache.isis.viewer.wicket.model;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleWicketModel {
+}
diff --git a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java
index fbce9a5..85ca37e 100644
--- a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java
+++ b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/EntityModel_hintsTest.java
@@ -27,7 +27,7 @@ import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
diff --git a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
index 65c5e4f..5717803 100644
--- a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
+++ b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
@@ -24,7 +24,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
new file mode 100644
index 0000000..da821a9
--- /dev/null
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
@@ -0,0 +1,7 @@
+package org.apache.isis.viewer.wicket.ui;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleWicketUi {
+}
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
index 211366b..4d847e3 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelBase.java
@@ -27,7 +27,7 @@ import org.apache.wicket.model.IModel;
 
 import org.apache.isis.applib.services.i18n.LocaleProvider;
 import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.security.api.authentication.MessageBroker;
 import org.apache.isis.viewer.wicket.model.common.CommonContextUtils;
diff --git a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java
index ec44a59..68aaae7 100644
--- a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java
+++ b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/ComponentFactoryAbstractTest_init.java
@@ -25,7 +25,7 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
diff --git a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java
index 63bfaed..10d2cf3 100644
--- a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java
+++ b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/collection/selector/CollectionContentsSelectorDropdownPanelTest.java
@@ -26,7 +26,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisBootViewerWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
similarity index 91%
rename from core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisBootViewerWicket.java
rename to core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
index 1a2d09a..4dd431a 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisBootViewerWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
@@ -24,7 +24,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault;
-import org.apache.isis.webapp.IsisBootWebApp;
+import org.apache.isis.webapp.IsisModuleWebapp;
 
 /**
  * 
@@ -32,10 +32,10 @@ import org.apache.isis.webapp.IsisBootWebApp;
  */
 @Configuration
 @Import({
-    IsisBootWebApp.class,
+    IsisModuleWebapp.class,
     IsisWicketThemeSupportDefault.class
 })
 @ComponentScan
-public class IsisBootViewerWicket {
+public class IsisModuleWicketViewer {
 
 }
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
index 7816928..bbc7e87 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
@@ -35,7 +35,7 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Multimaps;
 import org.apache.isis.commons.internal.collections._Multimaps.ListMultimap;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory;
 import org.apache.isis.viewer.wicket.ui.ComponentFactory.ApplicationAdvice;
 import org.apache.isis.viewer.wicket.ui.ComponentFactoryAbstract;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
index 6d0d955..75c34d5 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
@@ -67,7 +67,7 @@ import org.apache.isis.commons.internal.concurrent._ConcurrentContext;
 import org.apache.isis.commons.internal.concurrent._ConcurrentTaskList;
 import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.runtime.memento.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
diff --git a/core/webapp/src/main/java/org/apache/isis/webapp/IsisBootWebApp.java b/core/webapp/src/main/java/org/apache/isis/webapp/IsisModuleWebapp.java
similarity index 97%
rename from core/webapp/src/main/java/org/apache/isis/webapp/IsisBootWebApp.java
rename to core/webapp/src/main/java/org/apache/isis/webapp/IsisModuleWebapp.java
index d07e2fc..05f9a09 100644
--- a/core/webapp/src/main/java/org/apache/isis/webapp/IsisBootWebApp.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/IsisModuleWebapp.java
@@ -38,6 +38,6 @@ import org.apache.isis.webapp.modules.templresources.WebModuleTemplateResources;
     WebModuleTemplateResources.class,
 
 })
-public class IsisBootWebApp {
+public class IsisModuleWebapp {
 
 }
diff --git a/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java b/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
index 0b19630..73856cb 100644
--- a/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.metamodel.MetaModelContext;
+import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
diff --git a/core/webboot-springboot/src/main/java/org/apache/isis/runtime/spring/IsisBoot.java b/core/webboot-springboot/src/main/java/org/apache/isis/webboot/springboot/IsisModuleSpringBoot.java
similarity index 79%
rename from core/webboot-springboot/src/main/java/org/apache/isis/runtime/spring/IsisBoot.java
rename to core/webboot-springboot/src/main/java/org/apache/isis/webboot/springboot/IsisModuleSpringBoot.java
index bebaa40..d5525b1 100644
--- a/core/webboot-springboot/src/main/java/org/apache/isis/runtime/spring/IsisBoot.java
+++ b/core/webboot-springboot/src/main/java/org/apache/isis/webboot/springboot/IsisModuleSpringBoot.java
@@ -16,21 +16,16 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.runtime.spring;
+package org.apache.isis.webboot.springboot;
 
 import javax.inject.Singleton;
 
-import org.apache.isis.applib.IsisApplibModule;
-import org.apache.isis.config.IsisConfigModule;
 import org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring;
-import org.apache.isis.metamodel.IsisMetamodelModule;
-import org.apache.isis.runtime.IsisRuntimeModule;
-import org.apache.isis.runtime.services.IsisRuntimeServicesModule;
+import org.apache.isis.runtime.services.IsisModuleRuntimeServices;
 import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.core.OrderComparator;
@@ -39,9 +34,9 @@ import org.springframework.core.annotation.AnnotationAwareOrderComparator;
 @Configuration
 @Import({
     IsisBeanFactoryPostProcessorForSpring.class,
-    IsisRuntimeServicesModule.class,
+    IsisModuleRuntimeServices.class,
 })
-public class IsisBoot implements ApplicationContextAware {
+public class IsisModuleSpringBoot implements ApplicationContextAware {
 
     @Override
     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
diff --git a/examples/demo/src/main/java/demoapp/application/DemoAppManifest.java b/examples/demo/src/main/java/demoapp/application/DemoAppManifest.java
index de386db..7850472 100644
--- a/examples/demo/src/main/java/demoapp/application/DemoAppManifest.java
+++ b/examples/demo/src/main/java/demoapp/application/DemoAppManifest.java
@@ -20,6 +20,7 @@ package demoapp.application;
 
 import javax.inject.Singleton;
 
+import org.apache.isis.viewer.restfulobjects.viewer.IsisModuleRestfulObjectsViewer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -28,20 +29,19 @@ import org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
 
 import org.apache.isis.config.presets.IsisPresets;
-import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
+import org.apache.isis.extensions.fixtures.IsisModuleExtFixtures;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationService;
 import org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationServiceAllowBeatsVeto;
-import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryptionJbcrypt;
-import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
-import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
-import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
+import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleSecmanEncryptionJbcrypt;
+import org.apache.isis.extensions.secman.jdo.IsisModuleSecmanPersistenceJdo;
+import org.apache.isis.extensions.secman.model.IsisModuleSecmanModel;
+import org.apache.isis.extensions.secman.shiro.IsisModuleSecmanRealmShiro;
 import org.apache.isis.extensions.sse.IsisBootSse;
-import org.apache.isis.persistence.jdo.datanucleus5.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.shiro.IsisBootSecurityShiro;
-import org.apache.isis.viewer.restfulobjects.viewer.IsisBootViewerRestfulObjects;
-import org.apache.isis.viewer.wicket.viewer.IsisBootViewerWicket;
+import org.apache.isis.persistence.jdo.datanucleus5.IsisModuleJdoDataNucleus5;
+import org.apache.isis.webboot.springboot.IsisModuleSpringBoot;
+import org.apache.isis.security.shiro.IsisModuleSecurityShiro;
+import org.apache.isis.viewer.wicket.viewer.IsisModuleWicketViewer;
 
 import demoapp.dom.DemoModule;
 import demoapp.utils.LibraryPreloadingService;
@@ -56,20 +56,20 @@ import demoapp.utils.LibraryPreloadingService;
     @PropertySource(IsisPresets.SilenceWicket),
 })
 @Import({
-    IsisBoot.class,
-    IsisBootSecurityShiro.class,
-    IsisBootDataNucleus.class,
-    IsisBootViewerWicket.class,
+    IsisModuleSpringBoot.class,
+    IsisModuleSecurityShiro.class,
+    IsisModuleJdoDataNucleus5.class,
+    IsisModuleWicketViewer.class,
     IsisBootSse.class, // server sent events
-    IsisBootViewerRestfulObjects.class,
+    IsisModuleRestfulObjectsViewer.class,
 
     // Security Manager Extension (secman)
-    IsisBootSecmanModel.class,
-    IsisBootSecmanRealmShiro.class,
-    IsisBootSecmanPersistenceJdo.class,
-    IsisBootSecmanEncryptionJbcrypt.class,
+    IsisModuleSecmanModel.class,
+    IsisModuleSecmanRealmShiro.class,
+    IsisModuleSecmanPersistenceJdo.class,
+    IsisModuleSecmanEncryptionJbcrypt.class,
 
-    IsisExtFixturesModule.class,
+    IsisModuleExtFixtures.class,
     
     LibraryPreloadingService.class // just a performance enhancement
 
diff --git a/examples/demo/src/main/java/demoapp/utils/DemoStub.java b/examples/demo/src/main/java/demoapp/utils/DemoStub.java
index b97752b..cfaf0ce 100644
--- a/examples/demo/src/main/java/demoapp/utils/DemoStub.java
+++ b/examples/demo/src/main/java/demoapp/utils/DemoStub.java
@@ -28,7 +28,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.extensions.asciidoc.AsciiDoc;
+import org.apache.isis.extensions.asciidoc.applib.value.AsciiDoc;
 
 import lombok.val;
 
diff --git a/examples/demo/src/main/java/demoapp/utils/LibraryPreloadingService.java b/examples/demo/src/main/java/demoapp/utils/LibraryPreloadingService.java
index 54ded61..7dd4a32 100644
--- a/examples/demo/src/main/java/demoapp/utils/LibraryPreloadingService.java
+++ b/examples/demo/src/main/java/demoapp/utils/LibraryPreloadingService.java
@@ -24,7 +24,7 @@ import org.springframework.stereotype.Service;
 
 import org.apache.isis.commons.internal.concurrent._ConcurrentContext;
 import org.apache.isis.commons.internal.concurrent._ConcurrentTaskList;
-import org.apache.isis.extensions.asciidoc.AsciiDoc;
+import org.apache.isis.extensions.asciidoc.applib.value.AsciiDoc;
 
 import lombok.val;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_headless.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_headless.java
index af0a1d7..72fcf3a 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_headless.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_headless.java
@@ -37,15 +37,15 @@ import org.apache.isis.applib.services.xactn.TransactionId;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.applib.services.xactn.TransactionState;
 import org.apache.isis.config.presets.IsisPresets;
-import org.apache.isis.extensions.incubator.IsisBootIncubator;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.bypass.IsisBootSecurityBypass;
+import org.apache.isis.incubator.model.metamodel.IsisModuleIncModelMetaModel;
+import org.apache.isis.webboot.springboot.IsisModuleSpringBoot;
+import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
 
 @Configuration
 @Import({
-    IsisBoot.class,
-    IsisBootSecurityBypass.class,
-    IsisBootIncubator.class // @Model support
+    IsisModuleSpringBoot.class,
+    IsisModuleSecurityBypass.class,
+    IsisModuleIncModelMetaModel.class // @Model support
 })
 @PropertySources({
     @PropertySource(IsisPresets.NoTranslations),
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdo.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdo.java
index e00f212..3247120 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdo.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdo.java
@@ -25,18 +25,18 @@ import org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
 
 import org.apache.isis.config.presets.IsisPresets;
-import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
-import org.apache.isis.persistence.jdo.datanucleus5.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.bypass.IsisBootSecurityBypass;
+import org.apache.isis.extensions.fixtures.IsisModuleExtFixtures;
+import org.apache.isis.persistence.jdo.datanucleus5.IsisModuleJdoDataNucleus5;
+import org.apache.isis.webboot.springboot.IsisModuleSpringBoot;
+import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
 import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 
 @Configuration
 @Import({
-    IsisBoot.class,
-    IsisBootSecurityBypass.class,
-    IsisBootDataNucleus.class,
-    IsisExtFixturesModule.class
+    IsisModuleSpringBoot.class,
+    IsisModuleSecurityBypass.class,
+    IsisModuleJdoDataNucleus5.class,
+    IsisModuleExtFixtures.class
 })
 @ComponentScan(
         basePackageClasses= {               
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdoAndShiro.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdoAndShiro.java
index 17041cb..7ba671d 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdoAndShiro.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdoAndShiro.java
@@ -28,23 +28,23 @@ import org.springframework.context.annotation.PropertySource;
 import org.springframework.context.annotation.PropertySources;
 
 import org.apache.isis.config.presets.IsisPresets;
-import org.apache.isis.extensions.fixtures.IsisExtFixturesModule;
+import org.apache.isis.extensions.fixtures.IsisModuleExtFixtures;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationService;
 import org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationServiceAllowBeatsVeto;
-import org.apache.isis.persistence.jdo.datanucleus5.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.shiro.IsisBootSecurityShiro;
+import org.apache.isis.persistence.jdo.datanucleus5.IsisModuleJdoDataNucleus5;
+import org.apache.isis.webboot.springboot.IsisModuleSpringBoot;
+import org.apache.isis.security.shiro.IsisModuleSecurityShiro;
 import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 
 @Configuration
 @Import({
-    IsisBoot.class,
+    IsisModuleSpringBoot.class,
 
-    IsisBootSecurityShiro.class,
+    IsisModuleSecurityShiro.class,
 
-    IsisBootDataNucleus.class,
-    IsisExtFixturesModule.class
+    IsisModuleJdoDataNucleus5.class,
+    IsisModuleExtFixtures.class
 })
 @ComponentScan(
         basePackageClasses= {               
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedActionSupport.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedActionSupport.java
index 550ed32..a5b88da 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedActionSupport.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedActionSupport.java
@@ -19,7 +19,7 @@
 package org.apache.isis.testdomain.model.bad;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Nature;
 
 @DomainObject(nature = Nature.VIEW_MODEL)
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedCollectionSupport.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedCollectionSupport.java
index b4bbe29..6a15f99 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedCollectionSupport.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedCollectionSupport.java
@@ -19,7 +19,7 @@
 package org.apache.isis.testdomain.model.bad;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Nature;
 
 @DomainObject(nature = Nature.VIEW_MODEL)
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedPropertySupport.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedPropertySupport.java
index 8b71879..3f29a80 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedPropertySupport.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/bad/InvalidOrphanedPropertySupport.java
@@ -19,7 +19,7 @@
 package org.apache.isis.testdomain.model.bad;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Nature;
 
 @DomainObject(nature = Nature.VIEW_MODEL)
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport.java
index 4380ff3..0bda640 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport.java
@@ -21,7 +21,7 @@ package org.apache.isis.testdomain.model.good;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 
 @DomainObject(nature = Nature.VIEW_MODEL)
 public class ProperActionSupport {
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_action.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_action.java
index e3125ac..1985099 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_action.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_action.java
@@ -20,7 +20,7 @@ package org.apache.isis.testdomain.model.good;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection.java
index 00e6457..e870236 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection.java
@@ -23,7 +23,7 @@ import java.util.List;
 
 import org.apache.isis.applib.annotation.Collection;
 import org.apache.isis.applib.annotation.CollectionLayout;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection2.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection2.java
index 72b3db1..6344cdf 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection2.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_collection2.java
@@ -24,7 +24,7 @@ import java.util.List;
 import org.apache.isis.applib.annotation.Collection;
 import org.apache.isis.applib.annotation.CollectionLayout;
 import org.apache.isis.applib.annotation.Mixin;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_mixin.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_mixin.java
index 8ef9564..cac6cf8 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_mixin.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_mixin.java
@@ -20,7 +20,7 @@ package org.apache.isis.testdomain.model.good;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.Mixin;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 
 import lombok.RequiredArgsConstructor;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property.java
index 71193db..2a83c38 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property.java
@@ -18,7 +18,7 @@
  */
 package org.apache.isis.testdomain.model.good;
 
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property2.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property2.java
index b41d6a9..09f4296 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property2.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperActionSupport_property2.java
@@ -19,7 +19,7 @@
 package org.apache.isis.testdomain.model.good;
 
 import org.apache.isis.applib.annotation.Mixin;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperCollectionSupport.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperCollectionSupport.java
index c989c36..7a93cd2 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperCollectionSupport.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperCollectionSupport.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import org.apache.isis.applib.annotation.Collection;
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Nature;
 
 import lombok.Getter;
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPrefixedMember.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPrefixedMember.java
index 4aa3ceb..2f5e01b 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPrefixedMember.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPrefixedMember.java
@@ -2,7 +2,7 @@ package org.apache.isis.testdomain.model.good;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.Property;
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPropertySupport.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPropertySupport.java
index 3c88b22..5f592a3 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPropertySupport.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/model/good/ProperPropertySupport.java
@@ -19,7 +19,7 @@
 package org.apache.isis.testdomain.model.good;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.Property;
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java
index b56f025..851f08b 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/AutoConfigurationTest.java
@@ -33,7 +33,7 @@ import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.config.presets.IsisPresets;
 import org.apache.isis.config.beans.IsisBeanFactoryPostProcessorForSpring;
 import org.apache.isis.config.beans.IsisBeanTypeRegistryHolder;
-import org.apache.isis.metamodel.MetaModelContexts;
+import org.apache.isis.metamodel.context.MetaModelContexts;
 //import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
 import org.apache.isis.testdomain.conf.Configuration_usingStereotypes;
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/config/IsisConfigBeanTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/config/IsisConfigBeanTest.java
index bd841bc..e1d5305 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/config/IsisConfigBeanTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/config/IsisConfigBeanTest.java
@@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.TestPropertySource;
 
-import org.apache.isis.config.IsisConfigModule;
+import org.apache.isis.config.IsisModuleConfig;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.testdomain.Smoketest;
 
@@ -34,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @Smoketest
 @SpringBootTest(
         classes = { 
-                IsisConfigModule.class
+                IsisModuleConfig.class
         }, 
         properties = {
                 "logging.config=log4j2-test.xml",
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java
index bec2428..4808357 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java
@@ -34,7 +34,7 @@ import org.springframework.context.annotation.Import;
 
 import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.Book;
-import org.apache.isis.viewer.restfulobjects.viewer.IsisBootViewerRestfulObjects;
+import org.apache.isis.viewer.restfulobjects.viewer.IsisModuleRestfulObjectsViewer;
 
 import lombok.val;
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
index b983a71..bc71e31 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
@@ -37,10 +37,10 @@ import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
 import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
-import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryptionJbcrypt;
-import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
-import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
-import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
+import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleSecmanEncryptionJbcrypt;
+import org.apache.isis.extensions.secman.jdo.IsisModuleSecmanPersistenceJdo;
+import org.apache.isis.extensions.secman.model.IsisModuleSecmanModel;
+import org.apache.isis.extensions.secman.shiro.IsisModuleSecmanRealmShiro;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
 import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
@@ -73,10 +73,10 @@ import lombok.val;
     LdapServerService.class,
 
     // Security Manager Extension (secman)
-    IsisBootSecmanModel.class,
-    IsisBootSecmanRealmShiro.class,
-    IsisBootSecmanPersistenceJdo.class,
-    IsisBootSecmanEncryptionJbcrypt.class,
+    IsisModuleSecmanModel.class,
+    IsisModuleSecmanRealmShiro.class,
+    IsisModuleSecmanPersistenceJdo.class,
+    IsisModuleSecmanEncryptionJbcrypt.class,
 })
 @Incubating("does not work with surefire")
 class ShiroSecmanLdapTest extends AbstractShiroTest {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
index c0e425c..c6f4de3 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
@@ -33,10 +33,10 @@ import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
 import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
-import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryptionJbcrypt;
-import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
-import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
-import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
+import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleSecmanEncryptionJbcrypt;
+import org.apache.isis.extensions.secman.jdo.IsisModuleSecmanPersistenceJdo;
+import org.apache.isis.extensions.secman.model.IsisModuleSecmanModel;
+import org.apache.isis.extensions.secman.shiro.IsisModuleSecmanRealmShiro;
 import org.apache.isis.security.shiro.WebModuleShiro;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
@@ -44,7 +44,6 @@ import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.ldap.LdapServerService;
 import org.apache.isis.testdomain.rest.RestEndpointService;
-import org.apache.isis.viewer.restfulobjects.viewer.IsisBootViewerRestfulObjects;
 
 import static java.time.Duration.ofMillis;
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -77,10 +76,10 @@ import lombok.val;
     LdapServerService.class,
 
     // Security Manager Extension (secman)
-    IsisBootSecmanModel.class,
-    IsisBootSecmanRealmShiro.class,
-    IsisBootSecmanPersistenceJdo.class,
-    IsisBootSecmanEncryptionJbcrypt.class,
+    IsisModuleSecmanModel.class,
+    IsisModuleSecmanRealmShiro.class,
+    IsisModuleSecmanPersistenceJdo.class,
+    IsisModuleSecmanEncryptionJbcrypt.class,
 })
 @Incubating("does not work, when executed in sequence with other smoketests")
 class ShiroSecmanLdap_restfulStressTest extends AbstractShiroTest {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
index 43c8f38..341e0af 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
@@ -32,10 +32,10 @@ import org.springframework.context.annotation.Import;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
-import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryptionJbcrypt;
-import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
-import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
-import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
+import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleSecmanEncryptionJbcrypt;
+import org.apache.isis.extensions.secman.jdo.IsisModuleSecmanPersistenceJdo;
+import org.apache.isis.extensions.secman.model.IsisModuleSecmanModel;
+import org.apache.isis.extensions.secman.shiro.IsisModuleSecmanRealmShiro;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
 import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
@@ -57,10 +57,10 @@ import lombok.val;
         })
 @Import({
     // Security Manager Extension (secman)
-    IsisBootSecmanModel.class,
-    IsisBootSecmanRealmShiro.class,
-    IsisBootSecmanPersistenceJdo.class,
-    IsisBootSecmanEncryptionJbcrypt.class,
+    IsisModuleSecmanModel.class,
+    IsisModuleSecmanRealmShiro.class,
+    IsisModuleSecmanPersistenceJdo.class,
+    IsisModuleSecmanEncryptionJbcrypt.class,
 })
 @Incubating("does not work with surefire")
 class ShiroSecmanTest extends AbstractShiroTest {
diff --git a/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/ExtSpringModule.java b/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/IsisModuleExtSpring.java
similarity index 96%
rename from extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/ExtSpringModule.java
rename to extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/IsisModuleExtSpring.java
index 279232c..a978552 100644
--- a/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/ExtSpringModule.java
+++ b/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/IsisModuleExtSpring.java
@@ -26,6 +26,6 @@ import org.springframework.context.annotation.Import;
 @Import({
     SpringBeansService.class
 })
-public class ExtSpringModule {
+public class IsisModuleExtSpring {
 
 }
diff --git a/extensions/lib/base/impl/src/main/java/org/apache/isis/extensions/base/dom/IsisModuleExtBase.java b/extensions/lib/base/impl/src/main/java/org/apache/isis/extensions/base/dom/IsisModuleExtBase.java
new file mode 100644
index 0000000..09a17ce
--- /dev/null
+++ b/extensions/lib/base/impl/src/main/java/org/apache/isis/extensions/base/dom/IsisModuleExtBase.java
@@ -0,0 +1,7 @@
+package org.apache.isis.extensions.base.dom;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleExtBase {
+}
diff --git a/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/ExcelModule.java b/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java
similarity index 85%
rename from extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/ExcelModule.java
rename to extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java
index 0a70e8f..c3c2c09 100644
--- a/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/ExcelModule.java
+++ b/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/IsisModuleExtExcel.java
@@ -5,5 +5,5 @@ import org.springframework.context.annotation.Configuration;
 
 @Configuration
 @ComponentScan
-public class ExcelModule {
+public class IsisModuleExtExcel {
 }
diff --git a/extensions/lib/fakedata/fixture/src/main/java/org/isisaddons/module/fakedata/fixture/FakeDataFixturesModule.java b/extensions/lib/fakedata/fixture/src/main/java/org/isisaddons/module/fakedata/fixture/IsisModuleExtFakeDataFixtures.java
similarity index 79%
rename from extensions/lib/fakedata/fixture/src/main/java/org/isisaddons/module/fakedata/fixture/FakeDataFixturesModule.java
rename to extensions/lib/fakedata/fixture/src/main/java/org/isisaddons/module/fakedata/fixture/IsisModuleExtFakeDataFixtures.java
index e514b91..b0eb901 100644
--- a/extensions/lib/fakedata/fixture/src/main/java/org/isisaddons/module/fakedata/fixture/FakeDataFixturesModule.java
+++ b/extensions/lib/fakedata/fixture/src/main/java/org/isisaddons/module/fakedata/fixture/IsisModuleExtFakeDataFixtures.java
@@ -2,7 +2,7 @@ package org.isisaddons.module.fakedata.fixture;
 
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 import org.apache.isis.extensions.fixtures.modules.Module;
-import org.apache.isis.extensions.fakedata.FakeDataModule;
+import org.apache.isis.extensions.fakedata.dom.IsisModuleExtFakeData;
 import org.isisaddons.module.fakedata.fixture.demoapp.demomodule.fixturescripts.FakeDataDemoObjectWithAll_tearDown;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -10,10 +10,10 @@ import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-        FakeDataModule.class
+        IsisModuleExtFakeData.class
 })
 @ComponentScan
-public class FakeDataFixturesModule implements Module {
+public class IsisModuleExtFakeDataFixtures implements Module {
 
     @Override public FixtureScript getTeardownFixture() {
         return new FakeDataDemoObjectWithAll_tearDown();
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/FakeDataService.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/FakeDataService.java
index 905f201..4079bdb 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/FakeDataService.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/FakeDataService.java
@@ -12,6 +12,7 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.extensions.fakedata.dom.types.*;
 
 @DomainService(nature = NatureOfService.DOMAIN)
 public class FakeDataService {
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/FakeDataModule.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisModuleExtFakeData.java
similarity index 71%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/FakeDataModule.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisModuleExtFakeData.java
index 285e318..d6fdadb 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/FakeDataModule.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisModuleExtFakeData.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.fakedata;
+package org.apache.isis.extensions.fakedata.dom;
 
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -6,6 +6,6 @@ import org.springframework.context.annotation.Import;
 
 @Configuration
 @ComponentScan
-public class FakeDataModule {
+public class IsisModuleExtFakeData {
 
 }
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Uuids.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Uuids.java
deleted file mode 100644
index 9f3c364..0000000
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Uuids.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.apache.isis.extensions.fakedata.dom;
-
-import java.util.UUID;
-
-public class Uuids extends AbstractRandomValueGenerator{
-
-    public Uuids(final FakeDataService fakeDataService) {
-        super(fakeDataService);
-    }
-
-    public UUID any() {
-        return UUID.randomUUID();
-    }
-}
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Addresses.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Addresses.java
similarity index 88%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Addresses.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Addresses.java
index 95d22eb..b0631ab 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Addresses.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Addresses.java
@@ -1,4 +1,7 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
+
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 public class Addresses extends AbstractRandomValueGenerator {
 
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/BigDecimals.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/BigDecimals.java
similarity index 74%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/BigDecimals.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/BigDecimals.java
index 4aedfe4..a685fc7 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/BigDecimals.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/BigDecimals.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.math.BigDecimal;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class BigDecimals extends AbstractRandomValueGenerator{
+public class BigDecimals extends AbstractRandomValueGenerator {
 
     public BigDecimals(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/BigIntegers.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/BigIntegers.java
similarity index 55%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/BigIntegers.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/BigIntegers.java
index 9f11f84..0c740f0 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/BigIntegers.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/BigIntegers.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.math.BigInteger;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class BigIntegers extends AbstractRandomValueGenerator{
+public class BigIntegers extends AbstractRandomValueGenerator {
 
     public BigIntegers(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Books.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Books.java
similarity index 67%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Books.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Books.java
index 34c95eb..f12bd48 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Books.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Books.java
@@ -1,4 +1,7 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
+
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 public class Books extends AbstractRandomValueGenerator {
 
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Booleans.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Booleans.java
similarity index 73%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Booleans.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Booleans.java
index 1430a25..3913c5a 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Booleans.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Booleans.java
@@ -1,4 +1,7 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
+
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 public class Booleans extends AbstractRandomValueGenerator {
 
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Bytes.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Bytes.java
similarity index 65%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Bytes.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Bytes.java
index 040aa32..861965d 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Bytes.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Bytes.java
@@ -1,8 +1,10 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Bytes extends AbstractRandomValueGenerator{
+public class Bytes extends AbstractRandomValueGenerator {
 
     public Bytes(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Chars.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Chars.java
similarity index 74%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Chars.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Chars.java
index c347185..4895df5 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Chars.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Chars.java
@@ -1,8 +1,10 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Chars extends AbstractRandomValueGenerator{
+public class Chars extends AbstractRandomValueGenerator {
 
     public Chars(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Collections.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Collections.java
similarity index 96%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Collections.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Collections.java
index c533087..07468ed 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Collections.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Collections.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.util.Collection;
 import java.util.List;
@@ -6,8 +6,10 @@ import java.util.concurrent.Callable;
 import java.util.function.Predicate;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Collections extends AbstractRandomValueGenerator{
+public class Collections extends AbstractRandomValueGenerator {
 
     public Collections(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Comms.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Comms.java
similarity index 79%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Comms.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Comms.java
index 1922bae..fb77280 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Comms.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Comms.java
@@ -1,4 +1,7 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
+
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 public class Comms extends AbstractRandomValueGenerator {
 
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/CreditCards.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/CreditCards.java
similarity index 78%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/CreditCards.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/CreditCards.java
index b976866..ed0a125 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/CreditCards.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/CreditCards.java
@@ -1,7 +1,9 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import com.github.javafaker.service.FakeValuesService;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 public class CreditCards extends AbstractRandomValueGenerator {
 
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Doubles.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Doubles.java
similarity index 67%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Doubles.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Doubles.java
index 7f59fc3..e4e57d1 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Doubles.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Doubles.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Doubles extends AbstractRandomValueGenerator  {
+public class Doubles extends AbstractRandomValueGenerator {
 
     public Doubles(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Enums.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Enums.java
similarity index 57%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Enums.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Enums.java
index d7ff823..7321b51 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Enums.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Enums.java
@@ -1,8 +1,10 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Enums extends AbstractRandomValueGenerator{
+public class Enums extends AbstractRandomValueGenerator {
 
     public Enums(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Floats.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Floats.java
similarity index 53%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Floats.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Floats.java
index 2614a47..ff5890a 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Floats.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Floats.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Floats extends AbstractRandomValueGenerator{
+public class Floats extends AbstractRandomValueGenerator {
 
     public Floats(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Integers.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Integers.java
similarity index 67%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Integers.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Integers.java
index 788e932..e5fd161 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Integers.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Integers.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Integers extends AbstractRandomValueGenerator{
+public class Integers extends AbstractRandomValueGenerator {
 
     public Integers(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisBlobs.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisBlobs.java
similarity index 90%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisBlobs.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisBlobs.java
index 0f7c2c9..e4a9eb0 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisBlobs.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisBlobs.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.io.IOException;
 import java.net.URL;
@@ -8,11 +8,13 @@ import java.util.stream.Collectors;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.value.Blob;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 import com.google.common.io.ByteSource;
 import com.google.common.io.Resources;
 
-public class IsisBlobs extends AbstractRandomValueGenerator{
+public class IsisBlobs extends AbstractRandomValueGenerator {
 
     public IsisBlobs(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisClobs.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisClobs.java
similarity index 92%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisClobs.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisClobs.java
index b7f06d5..be52086 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisClobs.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisClobs.java
@@ -1,4 +1,4 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.io.IOException;
 import java.net.URL;
@@ -11,8 +11,10 @@ import com.google.common.io.CharSource;
 import com.google.common.io.Resources;
 
 import org.apache.isis.applib.value.Clob;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class IsisClobs extends AbstractRandomValueGenerator{
+public class IsisClobs extends AbstractRandomValueGenerator {
 
     public IsisClobs(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisMoneys.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisMoneys.java
similarity index 57%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisMoneys.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisMoneys.java
index 98f8fe8..c0406ad 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisMoneys.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisMoneys.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.value.Money;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class IsisMoneys extends AbstractRandomValueGenerator{
+public class IsisMoneys extends AbstractRandomValueGenerator {
 
     public IsisMoneys(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisPasswords.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisPasswords.java
similarity index 54%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisPasswords.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisPasswords.java
index 6e06a81..c20bae1 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/IsisPasswords.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/IsisPasswords.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.value.Password;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class IsisPasswords extends AbstractRandomValueGenerator{
+public class IsisPasswords extends AbstractRandomValueGenerator {
 
     public IsisPasswords(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8DateTimes.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8DateTimes.java
similarity index 79%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8DateTimes.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8DateTimes.java
index 04def66..5658d86 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8DateTimes.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8DateTimes.java
@@ -1,11 +1,13 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.time.OffsetDateTime;
 import java.time.Period;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class J8DateTimes extends AbstractRandomValueGenerator{
+public class J8DateTimes extends AbstractRandomValueGenerator {
 
     public J8DateTimes(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8LocalDates.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8LocalDates.java
similarity index 76%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8LocalDates.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8LocalDates.java
index 38cb3a0..d44e50a 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8LocalDates.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8LocalDates.java
@@ -1,11 +1,13 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.time.LocalDate;
 import java.time.Period;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class J8LocalDates extends AbstractRandomValueGenerator{
+public class J8LocalDates extends AbstractRandomValueGenerator {
 
     public J8LocalDates(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8Periods.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8Periods.java
similarity index 80%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8Periods.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8Periods.java
index f6cee98..ea6d980 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/J8Periods.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/J8Periods.java
@@ -1,10 +1,12 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.time.Period;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class J8Periods extends AbstractRandomValueGenerator{
+public class J8Periods extends AbstractRandomValueGenerator {
 
     public J8Periods(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaSqlDates.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaSqlDates.java
similarity index 69%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaSqlDates.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaSqlDates.java
index e9fb44d..86a032b 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaSqlDates.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaSqlDates.java
@@ -1,11 +1,13 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.sql.Date;
 import java.time.OffsetDateTime;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class JavaSqlDates extends AbstractRandomValueGenerator{
+public class JavaSqlDates extends AbstractRandomValueGenerator {
 
     public JavaSqlDates(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaSqlTimestamps.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaSqlTimestamps.java
similarity index 68%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaSqlTimestamps.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaSqlTimestamps.java
index acc061f..12937ed 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaSqlTimestamps.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaSqlTimestamps.java
@@ -1,10 +1,12 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.sql.Timestamp;
 import java.util.Date;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class JavaSqlTimestamps extends AbstractRandomValueGenerator{
+public class JavaSqlTimestamps extends AbstractRandomValueGenerator {
 
     public JavaSqlTimestamps(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaUtilDates.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaUtilDates.java
similarity index 63%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaUtilDates.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaUtilDates.java
index 5386855..bbbe391 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/JavaUtilDates.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/JavaUtilDates.java
@@ -1,12 +1,14 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.time.OffsetDateTime;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 import lombok.val;
 
-public class JavaUtilDates extends AbstractRandomValueGenerator{
+public class JavaUtilDates extends AbstractRandomValueGenerator {
 
     public JavaUtilDates(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Longs.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Longs.java
similarity index 53%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Longs.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Longs.java
index 8576aa8..6524976 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Longs.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Longs.java
@@ -1,9 +1,11 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Longs extends AbstractRandomValueGenerator{
+public class Longs extends AbstractRandomValueGenerator {
 
     public Longs(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Lorem.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Lorem.java
similarity index 82%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Lorem.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Lorem.java
index 8e6bf7f..2e6d7d1 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Lorem.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Lorem.java
@@ -1,7 +1,10 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.util.List;
 
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
+
 public class Lorem extends AbstractRandomValueGenerator {
 
     com.github.javafaker.Lorem javaFakerLorem;
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Names.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Names.java
similarity index 80%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Names.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Names.java
index f19a273..ffb2575 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Names.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Names.java
@@ -1,6 +1,8 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
 public class Names extends AbstractRandomValueGenerator {
     com.github.javafaker.Name javaFakerName;
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Shorts.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Shorts.java
similarity index 66%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Shorts.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Shorts.java
index 2dca128..2bf2627 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Shorts.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Shorts.java
@@ -1,8 +1,10 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Shorts extends AbstractRandomValueGenerator{
+public class Shorts extends AbstractRandomValueGenerator {
 
     public Shorts(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Strings.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Strings.java
similarity index 76%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Strings.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Strings.java
index cceff10..f0daa2c 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Strings.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Strings.java
@@ -1,8 +1,10 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Strings extends AbstractRandomValueGenerator{
+public class Strings extends AbstractRandomValueGenerator {
 
     public Strings(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Urls.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Urls.java
similarity index 70%
rename from extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Urls.java
rename to extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Urls.java
index 036f1e9..8fc70df 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/Urls.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Urls.java
@@ -1,10 +1,12 @@
-package org.apache.isis.extensions.fakedata.dom;
+package org.apache.isis.extensions.fakedata.dom.types;
 
 import java.net.MalformedURLException;
 import java.net.URL;
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
 
-public class Urls extends AbstractRandomValueGenerator{
+public class Urls extends AbstractRandomValueGenerator {
 
     public Urls(final FakeDataService fakeDataService) {
         super(fakeDataService);
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Uuids.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Uuids.java
new file mode 100644
index 0000000..a578311
--- /dev/null
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/types/Uuids.java
@@ -0,0 +1,17 @@
+package org.apache.isis.extensions.fakedata.dom.types;
+
+import java.util.UUID;
+
+import org.apache.isis.extensions.fakedata.dom.AbstractRandomValueGenerator;
+import org.apache.isis.extensions.fakedata.dom.FakeDataService;
+
+public class Uuids extends AbstractRandomValueGenerator {
+
+    public Uuids(final FakeDataService fakeDataService) {
+        super(fakeDataService);
+    }
+
+    public UUID any() {
+        return UUID.randomUUID();
+    }
+}
diff --git a/extensions/lib/fakedata/impl/src/test/java/org/apache/isis/extensions/fakedata/dom/FakeDataServiceTest.java b/extensions/lib/fakedata/impl/src/test/java/org/apache/isis/extensions/fakedata/dom/FakeDataServiceTest.java
index 657ce78..46d32af 100644
--- a/extensions/lib/fakedata/impl/src/test/java/org/apache/isis/extensions/fakedata/dom/FakeDataServiceTest.java
+++ b/extensions/lib/fakedata/impl/src/test/java/org/apache/isis/extensions/fakedata/dom/FakeDataServiceTest.java
@@ -14,6 +14,8 @@ import java.util.UUID;
 import java.util.function.Predicate;
 
 import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.extensions.fakedata.dom.types.IsisBlobs;
+import org.apache.isis.extensions.fakedata.dom.types.IsisClobs;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
diff --git a/extensions/lib/unittestsupport/impl/src/main/java/org/apache/isis/extensions/unittestsupport/dom/IsisModuleExtUnitTestSupport.java b/extensions/lib/unittestsupport/impl/src/main/java/org/apache/isis/extensions/unittestsupport/dom/IsisModuleExtUnitTestSupport.java
new file mode 100644
index 0000000..fda6961
--- /dev/null
+++ b/extensions/lib/unittestsupport/impl/src/main/java/org/apache/isis/extensions/unittestsupport/dom/IsisModuleExtUnitTestSupport.java
@@ -0,0 +1,7 @@
+package org.apache.isis.extensions.unittestsupport.dom;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleExtUnitTestSupport {
+}
diff --git a/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/IsisExtH2ConsoleModule.java b/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/IsisModuleExtH2Console.java
similarity index 90%
rename from extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/IsisExtH2ConsoleModule.java
rename to extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/IsisModuleExtH2Console.java
index b886290..bf9a2a0 100644
--- a/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/IsisExtH2ConsoleModule.java
+++ b/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/IsisModuleExtH2Console.java
@@ -18,16 +18,16 @@
  */
 package org.apache.isis.extensions.h2console.dom;
 
-import org.apache.isis.webapp.IsisBootWebApp;
+import org.apache.isis.webapp.IsisModuleWebapp;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-        IsisBootWebApp.class
+        IsisModuleWebapp.class
 })
 @ComponentScan
-public class IsisExtH2ConsoleModule {
+public class IsisModuleExtH2Console {
 
 }
diff --git a/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/services/H2ManagerMenu.java b/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/services/H2ManagerMenu.java
index 8bb5690..72786d6 100644
--- a/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/services/H2ManagerMenu.java
+++ b/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/services/H2ManagerMenu.java
@@ -20,7 +20,7 @@ package org.apache.isis.extensions.h2console.dom.services;
 
 import javax.inject.Inject;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
@@ -53,7 +53,7 @@ public class H2ManagerMenu {
     }
 
 
-    public static class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<H2ManagerMenu>{ 
+    public static class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<H2ManagerMenu>{
         private static final long serialVersionUID = 1L; }
 
     @Action(
diff --git a/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisExtHsqldbMgrModule.java b/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisModuleExtHsqldbMgr.java
similarity index 90%
rename from extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisExtHsqldbMgrModule.java
rename to extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisModuleExtHsqldbMgr.java
index 5d71d5f1..352e3e9 100644
--- a/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisExtHsqldbMgrModule.java
+++ b/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/IsisModuleExtHsqldbMgr.java
@@ -18,16 +18,16 @@
  */
 package org.apache.isis.extensions.hsqldbmgr.dom;
 
-import org.apache.isis.webapp.IsisBootWebApp;
+import org.apache.isis.webapp.IsisModuleWebapp;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-        IsisBootWebApp.class
+        IsisModuleWebapp.class
 })
 @ComponentScan
-public class IsisExtHsqldbMgrModule {
+public class IsisModuleExtHsqldbMgr {
 
 }
diff --git a/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/services/HsqlDbManagerMenu.java b/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/services/HsqlDbManagerMenu.java
index 065d998..8f54aaa 100644
--- a/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/services/HsqlDbManagerMenu.java
+++ b/extensions/persistence/hsqldbmgr/src/main/java/org/apache/isis/extensions/hsqldbmgr/dom/services/HsqlDbManagerMenu.java
@@ -23,7 +23,7 @@ import javax.inject.Inject;
 import org.apache.isis.config.IsisConfiguration;
 import org.hsqldb.util.DatabaseManagerSwing;
 
-import org.apache.isis.applib.IsisApplibModule;
+import org.apache.isis.applib.IsisModuleApplib;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.DomainService;
@@ -56,7 +56,7 @@ public class HsqlDbManagerMenu {
 
 
 
-    public static class ActionDomainEvent extends IsisApplibModule.ActionDomainEvent<HsqlDbManagerMenu> { }
+    public static class ActionDomainEvent extends IsisModuleApplib.ActionDomainEvent<HsqlDbManagerMenu> { }
 
     @Action(
             semantics = SemanticsOf.SAFE,
diff --git a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecurityModule.java b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/IsisModuleExtSecmanApi.java
similarity index 91%
rename from extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecurityModule.java
rename to extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/IsisModuleExtSecmanApi.java
index 200b36d..6ce8d5f 100644
--- a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/SecurityModule.java
+++ b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/IsisModuleExtSecmanApi.java
@@ -18,9 +18,10 @@
  */
 package org.apache.isis.extensions.secman.api;
 
-public final class SecurityModule {
+import org.springframework.context.annotation.Configuration;
 
-    private SecurityModule(){}
+@Configuration
+public class IsisModuleExtSecmanApi {
 
     public abstract static class ActionDomainEvent<S>
     extends org.apache.isis.applib.events.domain.ActionDomainEvent<S> {}
diff --git a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValueSet.java b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValueSet.java
index 466f942..f3ea016 100644
--- a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValueSet.java
+++ b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermissionValueSet.java
@@ -26,7 +26,7 @@ import java.util.List;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Multimaps;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
 
 /**
@@ -42,11 +42,11 @@ public class ApplicationPermissionValueSet implements Serializable {
     private static final long serialVersionUID = 1L;
 
 
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermissionValueSet, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationPermissionValueSet, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermissionValueSet, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationPermissionValueSet, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermissionValueSet> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationPermissionValueSet> {}
 
 
 
diff --git a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/ApplicationTenancy.java b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/ApplicationTenancy.java
index 2ddfdcd..45feb81 100644
--- a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/ApplicationTenancy.java
+++ b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/tenancy/ApplicationTenancy.java
@@ -18,15 +18,15 @@
  */
 package org.apache.isis.extensions.secman.api.tenancy;
 
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 
 public interface ApplicationTenancy {
 
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationTenancy, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationTenancy, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationTenancy, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationTenancy, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationTenancy> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationTenancy> {}
 
 
 
diff --git a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisBootSecmanEncryptionJbcrypt.java b/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisModuleSecmanEncryptionJbcrypt.java
similarity index 87%
copy from extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisBootSecmanEncryptionJbcrypt.java
copy to extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisModuleSecmanEncryptionJbcrypt.java
index 6278f2e..b323b08 100644
--- a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisBootSecmanEncryptionJbcrypt.java
+++ b/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisModuleSecmanEncryptionJbcrypt.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.extensions.secman.encryption.jbcrypt;
 
+import org.apache.isis.extensions.secman.encryption.jbcrypt.services.PasswordEncryptionServiceUsingJBcrypt;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
@@ -25,6 +26,6 @@ import org.springframework.context.annotation.Import;
 @Import({
     PasswordEncryptionServiceUsingJBcrypt.class
 })
-public class IsisBootSecmanEncryptionJbcrypt {
+public class IsisModuleSecmanEncryptionJbcrypt {
 
 }
diff --git a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/PasswordEncryptionServiceUsingJBcrypt.java b/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.java
similarity index 96%
rename from extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/PasswordEncryptionServiceUsingJBcrypt.java
rename to extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.java
index 1d15e2a..f1f7e1d 100644
--- a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/PasswordEncryptionServiceUsingJBcrypt.java
+++ b/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.secman.encryption.jbcrypt;
+package org.apache.isis.extensions.secman.encryption.jbcrypt.services;
 
 import org.mindrot.jbcrypt.BCrypt;
 import org.springframework.stereotype.Service;
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/IsisBootSecmanModel.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/IsisModuleSecmanModel.java
similarity index 92%
rename from extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/IsisBootSecmanModel.java
rename to extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/IsisModuleSecmanModel.java
index 2b1acb7..b165795 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/IsisBootSecmanModel.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/IsisModuleSecmanModel.java
@@ -24,8 +24,8 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 @ComponentScan(
         basePackageClasses= {
-                IsisBootSecmanModel.class
+                IsisModuleSecmanModel.class
         })
-public class IsisBootSecmanModel {
+public class IsisModuleSecmanModel {
 
 }
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModel.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModel.java
index 6cb7c04..91a6c47 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModel.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModel.java
@@ -40,7 +40,7 @@ import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ToString;
 import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermission;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRepository;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeature;
@@ -60,11 +60,11 @@ import lombok.val;
 //)
 public abstract class ApplicationFeatureViewModel implements ViewModel {
 
-    public static abstract class PropertyDomainEvent<S extends ApplicationFeatureViewModel,T> extends SecurityModule.PropertyDomainEvent<S, T> {}
+    public static abstract class PropertyDomainEvent<S extends ApplicationFeatureViewModel,T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<S, T> {}
 
-    public static abstract class CollectionDomainEvent<S extends ApplicationFeatureViewModel,T> extends SecurityModule.CollectionDomainEvent<S, T> {}
+    public static abstract class CollectionDomainEvent<S extends ApplicationFeatureViewModel,T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<S, T> {}
 
-    public static abstract class ActionDomainEvent<S extends ApplicationFeatureViewModel> extends SecurityModule.ActionDomainEvent<S> {}
+    public static abstract class ActionDomainEvent<S extends ApplicationFeatureViewModel> extends IsisModuleExtSecmanApi.ActionDomainEvent<S> {}
 
 
 
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModels.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModels.java
index cb0a215..b0991a3 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModels.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationFeatureViewModels.java
@@ -34,7 +34,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeature;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault;
 
@@ -49,11 +49,11 @@ import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureRepositoryDe
         )
 public class ApplicationFeatureViewModels  {
 
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationFeatureViewModels, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationFeatureViewModels, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationFeatureViewModels, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationFeatureViewModels, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationFeatureViewModels> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationFeatureViewModels> {}
 
     // -- ICON NAME
 
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPermission_feature.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPermission_feature.java
index 7d80e81..5a2a54a 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPermission_feature.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/feature/ApplicationPermission_feature.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermission;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault;
@@ -41,7 +41,7 @@ import lombok.RequiredArgsConstructor;
 @Mixin @RequiredArgsConstructor
 public class ApplicationPermission_feature {
 
-    public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermission_feature> {}
+    public static class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationPermission_feature> {}
 
     final ApplicationPermission holder;
 
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_filterPermissions.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_filterPermissions.java
index f768d45..2cbb095 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_filterPermissions.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_filterPermissions.java
@@ -35,7 +35,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.user.ApplicationUser;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeature;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureId;
@@ -48,7 +48,7 @@ import lombok.val;
 public class ApplicationUser_filterPermissions {
 
 
-    public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationUser_filterPermissions> {
+    public static class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationUser_filterPermissions> {
     }
 
     private final ApplicationUser holder;
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_permissions.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_permissions.java
index d9412a9..dbfc3cd 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_permissions.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/ApplicationUser_permissions.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.user.ApplicationUser;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeature;
 import org.apache.isis.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault;
@@ -44,7 +44,7 @@ import lombok.val;
 @Mixin @RequiredArgsConstructor
 public class ApplicationUser_permissions {
 
-    public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationUser_permissions> {}
+    public static class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationUser_permissions> {}
 
     private final ApplicationUser holder;
 
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/MeService.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/MeService.java
index bbe2b2c..bb866dc 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/MeService.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/MeService.java
@@ -31,7 +31,7 @@ import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
 import org.apache.isis.applib.services.user.UserService;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.user.ApplicationUser;
 import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
 
@@ -44,11 +44,11 @@ import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
         )
 public class MeService {
 
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<MeService, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<MeService, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<MeService, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<MeService, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<MeService> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<MeService> {}
 
     // -- iconName
     public String iconName() {
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.java
index 513527e..3d53175 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/app/user/UserPermissionViewModel.java
@@ -43,7 +43,7 @@ import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ToString;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermission;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRepository;
@@ -74,11 +74,11 @@ import lombok.val;
 
 public class UserPermissionViewModel implements ViewModel {
 
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<UserPermissionViewModel, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<UserPermissionViewModel, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<UserPermissionViewModel, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<UserPermissionViewModel, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<UserPermissionViewModel> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<UserPermissionViewModel> {}
 
 
 
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/permission/ApplicationPermissionMenu.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/permission/ApplicationPermissionMenu.java
index 9e3e93e..0e8b1bd 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/permission/ApplicationPermissionMenu.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/permission/ApplicationPermissionMenu.java
@@ -29,7 +29,7 @@ import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermission;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRepository;
 
@@ -44,11 +44,11 @@ import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRep
 public class ApplicationPermissionMenu {
 
     // -- domain event classes
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermissionMenu, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationPermissionMenu, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermissionMenu, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationPermissionMenu, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermissionMenu> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationPermissionMenu> {}
 
 
     // -- iconName
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRoleMenu.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRoleMenu.java
index e6cd5d0..606c277 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRoleMenu.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/role/ApplicationRoleMenu.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.types.DescriptionType;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.role.ApplicationRole;
 import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
 
@@ -47,11 +47,11 @@ import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
 public class  ApplicationRoleMenu {
 
     // -- domain event classes
-    public static class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationRoleMenu, T> {}
+    public static class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationRoleMenu, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationRoleMenu, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationRoleMenu, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationRoleMenu> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationRoleMenu> {}
 
 
     // -- iconName
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/tenancy/ApplicationTenancyMenu.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/tenancy/ApplicationTenancyMenu.java
index 0de70fb..7c7f3bf 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/tenancy/ApplicationTenancyMenu.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/tenancy/ApplicationTenancyMenu.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancy;
 import org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancyRepository;
 
@@ -48,11 +48,11 @@ import org.apache.isis.extensions.secman.api.tenancy.ApplicationTenancyRepositor
 public class ApplicationTenancyMenu {
 
     // -- domain event classes
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationTenancyMenu, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationTenancyMenu, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationTenancyMenu, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationTenancyMenu, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationTenancyMenu> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationTenancyMenu> {}
 
 
     // -- iconName
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserMenu.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserMenu.java
index 2c488c5..3d22f89 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserMenu.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/ApplicationUserMenu.java
@@ -32,7 +32,7 @@ import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.value.Password;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.SecurityRealmCharacteristic;
 import org.apache.isis.extensions.secman.api.SecurityRealmService;
@@ -55,15 +55,15 @@ public class ApplicationUserMenu {
 
 
     public static abstract class PropertyDomainEvent<T> 
-    extends SecurityModule.PropertyDomainEvent<ApplicationUserMenu, T> {
+    extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationUserMenu, T> {
     }
 
     public static abstract class CollectionDomainEvent<T>
-    extends SecurityModule.CollectionDomainEvent<ApplicationUserMenu, T> {
+    extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationUserMenu, T> {
     }
 
     public static abstract class ActionDomainEvent 
-    extends SecurityModule.ActionDomainEvent<ApplicationUserMenu> {
+    extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationUserMenu> {
     }
 
     public static class FindUsersByNameDomainEvent
diff --git a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/HasUsername_open.java b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/HasUsername_open.java
index 2c3189c..e569e57 100644
--- a/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/HasUsername_open.java
+++ b/extensions/security/secman/model/src/main/java/org/apache/isis/extensions/secman/model/dom/user/HasUsername_open.java
@@ -28,7 +28,7 @@ import org.apache.isis.applib.annotation.Mixin;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.HasUsername;
 import org.apache.isis.applib.services.i18n.TranslatableString;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.user.ApplicationUser;
 import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
 
@@ -39,7 +39,7 @@ public class HasUsername_open {
 
     private final HasUsername holder;
 
-    public static class ActionDomainEvent extends SecurityModule.ActionDomainEvent<HasUsername_open> {}
+    public static class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<HasUsername_open> {}
 
     @Action(
             semantics = SemanticsOf.SAFE,
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/IsisBootSecmanPersistenceJdo.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/IsisModuleSecmanPersistenceJdo.java
similarity index 91%
rename from extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/IsisBootSecmanPersistenceJdo.java
rename to extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/IsisModuleSecmanPersistenceJdo.java
index 5b6d082..cdd9832 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/IsisBootSecmanPersistenceJdo.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/IsisModuleSecmanPersistenceJdo.java
@@ -24,8 +24,8 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 @ComponentScan(
         basePackageClasses= {
-                IsisBootSecmanPersistenceJdo.class
+                IsisModuleSecmanPersistenceJdo.class
         })
-public class IsisBootSecmanPersistenceJdo {
+public class IsisModuleSecmanPersistenceJdo {
 
 }
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java
index 22482e1..f0949ae 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermission.java
@@ -43,7 +43,7 @@ import org.apache.isis.applib.services.appfeat.ApplicationMemberType;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ObjectContracts.ObjectContract;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRule;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionValue;
@@ -151,11 +151,11 @@ public class ApplicationPermission implements org.apache.isis.extensions.secman.
 
     // -- domain events
 
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationPermission, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationPermission, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationPermission, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationPermission, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationPermission> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationPermission> {}
 
 
 
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
index 50e418f..8511fbf 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRole.java
@@ -54,7 +54,7 @@ import org.apache.isis.applib.util.Hashing;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ToString;
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionRule;
@@ -105,11 +105,11 @@ import lombok.Setter;
 public class ApplicationRole 
 implements org.apache.isis.extensions.secman.api.role.ApplicationRole, Comparable<ApplicationRole> {
 
-    public static abstract class PropertyDomainEvent<T> extends SecurityModule.PropertyDomainEvent<ApplicationRole, T> {}
+    public static abstract class PropertyDomainEvent<T> extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationRole, T> {}
 
-    public static abstract class CollectionDomainEvent<T> extends SecurityModule.CollectionDomainEvent<ApplicationRole, T> {}
+    public static abstract class CollectionDomainEvent<T> extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationRole, T> {}
 
-    public static abstract class ActionDomainEvent extends SecurityModule.ActionDomainEvent<ApplicationRole> {}
+    public static abstract class ActionDomainEvent extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationRole> {}
 
 
     // -- constants, moved to interface
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
index 24e389e..8be87d6 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUser.java
@@ -56,7 +56,7 @@ import org.apache.isis.applib.value.Password;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
-import org.apache.isis.extensions.secman.api.SecurityModule;
+import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
 import org.apache.isis.extensions.secman.api.SecurityModuleConfig;
 import org.apache.isis.extensions.secman.api.encryption.PasswordEncryptionService;
 import org.apache.isis.extensions.secman.api.permission.ApplicationPermissionMode;
@@ -140,13 +140,13 @@ public class ApplicationUser implements Comparable<ApplicationUser>,
 org.apache.isis.extensions.secman.api.user.ApplicationUser {
 
     public static abstract class PropertyDomainEvent<T>
-    extends SecurityModule.PropertyDomainEvent<ApplicationUser, T> {}
+    extends IsisModuleExtSecmanApi.PropertyDomainEvent<ApplicationUser, T> {}
 
     public static abstract class CollectionDomainEvent<T> 
-    extends SecurityModule.CollectionDomainEvent<ApplicationUser, T> {}
+    extends IsisModuleExtSecmanApi.CollectionDomainEvent<ApplicationUser, T> {}
 
     public static abstract class ActionDomainEvent 
-    extends SecurityModule.ActionDomainEvent<ApplicationUser> {}
+    extends IsisModuleExtSecmanApi.ActionDomainEvent<ApplicationUser> {}
 
 
     // -- identification
diff --git a/extensions/security/secman/pom.xml b/extensions/security/secman/pom.xml
index d522ad1..f3aafe2 100644
--- a/extensions/security/secman/pom.xml
+++ b/extensions/security/secman/pom.xml
@@ -77,7 +77,7 @@
 	
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>
-			<artifactId>isis-security</artifactId>
+			<artifactId>isis-security-api</artifactId>
 		</dependency>
 
     </dependencies>
diff --git a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/AuthInfoForApplicationUser.java b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/AuthInfoForApplicationUser.java
index 8527713..129c9a0 100644
--- a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/AuthInfoForApplicationUser.java
+++ b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/AuthInfoForApplicationUser.java
@@ -20,6 +20,7 @@ package org.apache.isis.extensions.secman.shiro;
 
 import java.util.Collection;
 
+import org.apache.isis.extensions.secman.shiro.util.ShiroUtils;
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authz.AuthorizationInfo;
 import org.apache.shiro.authz.Permission;
diff --git a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisBootSecmanRealmShiro.java b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisModuleSecmanRealmShiro.java
similarity index 89%
rename from extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisBootSecmanRealmShiro.java
rename to extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisModuleSecmanRealmShiro.java
index a8ce8cf..26f1c79 100644
--- a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisBootSecmanRealmShiro.java
+++ b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisModuleSecmanRealmShiro.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.extensions.secman.shiro;
 
+import org.apache.isis.extensions.secman.shiro.services.SecurityRealmServiceUsingShiro;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
@@ -25,6 +26,6 @@ import org.springframework.context.annotation.Import;
 @Import({
     SecurityRealmServiceUsingShiro.class
 })
-public class IsisBootSecmanRealmShiro {
+public class IsisModuleSecmanRealmShiro {
 
 }
diff --git a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisModuleSecurityRealm.java b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisModuleSecurityRealm.java
index bf7eacb..4ec950e 100644
--- a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisModuleSecurityRealm.java
+++ b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/IsisModuleSecurityRealm.java
@@ -24,6 +24,7 @@ import java.util.function.Supplier;
 
 import javax.inject.Inject;
 
+import org.apache.isis.extensions.secman.shiro.util.ShiroUtils;
 import org.apache.isis.security.api.authorization.standard.Authorizor;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.AuthenticationException;
diff --git a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/SecurityRealmServiceUsingShiro.java b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/services/SecurityRealmServiceUsingShiro.java
similarity index 92%
rename from extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/SecurityRealmServiceUsingShiro.java
rename to extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/services/SecurityRealmServiceUsingShiro.java
index a945560..02dea6c 100644
--- a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/SecurityRealmServiceUsingShiro.java
+++ b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/services/SecurityRealmServiceUsingShiro.java
@@ -16,10 +16,11 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.secman.shiro;
+package org.apache.isis.extensions.secman.shiro.services;
 
 import javax.inject.Inject;
 
+import org.apache.isis.extensions.secman.shiro.util.ShiroUtils;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
diff --git a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/ShiroUtils.java b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/util/ShiroUtils.java
similarity index 91%
rename from extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/ShiroUtils.java
rename to extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/util/ShiroUtils.java
index fe1669d..efcd168 100644
--- a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/ShiroUtils.java
+++ b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/util/ShiroUtils.java
@@ -16,20 +16,21 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.secman.shiro;
+package org.apache.isis.extensions.secman.shiro.util;
+
+import lombok.experimental.UtilityClass;
 
 import java.util.Collection;
 
+import org.apache.isis.extensions.secman.shiro.IsisModuleSecurityRealm;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.UnavailableSecurityManagerException;
 import org.apache.shiro.authc.AuthenticationException;
 import org.apache.shiro.mgt.RealmSecurityManager;
 import org.apache.shiro.realm.Realm;
 
-final class ShiroUtils {
-
-    private ShiroUtils() {
-    }
+@UtilityClass
+public class ShiroUtils {
 
     public static synchronized RealmSecurityManager getSecurityManager() {
         org.apache.shiro.mgt.SecurityManager securityManager;
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisExtFixturesModule.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisModuleExtFixtures.java
similarity index 92%
rename from extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisExtFixturesModule.java
rename to extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisModuleExtFixtures.java
index eb08800..eff8264 100644
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisExtFixturesModule.java
+++ b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisModuleExtFixtures.java
@@ -23,13 +23,13 @@ import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
 import org.apache.isis.extensions.fixtures.legacy.queryresultscache.QueryResultsCacheControlInternal;
 import org.apache.isis.extensions.fixtures.modules.ModuleFixtureService;
 import org.apache.isis.extensions.fixtures.modules.ModuleService;
-import org.apache.isis.extensions.spring.ExtSpringModule;
+import org.apache.isis.extensions.spring.IsisModuleExtSpring;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-    ExtSpringModule.class,
+    IsisModuleExtSpring.class,
     FixturesLifecycleService.class,
     FixtureScripts.class,
     ExecutionParametersService.class,
@@ -37,6 +37,6 @@ import org.springframework.context.annotation.Import;
     ModuleService.class,
     ModuleFixtureService.class
 })
-public class IsisExtFixturesModule {
+public class IsisModuleExtFixtures {
 
 }
diff --git a/extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/IsisModuleExtSpecSupport.java b/extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/IsisModuleExtSpecSupport.java
new file mode 100644
index 0000000..6df376f
--- /dev/null
+++ b/extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/IsisModuleExtSpecSupport.java
@@ -0,0 +1,4 @@
+package org.apache.isis.extensions.specsupport;
+
+public class IsisModuleExtSpecSupport {
+}
diff --git a/extensions/testing/specsupport/src/main/java/org/apache/isis/specsupport/ObjectFactoryForIntegration.java b/extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/integration/ObjectFactoryForIntegration.java
similarity index 97%
rename from extensions/testing/specsupport/src/main/java/org/apache/isis/specsupport/ObjectFactoryForIntegration.java
rename to extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/integration/ObjectFactoryForIntegration.java
index ca993be..eb27644 100644
--- a/extensions/testing/specsupport/src/main/java/org/apache/isis/specsupport/ObjectFactoryForIntegration.java
+++ b/extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/integration/ObjectFactoryForIntegration.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.specsupport;
+package org.apache.isis.extensions.specsupport.integration;
 
 import java.lang.reflect.Constructor;
 import java.util.Map;
diff --git a/extensions/testing/specsupport/src/main/java/org/apache/isis/specsupport/specs/V.java b/extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/specs/V.java
similarity index 99%
rename from extensions/testing/specsupport/src/main/java/org/apache/isis/specsupport/specs/V.java
rename to extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/specs/V.java
index f81b4ee..03eb0e4 100644
--- a/extensions/testing/specsupport/src/main/java/org/apache/isis/specsupport/specs/V.java
+++ b/extensions/testing/specsupport/src/main/java/org/apache/isis/extensions/specsupport/specs/V.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.specsupport.specs;
+package org.apache.isis.extensions.specsupport.specs;
 
 import org.joda.time.format.DateTimeFormat;
 
@@ -179,7 +179,7 @@ public class V {
     }
 
     /**
-     * Converts {@link java.lang.String}s to {@link java.lang.BigDecimal}, but also recognizing the
+     * Converts {@link java.lang.String}s to {@link java.math.BigDecimal}, but also recognizing the
      * keyword 'null'.
      */
     public static class BigDecimal extends Transformer<java.math.BigDecimal> {
diff --git a/extensions/vro/restclient/src/main/java/org/apache/isis/extensions/restclient/IsisModuleExtRestClient.java b/extensions/vro/restclient/src/main/java/org/apache/isis/extensions/restclient/IsisModuleExtRestClient.java
new file mode 100644
index 0000000..d0b6aa6
--- /dev/null
+++ b/extensions/vro/restclient/src/main/java/org/apache/isis/extensions/restclient/IsisModuleExtRestClient.java
@@ -0,0 +1,7 @@
+package org.apache.isis.extensions.restclient;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleExtRestClient {
+}
diff --git a/core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/applib/IsisModuleExtAsciidocApplib.java
similarity index 87%
rename from core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/applib/IsisModuleExtAsciidocApplib.java
index bb6acf2..482bd84 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/IsisSchemaModule.java
+++ b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/applib/IsisModuleExtAsciidocApplib.java
@@ -16,13 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.schema;
+package org.apache.isis.extensions.asciidoc.applib;
 
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-public class IsisSchemaModule {
-
-
+public class IsisModuleExtAsciidocApplib {
 }
diff --git a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDoc.java b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/applib/value/AsciiDoc.java
similarity index 91%
rename from extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDoc.java
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/applib/value/AsciiDoc.java
index 3be52ac..c14469d 100644
--- a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDoc.java
+++ b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/applib/value/AsciiDoc.java
@@ -16,10 +16,11 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.asciidoc;
+package org.apache.isis.extensions.asciidoc.applib.value;
 
 import org.apache.isis.applib.annotation.Value;
 import org.apache.isis.applib.value.Markup;
+import org.apache.isis.extensions.asciidoc.ui.converter.AsciiDocConverter;
 
 /**
  * Immutable value type holding pre-rendered HTML.
diff --git a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisBootSecmanEncryptionJbcrypt.java b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/IsisModuleExtAsciidocUi.java
similarity index 82%
rename from extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisBootSecmanEncryptionJbcrypt.java
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/IsisModuleExtAsciidocUi.java
index 6278f2e..64c40d1 100644
--- a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/IsisBootSecmanEncryptionJbcrypt.java
+++ b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/IsisModuleExtAsciidocUi.java
@@ -16,15 +16,15 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.secman.encryption.jbcrypt;
+package org.apache.isis.extensions.asciidoc.ui;
 
+import org.apache.isis.extensions.asciidoc.applib.IsisModuleExtAsciidocApplib;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-    PasswordEncryptionServiceUsingJBcrypt.class
+        IsisModuleExtAsciidocApplib.class
 })
-public class IsisBootSecmanEncryptionJbcrypt {
-
+public class IsisModuleExtAsciidocUi {
 }
diff --git a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocComponent.java b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/AsciiDocComponent.java
similarity index 97%
rename from extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocComponent.java
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/AsciiDocComponent.java
index 30787a0..08ef8db 100644
--- a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocComponent.java
+++ b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/AsciiDocComponent.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.asciidoc;
+package org.apache.isis.extensions.asciidoc.ui.components;
 
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
diff --git a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocPanelFactoriesForWicket.java b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/AsciiDocPanelFactoriesForWicket.java
similarity index 95%
rename from extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocPanelFactoriesForWicket.java
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/AsciiDocPanelFactoriesForWicket.java
index b85b095..5f1214a 100644
--- a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocPanelFactoriesForWicket.java
+++ b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/AsciiDocPanelFactoriesForWicket.java
@@ -17,8 +17,9 @@
  *  under the License.
  */
 
-package org.apache.isis.extensions.asciidoc;
+package org.apache.isis.extensions.asciidoc.ui.components;
 
+import org.apache.isis.extensions.asciidoc.applib.value.AsciiDoc;
 import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponentFactory;
 import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
 
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/css/prism.css b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/css/prism.css
similarity index 100%
rename from extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/css/prism.css
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/css/prism.css
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/js/prism1.14.js b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/js/prism1.14.js
similarity index 100%
rename from extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/js/prism1.14.js
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/components/js/prism1.14.js
diff --git a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocConverter.java b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/converter/AsciiDocConverter.java
similarity index 95%
rename from extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocConverter.java
rename to extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/converter/AsciiDocConverter.java
index 3c4528f..a5dca0a 100644
--- a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/AsciiDocConverter.java
+++ b/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/ui/converter/AsciiDocConverter.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.asciidoc;
+package org.apache.isis.extensions.asciidoc.ui.converter;
 
 import org.asciidoctor.Asciidoctor;
 import org.asciidoctor.AttributesBuilder;
@@ -49,7 +49,7 @@ public final class AsciiDocConverter {
      * {@code @import "prism.css"}.
      * </pre>
      *  
-     * @param adoc - formated input to be converted to HTML
+     * @param adoc - formatted input to be converted to HTML
      */
     public static String adocToHtml(String adoc) {
         if(asciidoctor==null) {
diff --git a/extensions/vw/asciidoc/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory b/extensions/vw/asciidoc/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
index f7254c1..fe60388 100644
--- a/extensions/vw/asciidoc/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
+++ b/extensions/vw/asciidoc/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
@@ -1,2 +1,2 @@
-org.apache.isis.extensions.asciidoc.AsciiDocPanelFactoriesForWicket$Parented
-org.apache.isis.extensions.asciidoc.AsciiDocPanelFactoriesForWicket$Standalone
\ No newline at end of file
+org.apache.isis.extensions.asciidoc.ui.components.AsciiDocPanelFactoriesForWicket$Parented
+org.apache.isis.extensions.asciidoc.ui.components.AsciiDocPanelFactoriesForWicket$Standalone
\ No newline at end of file
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelUiModule.java b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/IsisModuleExtExcelDownload.java
similarity index 88%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelUiModule.java
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/IsisModuleExtExcelDownload.java
index 8b05032..da671ec 100644
--- a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelUiModule.java
+++ b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/IsisModuleExtExcelDownload.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.extensions.viewer.wicket.excel;
 
-public final class ExcelUiModule {
-    private ExcelUiModule(){}
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleExtExcelDownload {
 }
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcel.css b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcel.css
similarity index 100%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcel.css
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcel.css
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcel.html b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcel.html
similarity index 100%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcel.html
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcel.html
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcel.java b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcel.java
similarity index 97%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcel.java
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcel.java
index 4c1138b..db5b1df 100644
--- a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcel.java
+++ b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.viewer.wicket.excel;
+package org.apache.isis.extensions.viewer.wicket.excel.components;
 
 import java.io.File;
 
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcelFactory.java b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcelFactory.java
similarity index 97%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcelFactory.java
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcelFactory.java
index a022279..3900dd2 100644
--- a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/CollectionContentsAsExcelFactory.java
+++ b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/CollectionContentsAsExcelFactory.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.viewer.wicket.excel;
+package org.apache.isis.extensions.viewer.wicket.excel.components;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelFileDownloadLink.java b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/ExcelFileDownloadLink.java
similarity index 98%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelFileDownloadLink.java
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/ExcelFileDownloadLink.java
index bea78bd..d55b136 100644
--- a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelFileDownloadLink.java
+++ b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/ExcelFileDownloadLink.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.viewer.wicket.excel;
+package org.apache.isis.extensions.viewer.wicket.excel.components;
 
 import java.io.File;
 
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelFileModel.java b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/ExcelFileModel.java
similarity index 99%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelFileModel.java
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/ExcelFileModel.java
index 6b46216..b71c550 100644
--- a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/ExcelFileModel.java
+++ b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/ExcelFileModel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.viewer.wicket.excel;
+package org.apache.isis.extensions.viewer.wicket.excel.components;
 
 import java.io.File;
 import java.io.FileNotFoundException;
diff --git a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/Util_TimeConversion.java b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/Util_TimeConversion.java
similarity index 95%
rename from extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/Util_TimeConversion.java
rename to extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/Util_TimeConversion.java
index 246e37b..c2e32f5 100644
--- a/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/Util_TimeConversion.java
+++ b/extensions/vw/exceldownload/src/main/java/org/apache/isis/extensions/viewer/wicket/excel/components/Util_TimeConversion.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.viewer.wicket.excel;
+package org.apache.isis.extensions.viewer.wicket.excel.components;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
diff --git a/extensions/vw/exceldownload/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory b/extensions/vw/exceldownload/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
index 47d111f..ac0d6ce 100644
--- a/extensions/vw/exceldownload/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
+++ b/extensions/vw/exceldownload/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
@@ -1 +1 @@
-org.apache.isis.extensions.viewer.wicket.excel.CollectionContentsAsExcelFactory
\ No newline at end of file
+org.apache.isis.extensions.viewer.wicket.excel.components.CollectionContentsAsExcelFactory
\ No newline at end of file
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/applib/IsisModuleExtMarkdownApplib.java b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/applib/IsisModuleExtMarkdownApplib.java
new file mode 100644
index 0000000..5b16379
--- /dev/null
+++ b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/applib/IsisModuleExtMarkdownApplib.java
@@ -0,0 +1,7 @@
+package org.apache.isis.extensions.markdown.applib;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class IsisModuleExtMarkdownApplib {
+}
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/Markdown.java b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/applib/value/Markdown.java
similarity index 91%
rename from extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/Markdown.java
rename to extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/applib/value/Markdown.java
index 4b82370..931dde6 100644
--- a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/Markdown.java
+++ b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/applib/value/Markdown.java
@@ -16,10 +16,11 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.markdown;
+package org.apache.isis.extensions.markdown.applib.value;
 
 import org.apache.isis.applib.annotation.Value;
 import org.apache.isis.applib.value.Markup;
+import org.apache.isis.extensions.markdown.ui.converter.MarkdownConverter;
 
 /**
  * Immutable value type holding pre-rendered HTML.
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/IsisModuleExtMarkdownUi.java b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/IsisModuleExtMarkdownUi.java
new file mode 100644
index 0000000..62c0348
--- /dev/null
+++ b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/IsisModuleExtMarkdownUi.java
@@ -0,0 +1,10 @@
+package org.apache.isis.extensions.markdown.ui;
+
+import org.apache.isis.extensions.markdown.applib.IsisModuleExtMarkdownApplib;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
+
+@Configuration
+@Import({IsisModuleExtMarkdownApplib.class})
+public class IsisModuleExtMarkdownUi {
+}
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownComponent.java b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/MarkdownComponent.java
similarity index 97%
rename from extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownComponent.java
rename to extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/MarkdownComponent.java
index edce457..5abe54a 100644
--- a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownComponent.java
+++ b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/MarkdownComponent.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.markdown;
+package org.apache.isis.extensions.markdown.ui.components;
 
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownPanelFactoriesForWicket.java b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/MarkdownPanelFactoriesForWicket.java
similarity index 95%
rename from extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownPanelFactoriesForWicket.java
rename to extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/MarkdownPanelFactoriesForWicket.java
index fcc3232..883b16e 100644
--- a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownPanelFactoriesForWicket.java
+++ b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/MarkdownPanelFactoriesForWicket.java
@@ -17,8 +17,9 @@
  *  under the License.
  */
 
-package org.apache.isis.extensions.markdown;
+package org.apache.isis.extensions.markdown.ui.components;
 
+import org.apache.isis.extensions.markdown.applib.value.Markdown;
 import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponentFactory;
 import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
 
diff --git a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/css/prism.css b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/css/prism.css
similarity index 100%
rename from extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/css/prism.css
rename to extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/css/prism.css
diff --git a/extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/js/prism1.14.js b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/js/prism1.14.js
similarity index 100%
rename from extensions/vw/asciidoc/src/main/java/org/apache/isis/extensions/asciidoc/js/prism1.14.js
rename to extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/components/js/prism1.14.js
diff --git a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownConverter.java b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/converter/MarkdownConverter.java
similarity index 98%
rename from extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownConverter.java
rename to extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/converter/MarkdownConverter.java
index 1634c0d..11b1bf5 100644
--- a/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/MarkdownConverter.java
+++ b/extensions/vw/markdown/src/main/java/org/apache/isis/extensions/markdown/ui/converter/MarkdownConverter.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.markdown;
+package org.apache.isis.extensions.markdown.ui.converter;
 
 import java.util.Arrays;
 
diff --git a/extensions/vw/markdown/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory b/extensions/vw/markdown/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
index 5097912..8738ce1 100644
--- a/extensions/vw/markdown/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
+++ b/extensions/vw/markdown/src/main/resources/META-INF/services/org.apache.isis.viewer.wicket.ui.ComponentFactory
@@ -1,2 +1,2 @@
-org.apache.isis.extensions.markdown.MarkdownPanelFactoriesForWicket$Parented
-org.apache.isis.extensions.markdown.MarkdownPanelFactoriesForWicket$Standalone
\ No newline at end of file
+org.apache.isis.extensions.markdown.ui.components.MarkdownPanelFactoriesForWicket$Parented
+org.apache.isis.extensions.markdown.ui.components.MarkdownPanelFactoriesForWicket$Standalone
\ No newline at end of file
diff --git a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/IsisBootSse.java b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/IsisBootSse.java
index d215014..1b812b7 100644
--- a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/IsisBootSse.java
+++ b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/IsisBootSse.java
@@ -18,11 +18,11 @@
  */
 package org.apache.isis.extensions.sse;
 
+import org.apache.isis.extensions.sse.webmodule.WebModuleServerSentEvents;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.extensions.sse.services.SseServiceDefault;
-import org.apache.isis.extensions.sse.webapp.WebModuleServerSentEvents;
 
 @Configuration
 @Import({
diff --git a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webapp/ServerSentEventsServlet.java b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/ServerSentEventsServlet.java
similarity index 99%
rename from extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webapp/ServerSentEventsServlet.java
rename to extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/ServerSentEventsServlet.java
index 308afcd..104791a 100644
--- a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webapp/ServerSentEventsServlet.java
+++ b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/ServerSentEventsServlet.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.sse.webapp;
+package org.apache.isis.extensions.sse.webmodule;
 
 import java.io.IOException;
 import java.util.Optional;
diff --git a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webapp/WebModuleServerSentEvents.java b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/WebModuleServerSentEvents.java
similarity index 97%
rename from extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webapp/WebModuleServerSentEvents.java
rename to extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/WebModuleServerSentEvents.java
index 5951e38..c77da4b 100644
--- a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webapp/WebModuleServerSentEvents.java
+++ b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/WebModuleServerSentEvents.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.sse.webapp;
+package org.apache.isis.extensions.sse.webmodule;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextListener;
diff --git a/incubator/core/model/src/main/java/org/apache/isis/extensions/incubator/IsisBootIncubator.java b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/applib/IsisModuleIncModelApplib.java
similarity index 84%
rename from incubator/core/model/src/main/java/org/apache/isis/extensions/incubator/IsisBootIncubator.java
rename to incubator/core/model/src/main/java/org/apache/isis/incubator/model/applib/IsisModuleIncModelApplib.java
index a4d9e84..79612d4 100644
--- a/incubator/core/model/src/main/java/org/apache/isis/extensions/incubator/IsisBootIncubator.java
+++ b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/applib/IsisModuleIncModelApplib.java
@@ -16,15 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.incubator;
+package org.apache.isis.incubator.model.applib;
 
+import org.apache.isis.incubator.model.metamodel.services.IncubatorMetaModelPlugin;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
-@Import({
-    IncubatorMetaModelPlugin.class
-})
-public class IsisBootIncubator {
+public class IsisModuleIncModelApplib {
 
 }
diff --git a/incubator/core/model/src/main/java/org/apache/isis/applib/annotation/Model.java b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/applib/annotation/Model.java
similarity index 96%
rename from incubator/core/model/src/main/java/org/apache/isis/applib/annotation/Model.java
rename to incubator/core/model/src/main/java/org/apache/isis/incubator/model/applib/annotation/Model.java
index 7d50e7f..e0443d4 100644
--- a/incubator/core/model/src/main/java/org/apache/isis/applib/annotation/Model.java
+++ b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/applib/annotation/Model.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.annotation;
+package org.apache.isis.incubator.model.applib.annotation;
 
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Inherited;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisMetamodelModule.java b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/IsisModuleIncModelMetaModel.java
similarity index 72%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/IsisMetamodelModule.java
rename to incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/IsisModuleIncModelMetaModel.java
index 6810078..a188877 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisMetamodelModule.java
+++ b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/IsisModuleIncModelMetaModel.java
@@ -16,23 +16,21 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.metamodel;
+package org.apache.isis.incubator.model.metamodel;
 
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-
-import org.apache.isis.applib.IsisApplibModule;
-import org.apache.isis.config.IsisConfigModule;
-import org.springframework.context.annotation.ComponentScan;
+import org.apache.isis.incubator.model.applib.IsisModuleIncModelApplib;
+import org.apache.isis.incubator.model.metamodel.services.IncubatorMetaModelPlugin;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-        IsisApplibModule.class,
-        IsisConfigModule.class,
+        // modules
+        IsisModuleIncModelApplib.class,
+
+        // @Component's
+        IncubatorMetaModelPlugin.class
 })
-@ComponentScan
-public class IsisMetamodelModule {
+public class IsisModuleIncModelMetaModel {
 
 }
diff --git a/incubator/core/model/src/main/java/org/apache/isis/metamodel/facets/actions/support/SupportingMethodValidatorRefinerFactory.java b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
similarity index 97%
rename from incubator/core/model/src/main/java/org/apache/isis/metamodel/facets/actions/support/SupportingMethodValidatorRefinerFactory.java
rename to incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
index c26a47f..0b8d3e6 100644
--- a/incubator/core/model/src/main/java/org/apache/isis/metamodel/facets/actions/support/SupportingMethodValidatorRefinerFactory.java
+++ b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/facets/SupportingMethodValidatorRefinerFactory.java
@@ -16,16 +16,15 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.metamodel.facets.actions.support;
+package org.apache.isis.incubator.model.metamodel.facets;
 
 import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.apache.isis.applib.annotation.Model;
+import org.apache.isis.incubator.model.applib.annotation.Model;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.metamodel.commons.MethodUtil;
diff --git a/incubator/core/model/src/main/java/org/apache/isis/extensions/incubator/IncubatorMetaModelPlugin.java b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/services/IncubatorMetaModelPlugin.java
similarity index 92%
rename from incubator/core/model/src/main/java/org/apache/isis/extensions/incubator/IncubatorMetaModelPlugin.java
rename to incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/services/IncubatorMetaModelPlugin.java
index 271844c..81b7600 100644
--- a/incubator/core/model/src/main/java/org/apache/isis/extensions/incubator/IncubatorMetaModelPlugin.java
+++ b/incubator/core/model/src/main/java/org/apache/isis/incubator/model/metamodel/services/IncubatorMetaModelPlugin.java
@@ -16,12 +16,12 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.extensions.incubator;
+package org.apache.isis.incubator.model.metamodel.services;
 
+import org.apache.isis.incubator.model.metamodel.facets.SupportingMethodValidatorRefinerFactory;
 import org.springframework.stereotype.Component;
 
 import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
-import org.apache.isis.metamodel.facets.actions.support.SupportingMethodValidatorRefinerFactory;
 import org.apache.isis.metamodel.progmodel.ProgrammingModel;
 
 @Component
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
similarity index 99%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
index 35cf312..4a291ee 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/DomainObjectContainer.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
@@ -16,17 +16,18 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib;
+package org.apache.isis.legacy.applib;
 
 import java.util.Iterator;
 import java.util.List;
 
 import javax.inject.Inject;
 
+import org.apache.isis.applib.ViewModel;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.filter.Filter;
+import org.apache.isis.legacy.applib.filter.Filter;
 import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.security.UserMemento;
 import org.apache.isis.applib.services.factory.FactoryService;
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/filter/Filter.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/filter/Filter.java
similarity index 97%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/filter/Filter.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/filter/Filter.java
index cc1edb8..fff11e2 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/filter/Filter.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/filter/Filter.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.filter;
+package org.apache.isis.legacy.applib.filter;
 
 import com.google.common.base.Predicate;
 
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/filter/Filters.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/filter/Filters.java
similarity index 98%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/filter/Filters.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/filter/Filters.java
index ec840d5..1d276dc 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/filter/Filters.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/filter/Filters.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.filter;
+package org.apache.isis.legacy.applib.filter;
 
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundCommandService2.java
similarity index 89%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundCommandService2.java
index 7c3ed13..eb67f3d 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService2.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundCommandService2.java
@@ -14,7 +14,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.isis.applib.services.background;
+package org.apache.isis.legacy.applib.services.background;
+
+import org.apache.isis.applib.services.background.BackgroundCommandService;
 
 /**
  * Persists a {@link org.apache.isis.schema.cmd.v1.CommandDto memento-ized} command such that it can be
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundService.java
similarity index 97%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundService.java
index e44840b..0d69872 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundService.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.services.background;
+package org.apache.isis.legacy.applib.services.background;
 
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundService2.java
similarity index 94%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundService2.java
index 7f68327..c1f7d6a 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService2.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/background/BackgroundService2.java
@@ -14,7 +14,7 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-package org.apache.isis.applib.services.background;
+package org.apache.isis.legacy.applib.services.background;
 
 /**
  * Submit actions to be invoked in the background.
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionDomainEvent.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/ActionDomainEvent.java
similarity index 99%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionDomainEvent.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/ActionDomainEvent.java
index cce70c6..684b1e6 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/ActionDomainEvent.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/ActionDomainEvent.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.applib.services.eventbus;
+package org.apache.isis.legacy.applib.services.eventbus;
 
 import java.util.List;
 
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionDomainEvent.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/CollectionDomainEvent.java
similarity index 97%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionDomainEvent.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/CollectionDomainEvent.java
index 0b0481d..582985b 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/CollectionDomainEvent.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/CollectionDomainEvent.java
@@ -16,10 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.services.eventbus;
+package org.apache.isis.legacy.applib.services.eventbus;
 
 import org.apache.isis.applib.events.domain.AbstractDomainEvent;
-import org.apache.isis.applib.events.domain.AbstractDomainEvent.Phase;
 import org.apache.isis.applib.util.ObjectContracts;
 import org.apache.isis.applib.util.ToString;
 
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyDomainEvent.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/PropertyDomainEvent.java
similarity index 98%
rename from legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyDomainEvent.java
rename to legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/PropertyDomainEvent.java
index 764ee65..fd06231 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/applib/services/eventbus/PropertyDomainEvent.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/services/eventbus/PropertyDomainEvent.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.services.eventbus;
+package org.apache.isis.legacy.applib.services.eventbus;
 
 import org.apache.isis.applib.events.domain.AbstractDomainEvent;
 import org.apache.isis.applib.util.ObjectContracts;
diff --git a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
similarity index 97%
rename from legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
rename to legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
index 584e31b..8196eec 100644
--- a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
+++ b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.commons.internal.threadpool;
+package org.apache.isis.legacy.commons.internal.threadpool;
 
 import java.util.List;
 import java.util.concurrent.ExecutionException;
diff --git a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolExecutionMode.java b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolExecutionMode.java
similarity index 97%
rename from legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolExecutionMode.java
rename to legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolExecutionMode.java
index 442eb0e..7af7e53 100644
--- a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolExecutionMode.java
+++ b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolExecutionMode.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.commons.internal.threadpool;
+package org.apache.isis.legacy.commons.internal.threadpool;
 
 /**
  *  ThreadPollSupport's executions mode where the enum's ordinal corresponds to the level of concurrency.
diff --git a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSizeAdvisor.java b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
similarity index 96%
rename from legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
rename to legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
index 86730dc..e76b934 100644
--- a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
+++ b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.commons.internal.threadpool;
+package org.apache.isis.legacy.commons.internal.threadpool;
 
 @Deprecated
 final class ThreadPoolSizeAdvisor {
diff --git a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupport.java b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSupport.java
similarity index 99%
rename from legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupport.java
rename to legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSupport.java
index 369a11f..f0e8353 100644
--- a/legacy/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupport.java
+++ b/legacy/core/commons/src/main/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSupport.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.commons.internal.threadpool;
+package org.apache.isis.legacy.commons.internal.threadpool;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/legacy/core/commons/src/test/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupportTest.java b/legacy/core/commons/src/test/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSupportTest.java
similarity index 95%
rename from legacy/core/commons/src/test/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupportTest.java
rename to legacy/core/commons/src/test/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSupportTest.java
index 55a046e..9b5802d 100644
--- a/legacy/core/commons/src/test/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupportTest.java
+++ b/legacy/core/commons/src/test/java/org/apache/isis/legacy/commons/internal/threadpool/ThreadPoolSupportTest.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.commons.internal.threadpool;
+package org.apache.isis.legacy.commons.internal.threadpool;
 
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -25,6 +25,8 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.stream.Collectors;
 
+import org.apache.isis.legacy.commons.internal.threadpool.ThreadPoolExecutionMode;
+import org.apache.isis.legacy.commons.internal.threadpool.ThreadPoolSupport;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/DomSerializer.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/snapshot/DomSerializer.java
similarity index 96%
rename from legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/DomSerializer.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/snapshot/DomSerializer.java
index 68e7a20..20545b7 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/DomSerializer.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/snapshot/DomSerializer.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.core.runtime.snapshot;
+package org.apache.isis.legacy.runtime.snapshot;
 
 import java.io.OutputStream;
 import java.io.Writer;
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/DomSerializerJaxp.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/snapshot/DomSerializerJaxp.java
similarity index 98%
rename from legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/DomSerializerJaxp.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/snapshot/DomSerializerJaxp.java
index bd9cce0..ab96494 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/DomSerializerJaxp.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/snapshot/DomSerializerJaxp.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.core.runtime.snapshot;
+package org.apache.isis.legacy.runtime.snapshot;
 
 import java.io.CharArrayWriter;
 import java.io.OutputStream;
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/sysout/SystemPrinter.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/sysout/SystemPrinter.java
similarity index 96%
rename from legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/sysout/SystemPrinter.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/sysout/SystemPrinter.java
index 2045226..fe2d0e2 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/core/runtime/sysout/SystemPrinter.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/sysout/SystemPrinter.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.core.runtime.sysout;
+package org.apache.isis.legacy.runtime.sysout;
 
 import java.io.PrintStream;
 
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/LoggingLocation.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/LoggingLocation.java
similarity index 94%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/LoggingLocation.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/LoggingLocation.java
index db95275..487daa1 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/LoggingLocation.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/LoggingLocation.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.runtime.system.persistence;
+package org.apache.isis.legacy.runtime.system.persistence;
 
 public enum LoggingLocation {
     ENTRY(">>"), EXIT("<<");
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/ObjectFactory.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/ObjectFactory.java
similarity index 97%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/ObjectFactory.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/ObjectFactory.java
index 9fdfa92..a0aee37 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/ObjectFactory.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/ObjectFactory.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.system.persistence;
+package org.apache.isis.legacy.runtime.system.persistence;
 
 import java.lang.reflect.Modifier;
 
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/SuspendableListener.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/SuspendableListener.java
similarity index 94%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/SuspendableListener.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/SuspendableListener.java
index aa15a16..360796d 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/SuspendableListener.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/system/persistence/SuspendableListener.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.runtime.system.persistence;
+package org.apache.isis.legacy.runtime.system.persistence;
 
 public interface SuspendableListener {
 
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/AbstractServletOrFilterMapping.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/AbstractServletOrFilterMapping.java
similarity index 97%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/AbstractServletOrFilterMapping.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/AbstractServletOrFilterMapping.java
index 7bfc76a..b9c1e8c 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/AbstractServletOrFilterMapping.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/AbstractServletOrFilterMapping.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.viewer.web;
+package org.apache.isis.legacy.runtime.viewer.web;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/FilterSpecification.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/FilterSpecification.java
similarity index 96%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/FilterSpecification.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/FilterSpecification.java
index b2e5de1..3840b3e 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/FilterSpecification.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/FilterSpecification.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.viewer.web;
+package org.apache.isis.legacy.runtime.viewer.web;
 
 import java.util.Map;
 
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/ServletSpecification.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/ServletSpecification.java
similarity index 96%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/ServletSpecification.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/ServletSpecification.java
index 1e872a4..5ae55de 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/ServletSpecification.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/ServletSpecification.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.viewer.web;
+package org.apache.isis.legacy.runtime.viewer.web;
 
 import java.util.Map;
 
diff --git a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/WebAppSpecification.java b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/WebAppSpecification.java
similarity index 98%
rename from legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/WebAppSpecification.java
rename to legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/WebAppSpecification.java
index b01aa1c..27f2937 100644
--- a/legacy/core/runtime/src/main/java/org/apache/isis/runtime/viewer/web/WebAppSpecification.java
+++ b/legacy/core/runtime/src/main/java/org/apache/isis/legacy/runtime/viewer/web/WebAppSpecification.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.viewer.web;
+package org.apache.isis.legacy.runtime.viewer.web;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/legacy/testsupport/mavenplugin/pom.xml b/legacy/testsupport/mavenplugin/pom.xml
index 226f6bd..6bc2a66 100644
--- a/legacy/testsupport/mavenplugin/pom.xml
+++ b/legacy/testsupport/mavenplugin/pom.xml
@@ -74,7 +74,7 @@
 
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>
-			<artifactId>isis-security</artifactId>
+			<artifactId>isis-security-api</artifactId>
 		</dependency>
 		
 		<dependency>
diff --git a/mavendeps/webapp/pom.xml b/mavendeps/webapp/pom.xml
index 60ce72b..fb04368 100644
--- a/mavendeps/webapp/pom.xml
+++ b/mavendeps/webapp/pom.xml
@@ -111,7 +111,7 @@
 
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>
-			<artifactId>isis-security</artifactId>
+			<artifactId>isis-security-api</artifactId>
 		</dependency>
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>