You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/06/23 15:56:23 UTC

[causeway] 01/01: CAUSEWAY-3485: renames ScalarModel -> PopModel

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

ahuber pushed a commit to branch 3485-wkt.rename.scalar
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit ed94d2440a6105227cd4cf4e8fabfa20910c9760
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 23 17:56:17 2023 +0200

    CAUSEWAY-3485: renames ScalarModel -> PopModel
---
 .../facets/object/value/ValueFacetAbstract.java    |   2 +-
 .../param/ChoicesAndDefaultsPostProcessor.java     |   1 -
 .../valuesemantics/BooleanValueSemantics.java      |   2 +-
 .../pdfjs/wkt/ui/components/PdfJsViewerPanel.java  |  18 +--
 .../PdfJsViewerPanelComponentFactory.java          |  12 +-
 .../ui/components/ScalarPanelAbstractLegacy.java   |  18 +--
 .../wicket/markup/ListeningMarkupComponent.java    |   6 +-
 .../ListeningMarkupPanelFactoriesForWicket.java    |  12 +-
 .../viewers/common/wkt/InteractionTestWkt.java     |   8 +-
 .../testdomain/conf/Configuration_usingWicket.java |   4 +-
 .../ui/wkt/components/AsciiDocComponentWkt.java    |   4 +-
 .../wkt/components/AsciiDocPanelFactoriesWkt.java  |   8 +-
 .../ui/wkt/components/MarkdownComponentWkt.java    |   2 +-
 .../wkt/components/MarkdownPanelFactoriesWkt.java  |   8 +-
 .../vega/ui/wkt/components/VegaComponentWkt.java   |   4 +-
 .../ui/wkt/components/VegaPanelFactoriesWkt.java   |   8 +-
 .../commons/model/src/main/java/module-info.java   |   2 +-
 .../viewer/commons/model/action/UiActionForm.java  |   2 +-
 .../model/{scalar => pop}/HasUiParameter.java      |   2 +-
 .../model/{scalar => pop}/HasUiProperty.java       |   2 +-
 .../commons/model/{scalar => pop}/UiParameter.java |   4 +-
 .../model/{scalar/UiScalar.java => pop/UiPop.java} |  15 ++-
 .../commons/model/{scalar => pop}/UiProperty.java  |   4 +-
 .../viewer/wicket/model/models/BooleanModel.java   |  20 ++--
 .../wicket/model/models/ChainingObjectModel.java   |  28 ++---
 .../wicket/model/models/FileUploadModels.java      |   8 +-
 .../viewer/wicket/model/models/FormExecutor.java   |   2 +-
 .../wicket/model/models/InlinePromptContext.java   |   4 +-
 .../wicket/model/models/ManagedObjectModel.java    |   2 +-
 .../wicket/model/models/ObjectAdapterModel.java    |   2 +-
 .../models/{ScalarModel.java => PopModel.java}     |  18 ++-
 ...odelWithChoice.java => PopModelWithChoice.java} |   8 +-
 ...ltiChoice.java => PopModelWithMultiChoice.java} |  24 ++--
 ...leChoice.java => PopModelWithSingleChoice.java} |  20 ++--
 .../wicket/model/models/ScalarConvertingModel.java |  18 +--
 .../wicket/model/models/ScalarParameterModel.java  |   4 +-
 .../wicket/model/models/ScalarPropertyModel.java   |   4 +-
 .../wicket/model/models/ScalarUnwrappingModel.java |  24 ++--
 .../viewer/wicket/model/models/UiObjectWkt.java    |  30 ++---
 .../causeway/viewer/wicket/model/models/_Xray.java |   6 +-
 .../models/interaction/act/UiParameterWkt.java     |   2 +-
 .../models/interaction/prop/UiPropertyWkt.java     |   2 +-
 .../choices/ChoiceProviderForReferencesTest.java   |   2 +-
 .../choices/ChoiceProviderForValuesTest.java       |   2 +-
 .../choices/ChoiceProviderTestAbstract.java        |  16 +--
 viewers/wicket/ui/src/main/java/module-info.java   |  22 ++--
 .../entityactions/LinkAndLabelFactory.java         |  10 +-
 .../components/actions/ActionParametersForm.java   |   6 +-
 .../ui/components/collection/CollectionPanel.java  |   2 +-
 .../ajaxtable/columns/GenericPropertyColumn.java   |   6 +-
 .../components/entity/fieldset/PropertyGroup.java  |  10 +-
 .../icontitle/EntityIconAndTitlePanelFactory.java  |  18 +--
 .../ComponentFactoryScalarAbstract.java            |  14 +--
 ...ponentFactoryScalarTypeConstrainedAbstract.java |  14 +--
 .../PopModelChangeDispatcher.java}                 |   6 +-
 .../PopModelChangeListener.java}                   |   4 +-
 .../{scalars => pops}/ScalarFragmentFactory.java   |   2 +-
 .../ScalarModelDefaultChangeBehavior.java          |  10 +-
 .../{scalars => pops}/ScalarPanelAbstract.java     | 126 ++++++++++-----------
 .../{scalars => pops}/ScalarPanelAbstract2.java    |  60 +++++-----
 .../ScalarPanelAdditionalButton.java               |  32 +++---
 .../ScalarPanelFormFieldAbstract.html              |   0
 .../ScalarPanelFormFieldAbstract.java              |  46 ++++----
 .../ScalarPanelFormFieldAbstract_xray.html         |   0
 .../ScalarPanelSelectAbstract.java                 |  38 +++----
 .../ScalarPanelTextFieldAbstract.java              |  30 ++---
 .../ScalarPanelTextFieldNumeric.java               |   8 +-
 .../ScalarPanelTextFieldTextualAbstract.java       |   8 +-
 .../ScalarPanelTextFieldWithTemporalPicker.java    |  22 ++--
 .../ScalarPanelTextFieldWithValueSemantics.java    |  10 +-
 .../ui/components/{scalars => pops}/_Util.java     |  94 +++++++--------
 .../ui/components/{scalars => pops}/_Xray.java     |   4 +-
 .../blobclob/CausewayBlobOrClobPanelAbstract.java  |  24 ++--
 .../blobclob/CausewayBlobPanel.java                |   8 +-
 .../blobclob/CausewayBlobPanelFactory.java         |  10 +-
 .../blobclob/CausewayClobPanel.java                |   8 +-
 .../blobclob/CausewayClobPanelFactory.java         |  10 +-
 .../{scalars => pops}/bool/BooleanPanel.java       |  26 ++---
 .../bool/BooleanPanelFactory.java                  |  10 +-
 .../choices/ChoiceFormComponent.html               |   0
 .../choices/ChoiceFormComponent.java               |   4 +-
 .../choices/ChoicesSelect2PanelFactory.java        |  32 +++---
 .../choices/ObjectChoicesSelect2Panel.java         |  46 ++++----
 .../choices/ValueChoicesSelect2Panel.java          |  18 +--
 .../composite/CompositeValuePanel.java             |  26 ++---
 .../datepicker/DateTimeConfig.java                 |   2 +-
 .../datepicker/DatetimePickerJsReference.java      |   2 +-
 .../datepicker/MomentJsReference.java              |   2 +-
 .../datepicker/TextFieldWithDateTimePicker.java    |  12 +-
 .../datepicker/_TimeFormatUtil.java                |   2 +-
 .../{scalars => pops}/image/JavaAwtImagePanel.css  |   0
 .../{scalars => pops}/image/JavaAwtImagePanel.java |  26 ++---
 .../JavaAwtImagePanelCssResourceReference.java     |   2 +-
 .../image/JavaAwtImagePanelFactory.java            |  14 +--
 .../image/JavaAwtImagePanel_LEFT.html              |   0
 .../image/JavaAwtImagePanel_NONE.html              |   0
 .../image/JavaAwtImagePanel_RIGHT.html             |   0
 .../image/JavaAwtImagePanel_TOP.html               |   0
 .../{scalars => pops}/image/_WktImageUtil.java     |   6 +-
 .../{scalars => pops}/markup/MarkupComponent.java  |   4 +-
 .../markup/MarkupComponentFactory.java             |   2 +-
 .../markup/MarkupComponent_reloadJs.java           |   2 +-
 .../markup/MarkupPanelFactories.java               |  14 +--
 .../markup/ScalarMarkupPanel.java                  |  16 +--
 .../markup/StandaloneMarkupPanel.html              |   0
 .../markup/StandaloneMarkupPanel.java              |   2 +-
 .../markup/_HighlightBehavior.java                 |   2 +-
 .../markup/_HighlightBehaviorPrism.java            |   2 +-
 .../passwd/CausewayPasswordPanel.java              |  10 +-
 .../passwd/CausewayPasswordPanelFactory.java       |  10 +-
 .../string/MultiLineStringPanel.java               |  10 +-
 .../string/ScalarTitleBadgePanel.java              |  12 +-
 .../{scalars => pops}/string/StringPanel.java      |  10 +-
 .../string/StringPanelFactory.java                 |  14 +--
 .../value/fallback/ValueFallbackPanel.java         |  12 +-
 .../value/fallback/ValueFallbackPanelFactory.java  |  18 +--
 .../ui/components/property/PropertyEditForm.java   |  10 +-
 .../property/PropertyEditFormPanelFactory.java     |   4 +-
 .../ui/components/property/PropertyEditPanel.java  |  24 ++--
 .../property/PropertyEditPanelFactory.java         |   4 +-
 .../tree/CausewayToWicketTreeAdapter.java          |  12 +-
 .../ui/components/tree/ParentedTreePanel.java      |  16 +--
 .../ui/components/tree/TreePanelFactories.java     |  14 +--
 .../ui/components/unknown/UnknownModelPanel.java   |   8 +-
 .../ui/components/value/StandaloneValuePanel.java  |   2 +-
 .../EntityLinkSimplePanelFactory.java              |   4 +-
 .../widgets/linkandlabel/ActionLink.java           |   2 +-
 .../linkandlabel/LinkAndLabelFactoryAbstract.java  |   8 +-
 .../ui/components/widgets/select2/Select2.java     |  28 ++---
 .../widgets/select2/Select2ChoiceExt.java          |  10 +-
 .../widgets/select2/Select2MultiChoiceExt.java     |  10 +-
 .../widgets/select2/Select2OnSelect.java           |  16 +--
 ...java => ChoiceProviderAbstractForPopModel.java} |  10 +-
 .../providers/ChoiceProviderForReferences.java     |  34 +++---
 .../select2/providers/ChoiceProviderForValues.java |  10 +-
 .../viewer/wicket/ui/pages/PageAbstract.java       |   2 +-
 .../wicket/ui/panels/PromptFormAbstract.java       |   6 +-
 .../apache/causeway/viewer/wicket/ui/util/Wkt.java |   2 +-
 .../ComponentFactoryRegistrarDefault.java          |  46 ++++----
 .../config/WicketViewerCssBundleInit.java          |   2 +-
 140 files changed, 855 insertions(+), 855 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/value/ValueFacetAbstract.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/value/ValueFacetAbstract.java
index 7cac0c9ea3..9d181a4762 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/value/ValueFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/object/value/ValueFacetAbstract.java
@@ -290,7 +290,7 @@ implements ValueFacet<T> {
         if(!isCompositeValueType()) {
             return Optional.empty();
         }
-        //feed the action's invocation result back into the scalarModel's proposed value, then submit
+        //feed the action's invocation result back into the popModel's proposed value, then submit
         return resolveCompositeValueMixinForFeature(managedProperty.getProperty())
                 .map(m->CompositeValueUpdaterForProperty.createProxy(managedProperty, (ObjectActionMixedIn) m));
     }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
index 39b1e6ad15..23cbfc291e 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
@@ -24,7 +24,6 @@ import org.apache.causeway.applib.annotation.Where;
 import org.apache.causeway.core.config.progmodel.ProgrammingModelConstants;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.facetapi.FacetUtil;
-import org.apache.causeway.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.causeway.core.metamodel.facets.object.defaults.DefaultedFacet;
 import org.apache.causeway.core.metamodel.facets.objectvalue.choices.ChoicesFacet;
 import org.apache.causeway.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java
index edc8aac0d3..b835f9308c 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java
@@ -131,7 +131,7 @@ implements
     }
 
     //XXX not localized yet - maybe can be done at a more fundamental level - or replace with universal symbols
-//  return BooleanModel.forScalarModel(scalarModel())
+//  return BooleanModel.forPopModel(popModel())
 //          .asStringModel("(not set)", "Yes", "No");
 
 
diff --git a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
index d985629661..8aaf310c78 100644
--- a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
+++ b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java
@@ -45,7 +45,7 @@ import org.apache.causeway.extensions.pdfjs.applib.config.Scale;
 import org.apache.causeway.extensions.pdfjs.applib.spi.PdfJsViewerAdvisor;
 import org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacet;
 import org.apache.causeway.extensions.pdfjs.wkt.integration.components.PdfJsPanel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktComponents;
 
@@ -79,8 +79,8 @@ implements IRequestListener {
     AbstractDefaultAjaxBehavior updateScale;
     AbstractDefaultAjaxBehavior updateHeight;
 
-    PdfJsViewerPanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    PdfJsViewerPanel(final String id, final PopModel popModel) {
+        super(id, popModel);
     }
 
     interface Updater{
@@ -165,9 +165,9 @@ implements IRequestListener {
     private PdfJsViewerAdvisor.InstanceKey toInstanceKey(final UserService userService) {
         String userName = userService.currentUserNameElseNobody();
 
-        val scalarModel = getModel();
-        val propertyId = scalarModel.getIdentifier();
-        val bookmark = scalarModel.getParentUiModel().getOwnerBookmark();
+        val popModel = getModel();
+        val propertyId = popModel.getIdentifier();
+        val bookmark = popModel.getParentUiModel().getOwnerBookmark();
         val logicalTypeName = bookmark.getLogicalTypeName();
         val identifier = bookmark.getIdentifier();
 
@@ -181,12 +181,12 @@ implements IRequestListener {
             return createShallowRegularFrame();
         }
 
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
         val regularFrame = new WebMarkupContainer(ID_SCALAR_IF_REGULAR);
 
         val pdfJsConfig =
-                scalarModel.getMetaModel().lookupFacet(PdfJsViewerFacet.class)
+                popModel.getMetaModel().lookupFacet(PdfJsViewerFacet.class)
                 .map(pdfJsViewerFacet->pdfJsViewerFacet.configFor(buildKey()))
                 .orElseGet(PdfJsConfig::new)
                 .withDocumentUrl(urlFor(
@@ -296,7 +296,7 @@ implements IRequestListener {
     // -- HELPER
 
     private Blob getBlob() {
-        return (Blob) MmUnwrapUtils.single(scalarModel().getObject());
+        return (Blob) MmUnwrapUtils.single(popModel().getObject());
     }
 
     private static ByteArrayResource asBlobResource(final @NonNull Blob blob) {
diff --git a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
index 6f397ba0f4..944bcbff66 100644
--- a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
+++ b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanelComponentFactory.java
@@ -28,7 +28,7 @@ import org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.extensions.pdfjs.metamodel.facet.PdfJsViewerFacet;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
 import lombok.val;
@@ -45,16 +45,16 @@ public class PdfJsViewerPanelComponentFactory extends ComponentFactoryAbstract {
 
     @Override
     public ApplicationAdvice appliesTo(final IModel<?> model) {
-        if (!(model instanceof ScalarModel)) {
+        if (!(model instanceof PopModel)) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
 
-        val scalarModel = (ScalarModel) model;
-        if(!scalarModel.getMetaModel().containsFacet(PdfJsViewerFacet.class)) {
+        val popModel = (PopModel) model;
+        if(!popModel.getMetaModel().containsFacet(PdfJsViewerFacet.class)) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
 
-        return appliesIf(isPdf(scalarModel.getObject()));
+        return appliesIf(isPdf(popModel.getObject()));
     }
 
     private static boolean isPdf(final ManagedObject objectAdapter) {
@@ -71,7 +71,7 @@ public class PdfJsViewerPanelComponentFactory extends ComponentFactoryAbstract {
 
     @Override
     public Component createComponent(final String id, final IModel<?> model) {
-        return new PdfJsViewerPanel(id, (ScalarModel) model);
+        return new PdfJsViewerPanel(id, (PopModel) model);
     }
 }
 
diff --git a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java
index 30f01fc8af..6c36498091 100644
--- a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java
+++ b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/ScalarPanelAbstractLegacy.java
@@ -23,25 +23,25 @@ import org.apache.wicket.MarkupContainer;
 
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.util.Facets;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
 import lombok.val;
 
 abstract class ScalarPanelAbstractLegacy
-extends PanelAbstract<ManagedObject, ScalarModel> {
+extends PanelAbstract<ManagedObject, PopModel> {
 
     private static final long serialVersionUID = 1L;
 
     protected Component compactFrame;
     private Component regularFrame;
 
-    public ScalarPanelAbstractLegacy(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    public ScalarPanelAbstractLegacy(final String id, final PopModel popModel) {
+        super(id, popModel);
     }
 
-    protected final ScalarModel scalarModel() {
+    protected final PopModel popModel() {
         return super.getModel();
     }
 
@@ -55,7 +55,7 @@ extends PanelAbstract<ManagedObject, ScalarModel> {
 
     private void buildGui() {
 
-        switch(scalarModel().getRenderingHint()) {
+        switch(popModel().getRenderingHint()) {
         case REGULAR:
             regularFrame = createRegularFrame();
             compactFrame = createShallowCompactFrame();
@@ -76,11 +76,11 @@ extends PanelAbstract<ManagedObject, ScalarModel> {
     }
 
     private void addCssFromMetaModel() {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
-        Wkt.cssAppend(this, scalarModel.getCssClass());
+        Wkt.cssAppend(this, popModel.getCssClass());
 
-        Facets.cssClass(scalarModel.getMetaModel(), scalarModel.getParentUiModel().getManagedObject())
+        Facets.cssClass(popModel.getMetaModel(), popModel.getParentUiModel().getManagedObject())
         .ifPresent(cssClass->
             Wkt.cssAppend(this, cssClass));
     }
diff --git a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java
index ebaefee317..389613bca8 100644
--- a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java
+++ b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupComponent.java
@@ -25,9 +25,9 @@ import org.apache.wicket.markup.MarkupStream;
 
 import org.apache.causeway.applib.value.LocalResourcePath;
 import org.apache.causeway.core.config.viewer.web.WebAppContextPath;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
 
 import lombok.val;
 
@@ -41,7 +41,7 @@ public class ListeningMarkupComponent extends MarkupComponent {
 
     public ListeningMarkupComponent(
             final String id,
-            final ScalarModel model,
+            final PopModel model,
             final LocalResourcePath observing){
         super(id, model, Options.defaults());
         this.observing = observing;
diff --git a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
index 49d981db53..e9b4252dad 100644
--- a/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
+++ b/extensions/vw/sse/wicket/src/main/java/org/apache/causeway/extensions/sse/wicket/markup/ListeningMarkupPanelFactoriesForWicket.java
@@ -23,10 +23,10 @@ import org.springframework.stereotype.Component;
 import org.apache.causeway.applib.value.LocalResourcePath;
 import org.apache.causeway.applib.value.Markup;
 import org.apache.causeway.extensions.sse.metamodel.facets.SseObserveFacet;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupPanelFactories;
 
 import lombok.val;
 
@@ -50,7 +50,7 @@ public class ListeningMarkupPanelFactoriesForWicket {
 
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final PopModel model) {
             val markupComponent = new ListeningMarkupComponent(
                     id, model, getEventStreamResource(model));
             markupComponent.setEnabled(false);
@@ -59,8 +59,8 @@ public class ListeningMarkupPanelFactoriesForWicket {
 
         // -- HELPER
 
-        private LocalResourcePath getEventStreamResource(final ScalarModel scalarModel) {
-            val observeFacet  = scalarModel.getMetaModel().getFacet(SseObserveFacet.class);
+        private LocalResourcePath getEventStreamResource(final PopModel popModel) {
+            val observeFacet  = popModel.getMetaModel().getFacet(SseObserveFacet.class);
             return observeFacet!=null
                     ? observeFacet.getEventStreamResource()
                     : null;
diff --git a/regressiontests/stable-viewers-common/src/test/java/org/apache/causeway/testdomain/viewers/common/wkt/InteractionTestWkt.java b/regressiontests/stable-viewers-common/src/test/java/org/apache/causeway/testdomain/viewers/common/wkt/InteractionTestWkt.java
index 54258c82c4..50eb5dfb10 100644
--- a/regressiontests/stable-viewers-common/src/test/java/org/apache/causeway/testdomain/viewers/common/wkt/InteractionTestWkt.java
+++ b/regressiontests/stable-viewers-common/src/test/java/org/apache/causeway/testdomain/viewers/common/wkt/InteractionTestWkt.java
@@ -124,7 +124,7 @@ class InteractionTestWkt extends InteractionTestAbstract {
         objectSpec.streamProperties(MixedIn.INCLUDED)
         .filter(prop->{
 
-            final ScalarPropertyModel scalarModel = (ScalarPropertyModel) entityModel
+            final ScalarPropertyModel popModel = (ScalarPropertyModel) entityModel
                     .getPropertyModel(
                             prop,
                             ViewOrEditMode.VIEWING,
@@ -132,16 +132,16 @@ class InteractionTestWkt extends InteractionTestAbstract {
 
 
             // owner sharing (should be the same object)
-            assertTrue(domainObject == scalarModel.getOwner());
+            assertTrue(domainObject == popModel.getOwner());
 
             if(!prop.getId().equals("stringMultiline")) {
                 return true; // continue
             }
 
             // the scalar model should be in sync with the underlying interaction API
-            val pendingPropModel = scalarModel.getPendingPropertyModel();
+            val pendingPropModel = popModel.getPendingPropertyModel();
             val propBackendValue = pendingPropModel.getValue().getValue();
-            val propUIValue = scalarModel.getObject();
+            val propUIValue = popModel.getObject();
 
             assertEquals(
                     "initial",
diff --git a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/conf/Configuration_usingWicket.java b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/conf/Configuration_usingWicket.java
index 80cb62022f..2522477a8b 100644
--- a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/conf/Configuration_usingWicket.java
+++ b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/conf/Configuration_usingWicket.java
@@ -57,8 +57,8 @@ import org.apache.causeway.viewer.wicket.model.models.PageType;
 import org.apache.causeway.viewer.wicket.model.util.PageParameterUtils;
 import org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.causeway.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFrame;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.RegularFrame;
 import org.apache.causeway.viewer.wicket.ui.pages.PageClassRegistry;
 import org.apache.causeway.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.causeway.viewer.wicket.viewer.CausewayModuleViewerWicketViewer;
diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocComponentWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocComponentWkt.java
index b60231ad16..75d9d2d3b0 100644
--- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocComponentWkt.java
+++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocComponentWkt.java
@@ -21,7 +21,7 @@ package org.apache.causeway.valuetypes.asciidoc.ui.wkt.components;
 import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.applib.value.semantics.Renderer.SyntaxHighlighter;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
 
 public class AsciiDocComponentWkt extends MarkupComponent {
 
@@ -29,7 +29,7 @@ public class AsciiDocComponentWkt extends MarkupComponent {
 
     public AsciiDocComponentWkt(final String id, final IModel<?> model){
         super(id, model,
-                org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent.Options.builder()
+                org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent.Options.builder()
                 .syntaxHighlighter(SyntaxHighlighter.PRISM_COY)
                 .build());
     }
diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java
index 3028c4d65d..a97902bbb3 100644
--- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java
+++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/causeway/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java
@@ -21,10 +21,10 @@ package org.apache.causeway.valuetypes.asciidoc.ui.wkt.components;
 import org.springframework.stereotype.Component;
 
 import org.apache.causeway.valuetypes.asciidoc.applib.value.AsciiDoc;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupPanelFactories;
 
 import lombok.val;
 
@@ -47,7 +47,7 @@ public class AsciiDocPanelFactoriesWkt {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final PopModel model) {
             val markupComponent = new AsciiDocComponentWkt(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git a/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownComponentWkt.java b/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownComponentWkt.java
index b43d4f5c89..b80162f908 100644
--- a/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownComponentWkt.java
+++ b/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownComponentWkt.java
@@ -20,7 +20,7 @@ package org.apache.causeway.valuetypes.markdown.ui.wkt.components;
 
 import org.apache.wicket.model.IModel;
 
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
 
 public class MarkdownComponentWkt extends MarkupComponent {
 
diff --git a/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java b/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java
index 06793e18ab..6be357a6d0 100644
--- a/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java
+++ b/valuetypes/markdown/ui/wicket/src/main/java/org/apache/causeway/valuetypes/markdown/ui/wkt/components/MarkdownPanelFactoriesWkt.java
@@ -21,10 +21,10 @@ package org.apache.causeway.valuetypes.markdown.ui.wkt.components;
 import org.springframework.stereotype.Component;
 
 import org.apache.causeway.valuetypes.markdown.applib.value.Markdown;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupPanelFactories;
 
 import lombok.val;
 
@@ -47,7 +47,7 @@ public class MarkdownPanelFactoriesWkt {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final PopModel model) {
             val markupComponent = new MarkdownComponentWkt(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git a/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaComponentWkt.java b/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaComponentWkt.java
index 809678d488..f2854524af 100644
--- a/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaComponentWkt.java
+++ b/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaComponentWkt.java
@@ -31,7 +31,7 @@ import org.apache.causeway.valuetypes.vega.applib.value.Vega;
 import org.apache.causeway.valuetypes.vega.ui.wkt.components.js.VegaEmbedJsReference;
 import org.apache.causeway.valuetypes.vega.ui.wkt.components.js.VegaJsReference;
 import org.apache.causeway.valuetypes.vega.ui.wkt.components.js.VegaLiteJsReference;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
@@ -43,7 +43,7 @@ public class VegaComponentWkt extends MarkupComponent {
 
     public VegaComponentWkt(final String id, final IModel<?> model){
         super(id, model,
-                org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent.Options.builder()
+                org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent.Options.builder()
                 .syntaxHighlighter(SyntaxHighlighter.NONE)
                 .build());
     }
diff --git a/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java b/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java
index 2585d3cbe6..3c8c171419 100644
--- a/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java
+++ b/valuetypes/vega/ui/wicket/src/main/java/org/apache/causeway/valuetypes/vega/ui/wkt/components/VegaPanelFactoriesWkt.java
@@ -21,10 +21,10 @@ package org.apache.causeway.valuetypes.vega.ui.wkt.components;
 import org.springframework.stereotype.Component;
 
 import org.apache.causeway.valuetypes.vega.applib.value.Vega;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupPanelFactories;
 
 import lombok.val;
 
@@ -46,7 +46,7 @@ public class VegaPanelFactoriesWkt {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final PopModel model) {
             val markupComponent = new VegaComponentWkt(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git a/viewers/commons/model/src/main/java/module-info.java b/viewers/commons/model/src/main/java/module-info.java
index 5a490287da..277dc93d80 100644
--- a/viewers/commons/model/src/main/java/module-info.java
+++ b/viewers/commons/model/src/main/java/module-info.java
@@ -27,7 +27,7 @@ module org.apache.causeway.viewer.commons.model {
     exports org.apache.causeway.viewer.commons.model.object;
     exports org.apache.causeway.viewer.commons.model.action;
     exports org.apache.causeway.viewer.commons.model.decorators;
-    exports org.apache.causeway.viewer.commons.model.scalar;
+    exports org.apache.causeway.viewer.commons.model.pop;
     exports org.apache.causeway.viewer.commons.model.hints;
 
     requires lombok;
diff --git a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/action/UiActionForm.java b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/action/UiActionForm.java
index 81eb4f94bf..b24beec2fc 100644
--- a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/action/UiActionForm.java
+++ b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/action/UiActionForm.java
@@ -30,7 +30,7 @@ import org.apache.causeway.core.metamodel.object.ManagedObjects;
 import org.apache.causeway.core.metamodel.object.MmTitleUtils;
 import org.apache.causeway.viewer.commons.model.UiModel;
 import org.apache.causeway.viewer.commons.model.mixin.HasTitle;
-import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
+import org.apache.causeway.viewer.commons.model.pop.UiParameter;
 
 import lombok.val;
 
diff --git a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/HasUiParameter.java b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/HasUiParameter.java
similarity index 98%
rename from viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/HasUiParameter.java
rename to viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/HasUiParameter.java
index 5f869f426b..98ea3342f1 100644
--- a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/HasUiParameter.java
+++ b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/HasUiParameter.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.commons.model.scalar;
+package org.apache.causeway.viewer.commons.model.pop;
 
 import java.util.Optional;
 
diff --git a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/HasUiProperty.java b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/HasUiProperty.java
similarity index 97%
rename from viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/HasUiProperty.java
rename to viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/HasUiProperty.java
index 9a3a05eb03..bab77ad0d8 100644
--- a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/HasUiProperty.java
+++ b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/HasUiProperty.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.commons.model.scalar;
+package org.apache.causeway.viewer.commons.model.pop;
 
 import java.util.Optional;
 
diff --git a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiParameter.java b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiParameter.java
similarity index 97%
rename from viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiParameter.java
rename to viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiParameter.java
index 48a733302c..081e48717f 100644
--- a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiParameter.java
+++ b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiParameter.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.commons.model.scalar;
+package org.apache.causeway.viewer.commons.model.pop;
 
 import java.util.Optional;
 
@@ -33,7 +33,7 @@ import org.apache.causeway.core.metamodel.util.Facets;
 
 import lombok.NonNull;
 
-public interface UiParameter extends UiScalar {
+public interface UiParameter extends UiPop {
 
     /** param meta model */
     @Override
diff --git a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiScalar.java b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiPop.java
similarity index 91%
rename from viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiScalar.java
rename to viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiPop.java
index 8cf58b86bf..bdd407c997 100644
--- a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiScalar.java
+++ b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiPop.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.commons.model.scalar;
+package org.apache.causeway.viewer.commons.model.pop;
 
 import java.util.Optional;
 
@@ -31,7 +31,10 @@ import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.UiModel;
 
-public interface UiScalar extends UiModel, HasMetaModelContext {
+/**
+ * PoP .. Property or Parameter
+ */
+public interface UiPop extends UiModel, HasMetaModelContext {
 
     ObjectFeature getMetaModel();
 
@@ -115,12 +118,12 @@ public interface UiScalar extends UiModel, HasMetaModelContext {
         CHOICES,
         AUTO_COMPLETE,
         OBJECT_AUTO_COMPLETE;
-        public static ChoiceProviderSort valueOf(final UiScalar scalarModel) {
-            if (scalarModel.hasChoices()) {
+        public static ChoiceProviderSort valueOf(final UiPop popModel) {
+            if (popModel.hasChoices()) {
                 return ChoiceProviderSort.CHOICES;
-            } else if(scalarModel.hasAutoComplete()) {
+            } else if(popModel.hasAutoComplete()) {
                 return ChoiceProviderSort.AUTO_COMPLETE;
-            } else if(scalarModel.hasObjectAutoComplete()) {
+            } else if(popModel.hasObjectAutoComplete()) {
                 return ChoiceProviderSort.OBJECT_AUTO_COMPLETE;
             }
             return NO_CHOICES;
diff --git a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiProperty.java b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiProperty.java
similarity index 96%
rename from viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiProperty.java
rename to viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiProperty.java
index de569a5cc8..7296966d15 100644
--- a/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/scalar/UiProperty.java
+++ b/viewers/commons/model/src/main/java/org/apache/causeway/viewer/commons/model/pop/UiProperty.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.commons.model.scalar;
+package org.apache.causeway.viewer.commons.model.pop;
 
 import java.util.Optional;
 
@@ -28,7 +28,7 @@ import org.apache.causeway.core.metamodel.interactions.managed.PropertyNegotiati
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation;
 
-public interface UiProperty extends UiScalar {
+public interface UiProperty extends UiPop {
 
     /** prop meta model */
     @Override
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java
index 0cce2ff22e..00ed3cf9be 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/BooleanModel.java
@@ -32,22 +32,22 @@ extends ChainingModel<Boolean> {
 
     private static final long serialVersionUID = 1L;
 
-    public static BooleanModel forScalarModel(final @NonNull ScalarModel scalarModel) {
-        return new BooleanModel(scalarModel);
+    public static BooleanModel forPopModel(final @NonNull PopModel popModel) {
+        return new BooleanModel(popModel);
     }
 
     final boolean isPrimitive;
 
-    protected BooleanModel(final ScalarModel scalarModel) {
-        super(scalarModel);
+    protected BooleanModel(final PopModel popModel) {
+        super(popModel);
 
-        val spec = scalarModel().getScalarTypeSpec();
+        val spec = popModel().getScalarTypeSpec();
         this.isPrimitive = spec.getFullIdentifier().equals("boolean");
     }
 
     @Override
     public Boolean getObject() {
-        val adapter = scalarModel().getObject();
+        val adapter = popModel().getObject();
         final Boolean value = adapter != null
                 ? (Boolean) adapter.getPojo()
                 : null;
@@ -60,12 +60,12 @@ extends ChainingModel<Boolean> {
     @Override
     public void setObject(final Boolean value) {
         val adaptedValue = ManagedObject.value(
-                scalarModel().getScalarTypeSpec(),
+                popModel().getScalarTypeSpec(),
                 (value==null
                     && isPrimitive)
                 ? Boolean.FALSE
                 : value);
-        scalarModel().setObject(adaptedValue);
+        popModel().setObject(adaptedValue);
     }
 
     // -- UTILITY
@@ -95,8 +95,8 @@ extends ChainingModel<Boolean> {
 
     // -- HELPER
 
-    protected ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    protected PopModel popModel() {
+        return (PopModel) super.getTarget();
     }
 
 }
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java
index 0e62307025..18a374d190 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ChainingObjectModel.java
@@ -28,7 +28,7 @@ import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
 
 /**
- * Wraps a {@link ScalarModel} to act as an {@link ObjectAdapterModel}.
+ * Wraps a {@link PopModel} to act as an {@link ObjectAdapterModel}.
  */
 public final class ChainingObjectModel
 extends ChainingModel<ManagedObject>
@@ -36,19 +36,19 @@ implements ObjectAdapterModel {
 
     private static final long serialVersionUID = 1L;
 
-    public static ChainingObjectModel chain(final ScalarModel scalarModel) {
-        return new ChainingObjectModel(scalarModel);
+    public static ChainingObjectModel chain(final PopModel popModel) {
+        return new ChainingObjectModel(popModel);
     }
 
-    private ChainingObjectModel(final ScalarModel scalarModel) {
-        super(scalarModel);
+    private ChainingObjectModel(final PopModel popModel) {
+        super(popModel);
     }
 
     /**
-     * chaining idiom: the {@link ScalarModel} we are chained to
+     * chaining idiom: the {@link PopModel} we are chained to
      */
-    public ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    public PopModel popModel() {
+        return (PopModel) super.getTarget();
     }
 
     /**
@@ -56,17 +56,17 @@ implements ObjectAdapterModel {
      */
     @Override
     public ManagedObject getObject() {
-        return scalarModel().proposedValue().getValue().getValue();
+        return popModel().proposedValue().getValue().getValue();
     }
 
     @Override
     public RenderingHint getRenderingHint() {
-        return scalarModel().getRenderingHint();
+        return popModel().getRenderingHint();
     }
 
     @Override
     public ObjectSpecification getTypeOfSpecification() {
-        return scalarModel().getScalarTypeSpec();
+        return popModel().getScalarTypeSpec();
     }
 
     @Override
@@ -76,8 +76,8 @@ implements ObjectAdapterModel {
 
     @Override
     public boolean isInlinePrompt() {
-        return scalarModel().getPromptStyle().isInlineAny()
-                && !scalarModel().disabledReason().isPresent();
+        return popModel().getPromptStyle().isInlineAny()
+                && !popModel().disabledReason().isPresent();
     }
 
     @Override
@@ -92,7 +92,7 @@ implements ObjectAdapterModel {
 
     @Override
     public MetaModelContext getMetaModelContext() {
-        return scalarModel().getMetaModelContext();
+        return popModel().getMetaModelContext();
     }
 
 }
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java
index 13dff4aec3..ed3d4042bf 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FileUploadModels.java
@@ -35,8 +35,8 @@ import lombok.experimental.UtilityClass;
 @UtilityClass
 public class FileUploadModels {
 
-    public ScalarConvertingModel<List<FileUpload>, Blob> blob(final @NonNull ScalarModel scalarModel) {
-        return new ScalarConvertingModel<List<FileUpload>, Blob>(scalarModel) {
+    public ScalarConvertingModel<List<FileUpload>, Blob> blob(final @NonNull PopModel popModel) {
+        return new ScalarConvertingModel<List<FileUpload>, Blob>(popModel) {
 
             private static final long serialVersionUID = 1L;
 
@@ -67,10 +67,10 @@ public class FileUploadModels {
     }
 
     public ScalarConvertingModel<List<FileUpload>, Clob> clob(
-            final @NonNull ScalarModel scalarModel,
+            final @NonNull PopModel popModel,
             final @NonNull Charset charset) {
 
-        return new ScalarConvertingModel<List<FileUpload>, Clob>(scalarModel) {
+        return new ScalarConvertingModel<List<FileUpload>, Clob>(popModel) {
 
             private static final long serialVersionUID = 1L;
             private final String charsetName = charset.name(); // Charset is not serializable
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java
index 477079706d..45987c34af 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/FormExecutor.java
@@ -24,7 +24,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.form.Form;
 
 /**
- * Passed through the {@link ActionModelImpl} or {@link ScalarModel}, allowing
+ * Passed through the {@link ActionModelImpl} or {@link PopModel}, allowing
  * two different Wicket UI components (eg owning <code>ActionPanel</code> and
  * <code>ActionParametersFormPanel</code> to interact.
  */
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java
index 5dc2828a8c..b58ff7594b 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/InlinePromptContext.java
@@ -36,7 +36,7 @@ public class InlinePromptContext implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    private final ScalarModel scalarModel;
+    private final PopModel popModel;
 
     @Getter
     private final MarkupContainer scalarTypeContainer;
@@ -55,7 +55,7 @@ public class InlinePromptContext implements Serializable {
         .accept(_Functions.noopConsumer(), prop->{
             // reset the UI form input field to the untouched property value
             val untouchedPropertyValue = prop.getManagedProperty().getPropertyValue();
-            scalarModel.setObject(untouchedPropertyValue);
+            popModel.setObject(untouchedPropertyValue);
         });
 
         scalarIfRegular.setVisible(true);
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java
index e8501adee1..f5b1d1c763 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ManagedObjectModel.java
@@ -122,7 +122,7 @@ extends ModelAbstract<ManagedObject> {
     private transient ObjectSpecification elementTypeSpec;
     private transient boolean isObjectSpecMemoized = false;
     /**
-     * @implNote can be overridden by sub-models (eg {@link ScalarModel}) that know the type of
+     * @implNote can be overridden by sub-models (eg {@link PopModel}) that know the type of
      * the adapter without there being one. Overriding this must be consistent
      * with {@link #getLogicalElementType()}
      */
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ObjectAdapterModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ObjectAdapterModel.java
index c9110afb12..3072f6b2ea 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ObjectAdapterModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ObjectAdapterModel.java
@@ -45,7 +45,7 @@ extends
     public default PageParameters getPageParameters() {
         //FIXME
 //        return _HintPageParameterSerializer
-//                .hintStoreToPageParameters(getPageParametersWithoutUiHints(), scalarModel);
+//                .hintStoreToPageParameters(getPageParametersWithoutUiHints(), popModel);
         return getPageParametersWithoutUiHints();
     }
 
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModel.java
similarity index 96%
rename from viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModel.java
rename to viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModel.java
index fabbbdc387..5be3ee954d 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModel.java
@@ -40,7 +40,7 @@ import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.hints.HasRenderingHints;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
-import org.apache.causeway.viewer.commons.model.scalar.UiScalar;
+import org.apache.causeway.viewer.commons.model.pop.UiPop;
 import org.apache.causeway.viewer.wicket.model.value.ConverterBasedOnValueSemantics;
 
 import lombok.Getter;
@@ -49,23 +49,21 @@ import lombok.Setter;
 import lombok.val;
 
 /**
- * Represents a scalar of an entity, either a PROPERTY or
- * a PARAMETER.
- *
+ * Represents either a domain-object PROPERTY or a domain-action PARAMETER.
  * <p>
  * Is the backing model to each of the fields that appear in forms (for entities
  * or action dialogs).
  *
  * @implSpec
  * <pre>
- * ScalarModel --chained-to--> UiObjectWkt
- * ScalarModel --provides--> ManagedObject <--provides-- ManagedValue
+ * PopModel --chained-to--> UiObjectWkt
+ * PopModel --provides--> ManagedObject <--provides-- ManagedValue
  * </pre>
  */
 //@Log4j2
-public abstract class ScalarModel
+public abstract class PopModel
 extends ChainingModel<ManagedObject>
-implements HasRenderingHints, UiScalar, FormExecutorContext {
+implements HasRenderingHints, UiPop, FormExecutorContext {
 
     private static final long serialVersionUID = 1L;
 
@@ -83,7 +81,7 @@ implements HasRenderingHints, UiScalar, FormExecutorContext {
      * object, with the {@link #getObject() value of this model} to be default
      * value (if any) of that action parameter.
      */
-    protected ScalarModel(
+    protected PopModel(
             final UiObjectWkt parentUiObject,
             final ViewOrEditMode viewOrEdit) {
         this(parentUiObject, viewOrEdit, RenderingHint.REGULAR);
@@ -94,7 +92,7 @@ implements HasRenderingHints, UiScalar, FormExecutorContext {
      * {@link #getObject() value of this model} to be current value of the
      * property.
      */
-    protected ScalarModel(
+    protected PopModel(
             final @NonNull UiObjectWkt parentEntityModel,
             final @NonNull ViewOrEditMode viewOrEdit,
             final @NonNull RenderingHint renderingHint) {
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithChoice.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithChoice.java
similarity index 85%
rename from viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithChoice.java
rename to viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithChoice.java
index 59de9d2d99..dacad39cf0 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithChoice.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithChoice.java
@@ -23,18 +23,18 @@ import org.apache.wicket.model.IModel;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.interactions.managed.ManagedValue;
 
-public interface ScalarModelWithChoice<T>
+public interface PopModelWithChoice<T>
 extends
     IModel<T>,
     HasCommonContext {
 
-    ScalarModel scalarModel();
+    PopModel popModel();
 
-    default ManagedValue pendingValue() { return scalarModel().proposedValue(); }
+    default ManagedValue pendingValue() { return popModel().proposedValue(); }
 
     @Override
     default MetaModelContext getMetaModelContext() {
-        return scalarModel().getMetaModelContext();
+        return popModel().getMetaModelContext();
     }
 
 }
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithMultiChoice.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithMultiChoice.java
similarity index 76%
rename from viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithMultiChoice.java
rename to viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithMultiChoice.java
index f5e8f94a3d..6bf9c553ee 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithMultiChoice.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithMultiChoice.java
@@ -35,41 +35,41 @@ import lombok.extern.log4j.Log4j2;
 /**
  * For widgets that use a <tt>org.wicketstuff.select2.Select2MultiChoice</tt>;
  * synchronizes the {@link Model} of the <tt>Select2MultiChoice</tt>
- * with the parent {@link ScalarModel}, allowing also for pending values.
+ * with the parent {@link PopModel}, allowing also for pending values.
  */
 @Log4j2
-public class ScalarModelWithMultiChoice
+public class PopModelWithMultiChoice
 extends ChainingModel<ArrayList<ObjectMemento>>
 implements
-    ScalarModelWithChoice<ArrayList<ObjectMemento>> {
+    PopModelWithChoice<ArrayList<ObjectMemento>> {
 
     private static final long serialVersionUID = 1L;
 
     // -- FACTORY
 
-    public static ScalarModelWithMultiChoice chain(final @NonNull ScalarModel scalarModel) {
-        return new ScalarModelWithMultiChoice(scalarModel);
+    public static PopModelWithMultiChoice chain(final @NonNull PopModel popModel) {
+        return new PopModelWithMultiChoice(popModel);
     }
 
     // -- CONSTRUCTION
 
-    private ScalarModelWithMultiChoice(final ScalarModel scalarModel) {
-        super(scalarModel); // chaining to scalarModel
+    private PopModelWithMultiChoice(final PopModel popModel) {
+        super(popModel); // chaining to popModel
     }
 
     /**
-     * chaining idiom: the {@link ScalarModel} we are chained to
+     * chaining idiom: the {@link PopModel} we are chained to
      */
     @Override
-    public ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    public PopModel popModel() {
+        return (PopModel) super.getTarget();
     }
 
     @Override
     public ArrayList<ObjectMemento> getObject() {
 
         val packedValue = pendingValue().getValue().getValue();
-        val unpackedValues = ManagedObjects.unpack(scalarModel().getScalarTypeSpec(), packedValue);
+        val unpackedValues = ManagedObjects.unpack(popModel().getScalarTypeSpec(), packedValue);
 
         log.debug("getObject() as unpackedValue {}", unpackedValues);
 
@@ -84,7 +84,7 @@ implements
     @Override
     public void setObject(final ArrayList<ObjectMemento> unpackedMemento) {
         log.debug("setObject() as unpackedMemento {}", unpackedMemento);
-        val logicalType = scalarModel().getScalarTypeSpec().getLogicalType();
+        val logicalType = popModel().getScalarTypeSpec().getLogicalType();
         val packedMemento = ObjectMemento.pack(unpackedMemento, logicalType);
         pendingValue().getValue().setValue(getObjectManager().demementify(packedMemento));
     }
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithSingleChoice.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithSingleChoice.java
similarity index 75%
rename from viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithSingleChoice.java
rename to viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithSingleChoice.java
index 9d7f18278d..5b7e74fbe0 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarModelWithSingleChoice.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/PopModelWithSingleChoice.java
@@ -28,34 +28,34 @@ import lombok.NonNull;
 /**
  * For widgets that use a <tt>org.wicketstuff.select2.Select2Choice</tt>;
  * synchronizes the {@link Model} of the <tt>Select2Choice</tt>
- * with the parent {@link ScalarModel}.
+ * with the parent {@link PopModel}.
  */
 //@Log4j2
-public class ScalarModelWithSingleChoice
+public class PopModelWithSingleChoice
 extends ChainingModel<ObjectMemento>
 implements
-    ScalarModelWithChoice<ObjectMemento> {
+    PopModelWithChoice<ObjectMemento> {
 
     private static final long serialVersionUID = 1L;
 
     // -- FACTORY
 
-    public static ScalarModelWithSingleChoice chain(final @NonNull ScalarModel scalarModel) {
-        return new ScalarModelWithSingleChoice(scalarModel);
+    public static PopModelWithSingleChoice chain(final @NonNull PopModel popModel) {
+        return new PopModelWithSingleChoice(popModel);
     }
 
     // -- CONSTRUCTION
 
-    private ScalarModelWithSingleChoice(final ScalarModel scalarModel) {
-        super(scalarModel); // chaining to scalarModel
+    private PopModelWithSingleChoice(final PopModel popModel) {
+        super(popModel); // chaining to popModel
     }
 
     /**
-     * chaining idiom: the {@link ScalarModel} we are chained to
+     * chaining idiom: the {@link PopModel} we are chained to
      */
     @Override
-    public ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    public PopModel popModel() {
+        return (PopModel) super.getTarget();
     }
 
     @Override
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java
index 04077dee0c..5bafcc4dd4 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarConvertingModel.java
@@ -37,23 +37,23 @@ extends ChainingModel<T> {
 
     private static final long serialVersionUID = 1L;
 
-    protected ScalarConvertingModel(final @NonNull ScalarModel scalarModel) {
-        super(scalarModel);
+    protected ScalarConvertingModel(final @NonNull PopModel popModel) {
+        super(popModel);
     }
 
     @Override
     public void setObject(final T modelValue) {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
         val value = toScalarValue(modelValue);
         val objectAdapter = value != null
-                ? scalarModel().getMetaModelContext().getObjectManager().adapt(value)
-                : ManagedObject.empty(scalarModel.getScalarTypeSpec());
-        scalarModel.setObject(objectAdapter);
+                ? popModel().getMetaModelContext().getObjectManager().adapt(value)
+                : ManagedObject.empty(popModel.getScalarTypeSpec());
+        popModel.setObject(objectAdapter);
     }
 
     @Override
     public T getObject() {
-        val adapter = scalarModel().getObject();
+        val adapter = popModel().getObject();
         final V scalarValue = !ManagedObjects.isNullOrUnspecifiedOrEmpty(adapter)
                 ? _Casts.uncheckedCast(adapter.getPojo())
                 : null;
@@ -67,8 +67,8 @@ extends ChainingModel<T> {
 
     // -- HELPER
 
-    protected ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    protected PopModel popModel() {
+        return (PopModel) super.getTarget();
     }
 
 }
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java
index 48deb8407f..ae3e9f7f32 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarParameterModel.java
@@ -25,14 +25,14 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.ActionScope;
 import org.apache.causeway.core.metamodel.spec.feature.MixedIn;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
-import org.apache.causeway.viewer.commons.model.scalar.HasUiParameter;
+import org.apache.causeway.viewer.commons.model.pop.HasUiParameter;
 import org.apache.causeway.viewer.wicket.model.models.interaction.act.UiParameterWkt;
 
 import lombok.Getter;
 import lombok.NonNull;
 
 public class ScalarParameterModel
-extends ScalarModel
+extends PopModel
 implements HasUiParameter {
 
     private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java
index ea4c336ab0..e1677d14c7 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarPropertyModel.java
@@ -25,14 +25,14 @@ import org.apache.causeway.core.metamodel.interactions.managed.ManagedValue;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
-import org.apache.causeway.viewer.commons.model.scalar.HasUiProperty;
+import org.apache.causeway.viewer.commons.model.pop.HasUiProperty;
 import org.apache.causeway.viewer.wicket.model.models.interaction.prop.UiPropertyWkt;
 
 import lombok.Getter;
 import lombok.val;
 
 public class ScalarPropertyModel
-extends ScalarModel
+extends PopModel
 implements HasUiProperty {
 
     private static final long serialVersionUID = 1L;
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java
index 4e9db373ed..1c2ce31cd0 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/ScalarUnwrappingModel.java
@@ -32,7 +32,7 @@ import lombok.val;
 
 /**
  * Wraps and unwraps the contained value within {@link ManagedObject},
- * as provided by a {@link ScalarModel}.
+ * as provided by a {@link PopModel}.
  */
 public class ScalarUnwrappingModel<T>
 extends ChainingModel<T> {
@@ -43,30 +43,30 @@ extends ChainingModel<T> {
 
     public ScalarUnwrappingModel(
             final @NonNull Class<T> type,
-            final @NonNull ScalarModel scalarModel) {
-        super(scalarModel);
+            final @NonNull PopModel popModel) {
+        super(popModel);
         this.type = type;
-        _Assert.assertTrue(scalarModel.getScalarTypeSpec().isAssignableFrom(type), ()->
+        _Assert.assertTrue(popModel.getScalarTypeSpec().isAssignableFrom(type), ()->
                 String.format("cannot possibly unwrap model of type %s into target type %s",
-                        scalarModel.getScalarTypeSpec().getCorrespondingClass(),
+                        popModel.getScalarTypeSpec().getCorrespondingClass(),
                         type));
     }
 
     @Override
     public T getObject() {
-        val objectAdapter = scalarModel().getObject();
+        val objectAdapter = popModel().getObject();
         val pojo = unwrap(objectAdapter);
         return pojo;
     }
 
     @Override
     public void setObject(final T object) {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
         if (object == null) {
-            scalarModel.setObject(null);
+            popModel.setObject(null);
         } else {
-            val objectAdapter = scalarModel.getMetaModelContext().getObjectManager().adapt(object);
-            scalarModel.setObject(objectAdapter);
+            val objectAdapter = popModel.getMetaModelContext().getObjectManager().adapt(object);
+            popModel.setObject(objectAdapter);
         }
     }
 
@@ -82,8 +82,8 @@ extends ChainingModel<T> {
         return _Casts.uncheckedCast(pojo);
     }
 
-    private ScalarModel scalarModel() {
-        return (ScalarModel) super.getTarget();
+    private PopModel popModel() {
+        return (PopModel) super.getTarget();
     }
 
 }
\ No newline at end of file
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
index 7e0fefe2fb..61f75943d1 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/UiObjectWkt.java
@@ -206,26 +206,26 @@ implements
 
     // -- PROPERTY MODELS (CHILDREN)
 
-    private transient Map<PropertyMemento, ScalarPropertyModel> propertyScalarModels;
-    private Map<PropertyMemento, ScalarPropertyModel> propertyScalarModels() {
-        if(propertyScalarModels==null) {
-            propertyScalarModels = _Maps.<PropertyMemento, ScalarPropertyModel>newHashMap();
+    private transient Map<PropertyMemento, ScalarPropertyModel> propertyPopModels;
+    private Map<PropertyMemento, ScalarPropertyModel> propertyPopModels() {
+        if(propertyPopModels==null) {
+            propertyPopModels = _Maps.<PropertyMemento, ScalarPropertyModel>newHashMap();
         }
-        return propertyScalarModels;
+        return propertyPopModels;
     }
 
     /**
      * Lazily populates with the current value of each property.
      */
-    public ScalarModel getPropertyModel(
+    public PopModel getPropertyModel(
             final OneToOneAssociation property,
             final ViewOrEditMode viewOrEdit,
             final RenderingHint renderingHint) {
 
         val pm = property.getMemento();
-        val propertyScalarModels = propertyScalarModels();
-        final ScalarModel existingScalarModel = propertyScalarModels.get(pm);
-        if (existingScalarModel == null) {
+        val propertyPopModels = propertyPopModels();
+        final PopModel existingPopModel = propertyPopModels.get(pm);
+        if (existingPopModel == null) {
 
             val propertyInteractionModel = new PropertyInteractionWkt(
                     bookmarkedObjectModel(),
@@ -234,16 +234,16 @@ implements
 
             final long modelsAdded = propertyInteractionModel.streamPropertyUiModels()
             .map(uiModel->ScalarPropertyModel.wrap(uiModel, viewOrEdit, renderingHint))
-            .peek(scalarModel->log.debug("adding: {}", scalarModel))
-            .filter(scalarModel->propertyScalarModels.put(pm, scalarModel)==null)
+            .peek(popModel->log.debug("adding: {}", popModel))
+            .filter(popModel->propertyPopModels.put(pm, popModel)==null)
             .count();
 
             // future extensions might allow to add multiple UI models per single property model (typed tuple support)
             _Assert.assertEquals(1L, modelsAdded, ()->
-                String.format("unexpected number of propertyScalarModels added %d", modelsAdded));
+                String.format("unexpected number of propertyPopModels added %d", modelsAdded));
 
         }
-        return propertyScalarModels.get(pm);
+        return propertyPopModels.get(pm);
 
     }
 
@@ -278,10 +278,10 @@ implements
 
     @Override
     protected void onDetach() {
-        propertyScalarModels().values()
+        propertyPopModels().values()
             .forEach(ScalarPropertyModel::detach);
         super.onDetach();
-        propertyScalarModels = null;
+        propertyPopModels = null;
     }
 
     // -- TAB AND COLUMN (metadata if any)
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java
index 3d4fd24cee..131d2a1909 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/_Xray.java
@@ -32,14 +32,14 @@ import lombok.experimental.UtilityClass;
 final class _Xray {
 
     static void onSclarModelUpdate(
-            final ScalarModel scalarModel, final ManagedObject oldValue, final ManagedObject newValue) {
+            final PopModel popModel, final ManagedObject oldValue, final ManagedObject newValue) {
         if(!XrayUi.isXrayEnabled()) return;
 
         val oldPojo = MmUnwrapUtils.single(oldValue);
         val newPojo = MmUnwrapUtils.single(newValue);
         val changed = !Objects.equals(oldPojo, newPojo);
 
-        final String updatingWhat = scalarModel.getSpecialization()
+        final String updatingWhat = popModel.getSpecialization()
                 .fold(
                     param->
                         String.format("param[index=%d,name=%s,changed=%b]",
@@ -51,7 +51,7 @@ final class _Xray {
                     );
 
         _XrayEvent.user("%s Model - updating %s: %s -> %s",
-                scalarModel.isParameter() ? "Parameter" : "Property",
+                popModel.isParameter() ? "Parameter" : "Property",
                 updatingWhat,
                 oldPojo, newPojo);
     }
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/act/UiParameterWkt.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/act/UiParameterWkt.java
index b67827a8df..6d8683d629 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/act/UiParameterWkt.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/act/UiParameterWkt.java
@@ -27,7 +27,7 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.causeway.viewer.commons.model.object.HasUiParentObject;
 import org.apache.causeway.viewer.commons.model.object.UiObject;
-import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
+import org.apache.causeway.viewer.commons.model.pop.UiParameter;
 import org.apache.causeway.viewer.wicket.model.models.HasCommonContext;
 
 import lombok.NonNull;
diff --git a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/prop/UiPropertyWkt.java b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/prop/UiPropertyWkt.java
index 1fd44636f6..005575555b 100644
--- a/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/prop/UiPropertyWkt.java
+++ b/viewers/wicket/model/src/main/java/org/apache/causeway/viewer/wicket/model/models/interaction/prop/UiPropertyWkt.java
@@ -27,7 +27,7 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.causeway.viewer.commons.model.object.HasUiParentObject;
 import org.apache.causeway.viewer.commons.model.object.UiObject;
-import org.apache.causeway.viewer.commons.model.scalar.UiProperty;
+import org.apache.causeway.viewer.commons.model.pop.UiProperty;
 import org.apache.causeway.viewer.wicket.model.models.HasCommonContext;
 
 /**
diff --git a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForReferencesTest.java b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForReferencesTest.java
index d0b54eedc1..45d3057420 100644
--- a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForReferencesTest.java
+++ b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForReferencesTest.java
@@ -52,7 +52,7 @@ class ChoiceProviderForReferencesTest extends ChoiceProviderTestAbstract {
                 .map(mmc.getObjectManager()::adapt);
 
         val isRequired = true;
-        val choiceProvider = new ChoiceProviderForReferences(mockScalarModel(choices, isRequired));
+        val choiceProvider = new ChoiceProviderForReferences(mockPopModel(choices, isRequired));
 
         val response = new Response<ObjectMemento>();
         choiceProvider.query(null, 0, response);
diff --git a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForValuesTest.java b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForValuesTest.java
index 466e7f9512..8dd3edbbcb 100644
--- a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForValuesTest.java
+++ b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderForValuesTest.java
@@ -55,7 +55,7 @@ extends ChoiceProviderTestAbstract {
                 .map(mmc.getObjectManager()::adapt);
 
         val isRequired = true;
-        val choiceProvider = new ChoiceProviderForValues(mockScalarModel(choices, isRequired));
+        val choiceProvider = new ChoiceProviderForValues(mockPopModel(choices, isRequired));
 
         val response = new Response<ObjectMemento>();
         choiceProvider.query(null, 0, response);
diff --git a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java
index c65fb3bcc3..22f0149a73 100644
--- a/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java
+++ b/viewers/wicket/ui-test/src/test/java/org/apache/causeway/viewer/wicket/ui/test/components/widgets/choices/ChoiceProviderTestAbstract.java
@@ -29,7 +29,7 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.valuesemantics.BigDecimalValueSemantics;
 import org.apache.causeway.core.metamodel.valuesemantics.IntValueSemantics;
 import org.apache.causeway.core.metamodel.valuesemantics.UUIDValueSemantics;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 import lombok.val;
 
@@ -47,13 +47,13 @@ abstract class ChoiceProviderTestAbstract {
                 ;
     }
 
-    protected ScalarModel mockScalarModel(final Can<ManagedObject> choices, final boolean isRequired) {
-        val mockScalarModel = mock(ScalarModel.class);
-        when(mockScalarModel.getChoices()).thenReturn(choices);
-        when(mockScalarModel.isRequired()).thenReturn(isRequired);
-        when(mockScalarModel.hasChoices()).thenReturn(true);
-        when(mockScalarModel.getMetaModelContext()).thenReturn(mmc);
-        return mockScalarModel;
+    protected PopModel mockPopModel(final Can<ManagedObject> choices, final boolean isRequired) {
+        val mockPopModel = mock(PopModel.class);
+        when(mockPopModel.getChoices()).thenReturn(choices);
+        when(mockPopModel.isRequired()).thenReturn(isRequired);
+        when(mockPopModel.hasChoices()).thenReturn(true);
+        when(mockPopModel.getMetaModelContext()).thenReturn(mmc);
+        return mockPopModel;
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/module-info.java b/viewers/wicket/ui/src/main/java/module-info.java
index 599fffc521..1bfd668579 100644
--- a/viewers/wicket/ui/src/main/java/module-info.java
+++ b/viewers/wicket/ui/src/main/java/module-info.java
@@ -21,7 +21,7 @@ module org.apache.causeway.viewer.wicket.ui {
     exports org.apache.causeway.viewer.wicket.ui.components.entity.header;
     exports org.apache.causeway.viewer.wicket.ui.components.widgets.select2;
     exports org.apache.causeway.viewer.wicket.ui.pages.common.datatables;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.blobclob;
     exports org.apache.causeway.viewer.wicket.ui.components.widgets.linkandlabel;
     exports org.apache.causeway.viewer.wicket.ui.util;
     exports org.apache.causeway.viewer.wicket.ui.pages.common.serversentevents.js;
@@ -30,7 +30,7 @@ module org.apache.causeway.viewer.wicket.ui {
     exports org.apache.causeway.viewer.wicket.ui.panels;
     exports org.apache.causeway.viewer.wicket.ui.components.collectioncontents.summary;
     exports org.apache.causeway.viewer.wicket.ui.pages.error;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.composite;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.composite;
     exports org.apache.causeway.viewer.wicket.ui.components.actionmenu.serviceactions;
     exports org.apache.causeway.viewer.wicket.ui.pages.common.fontawesome;
     exports org.apache.causeway.viewer.wicket.ui.components.propertyheader;
@@ -40,19 +40,19 @@ module org.apache.causeway.viewer.wicket.ui {
     exports org.apache.causeway.viewer.wicket.ui.components.property;
     exports org.apache.causeway.viewer.wicket.ui.pages.common.bootstrap.css;
     exports org.apache.causeway.viewer.wicket.ui.components.empty;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.passwd;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.passwd;
     exports org.apache.causeway.viewer.wicket.ui.components.footer;
     exports org.apache.causeway.viewer.wicket.ui.app.registry;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.image;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.image;
     exports org.apache.causeway.viewer.wicket.ui.components.standalonecollection;
     exports org.apache.causeway.viewer.wicket.ui.components.header;
     exports org.apache.causeway.viewer.wicket.ui.pages.common.viewer.js;
     exports org.apache.causeway.viewer.wicket.ui.components.widgets.zclip;
     exports org.apache.causeway.viewer.wicket.ui.components.entity.icontitle;
     exports org.apache.causeway.viewer.wicket.ui.components.tree;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.choices;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.choices;
     exports org.apache.causeway.viewer.wicket.ui.components.layout.bs.tabs;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.datepicker;
     exports org.apache.causeway.viewer.wicket.ui.pages.login;
     exports org.apache.causeway.viewer.wicket.ui.components;
     exports org.apache.causeway.viewer.wicket.ui.components.unknown;
@@ -60,13 +60,13 @@ module org.apache.causeway.viewer.wicket.ui {
     exports org.apache.causeway.viewer.wicket.ui.components.collection.selector;
     exports org.apache.causeway.viewer.wicket.ui.components.actionpromptsb;
     exports org.apache.causeway.viewer.wicket.ui.components.about;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.string;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.string;
     exports org.apache.causeway.viewer.wicket.ui.components.widgets.breadcrumbs;
     exports org.apache.causeway.viewer.wicket.ui.components.bookmarkedpages;
     exports org.apache.causeway.viewer.wicket.ui.pages.common.livequery.js;
     exports org.apache.causeway.viewer.wicket.ui.pages.voidreturn;
     exports org.apache.causeway.viewer.wicket.ui.pages.accmngt.password_reset;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops;
     exports org.apache.causeway.viewer.wicket.ui.pages;
     exports org.apache.causeway.viewer.wicket.ui.components.widgets.navbar;
     exports org.apache.causeway.viewer.wicket.ui.components.actionmenu.entityactions;
@@ -79,7 +79,7 @@ module org.apache.causeway.viewer.wicket.ui {
     exports org.apache.causeway.viewer.wicket.ui.components.actioninfo;
     exports org.apache.causeway.viewer.wicket.ui.components.collection.bulk;
     exports org.apache.causeway.viewer.wicket.ui.pages.entity;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.bool;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.bool;
     exports org.apache.causeway.viewer.wicket.ui.pages.accmngt.register;
     exports org.apache.causeway.viewer.wicket.ui.components.collectioncontents.ajaxtable;
     exports org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers;
@@ -98,7 +98,7 @@ module org.apache.causeway.viewer.wicket.ui {
     exports org.apache.causeway.viewer.wicket.ui.pages.accmngt.signup;
     exports org.apache.causeway.viewer.wicket.ui.validation;
     exports org.apache.causeway.viewer.wicket.ui.components.actionprompt;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.markup;
     exports org.apache.causeway.viewer.wicket.ui.pages.about;
     exports org.apache.causeway.viewer.wicket.ui.components.actionmenu;
     exports org.apache.causeway.viewer.wicket.ui.pages.value;
@@ -111,7 +111,7 @@ module org.apache.causeway.viewer.wicket.ui {
     exports org.apache.causeway.viewer.wicket.ui.components.collectioncontents.icons;
     exports org.apache.causeway.viewer.wicket.ui.components.widgets.formcomponent;
     exports org.apache.causeway.viewer.wicket.ui.components.entity.collection;
-    exports org.apache.causeway.viewer.wicket.ui.components.scalars.value.fallback;
+    exports org.apache.causeway.viewer.wicket.ui.components.pops.value.fallback;
     exports org.apache.causeway.viewer.wicket.ui.components.actions;
 
     requires com.fasterxml.jackson.core;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelFactory.java
index fa9111179d..4d5f670a34 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actionmenu/entityactions/LinkAndLabelFactory.java
@@ -29,7 +29,7 @@ import org.apache.causeway.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
 import org.apache.causeway.viewer.wicket.model.models.ActionModelImpl;
 import org.apache.causeway.viewer.wicket.model.models.EntityCollectionModelParented;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ScalarParameterModel;
 import org.apache.causeway.viewer.wicket.model.models.ScalarPropertyModel;
 import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
@@ -79,10 +79,10 @@ extends Function<ObjectAction, LinkAndLabel> {
     }
 
     public static LinkAndLabelFactory forPropertyOrParameter(
-            final ScalarModel scalarModel) {
-        return scalarModel instanceof ScalarPropertyModel
-                ? forProperty((ScalarPropertyModel)scalarModel)
-                : forParameter((ScalarParameterModel)scalarModel);
+            final PopModel popModel) {
+        return popModel instanceof ScalarPropertyModel
+                ? forProperty((ScalarPropertyModel)popModel)
+                : forParameter((ScalarParameterModel)popModel);
     }
 
     public static LinkAndLabelFactory forProperty(
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actions/ActionParametersForm.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actions/ActionParametersForm.java
index 3763acf784..5b29b9237d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actions/ActionParametersForm.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/actions/ActionParametersForm.java
@@ -33,13 +33,13 @@ import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.commons.model.decorators.ConfirmDecorator.ConfirmDecorationModel;
 import org.apache.causeway.viewer.commons.model.layout.UiPlacementDirection;
-import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
+import org.apache.causeway.viewer.commons.model.pop.UiParameter;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
 import org.apache.causeway.viewer.wicket.model.models.ScalarParameterModel;
 import org.apache.causeway.viewer.wicket.model.models.ScalarPropertyModel;
 import org.apache.causeway.viewer.wicket.model.models.interaction.act.UiParameterWkt;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract.Repaint;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract.Repaint;
 import org.apache.causeway.viewer.wicket.ui.panels.PromptFormAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktDecorators;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/CollectionPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/CollectionPanel.java
index c675ef2c44..c2798f0f21 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/CollectionPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collection/CollectionPanel.java
@@ -31,7 +31,7 @@ import org.apache.causeway.viewer.wicket.ui.components.collection.bulk.Multisele
 import org.apache.causeway.viewer.wicket.ui.components.collection.selector.CollectionPresentationSelectorPanel;
 import org.apache.causeway.viewer.wicket.ui.components.collection.selector.CollectionPresentationSelectorProvider;
 import org.apache.causeway.viewer.wicket.ui.components.collectioncontents.ajaxtable.columns.GenericToggleboxColumn;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericPropertyColumn.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericPropertyColumn.java
index f32445d18f..10e24dee1c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericPropertyColumn.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/GenericPropertyColumn.java
@@ -111,14 +111,14 @@ extends GenericColumnAbstract {
         val property = domainObject.getSpecification().getPropertyElseFail(propertyId);
         val entityModel = UiObjectWkt.ofAdapter(super.getMetaModelContext(), domainObject);
 
-        val scalarModel = entityModel
+        val popModel = entityModel
                 .getPropertyModel(
                         property,
                         ViewOrEditMode.VIEWING,
                         collectionVariant.getColumnRenderingHint());
 
-        return findComponentFactory(UiComponentType.SCALAR_NAME_AND_VALUE, scalarModel)
-                .createComponent(id, scalarModel);
+        return findComponentFactory(UiComponentType.SCALAR_NAME_AND_VALUE, popModel)
+                .createComponent(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
index 610753d9f7..9dfa567513 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/fieldset/PropertyGroup.java
@@ -40,11 +40,11 @@ import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
 import org.apache.causeway.viewer.wicket.model.links.LinkAndLabel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
 import org.apache.causeway.viewer.wicket.ui.components.actionmenu.entityactions.AdditionalLinksPanel;
 import org.apache.causeway.viewer.wicket.ui.components.actionmenu.entityactions.LinkAndLabelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.panels.HasDynamicallyVisibleContent;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -225,14 +225,14 @@ implements HasDynamicallyVisibleContent {
             final WebMarkupContainer container,
             final Consumer<LinkAndLabel> onAssociatedAction) {
 
-        final ScalarModel scalarModel =
+        final PopModel popModel =
                 entityModel.getPropertyModel(property, ViewOrEditMode.VIEWING, RenderingHint.REGULAR);
 
         final Component scalarNameAndValueComponent = getComponentFactoryRegistry()
-                .addOrReplaceComponent(container, ID_PROPERTY, UiComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
+                .addOrReplaceComponent(container, ID_PROPERTY, UiComponentType.SCALAR_NAME_AND_VALUE, popModel);
 //XXX[CAUSEWAY-3026] this is a bad idea
 //        if(scalarNameAndValueComponent instanceof MarkupContainer) {
-//            Wkt.cssAppend(scalarNameAndValueComponent, scalarModel.getIdentifier());
+//            Wkt.cssAppend(scalarNameAndValueComponent, popModel.getIdentifier());
 //        }
 
         val entity = entityModel.getManagedObject();
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
index 0718978db9..fffcda7e5d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanelFactory.java
@@ -26,7 +26,7 @@ import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.wicket.model.models.ChainingObjectModel;
 import org.apache.causeway.viewer.wicket.model.models.ObjectAdapterModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
@@ -36,9 +36,9 @@ import lombok.val;
  * {@link ComponentFactory} for {@link EntityIconAndTitlePanel}.
  *
  * @implNote Knows how to deal with {@link ObjectAdapterModel}. And for
- * {@link ScalarModel} we have an adapter {@link ChainingObjectModel}
+ * {@link PopModel} we have an adapter {@link ChainingObjectModel}
  * that implements {@link ObjectAdapterModel}, such that it can also deal
- * with {@link ScalarModel}.
+ * with {@link PopModel}.
  *
  */
 public class EntityIconAndTitlePanelFactory extends ComponentFactoryAbstract {
@@ -71,8 +71,8 @@ public class EntityIconAndTitlePanelFactory extends ComponentFactoryAbstract {
 
         if (model instanceof ObjectAdapterModel) {
             spec = ((ObjectAdapterModel) model).getTypeOfSpecification();
-        } else if (model instanceof ScalarModel) {
-            spec = ((ScalarModel) model).getScalarTypeSpec();
+        } else if (model instanceof PopModel) {
+            spec = ((PopModel) model).getScalarTypeSpec();
         } else {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
@@ -90,10 +90,10 @@ public class EntityIconAndTitlePanelFactory extends ComponentFactoryAbstract {
 
         if (model instanceof ObjectAdapterModel) {
             objectAdapterModel = (ObjectAdapterModel) model;
-        } else if (model instanceof ScalarModel) {
-            val scalarModel = (ScalarModel) model;
-            // effectively acts as an adapter from ScalarModel to ObjectAdapterModel
-            objectAdapterModel = ChainingObjectModel.chain(scalarModel);
+        } else if (model instanceof PopModel) {
+            val popModel = (PopModel) model;
+            // effectively acts as an adapter from PopModel to ObjectAdapterModel
+            objectAdapterModel = ChainingObjectModel.chain(popModel);
         } else {
             throw _Exceptions.unexpectedCodeReach();
         }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ComponentFactoryScalarAbstract.java
similarity index 78%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ComponentFactoryScalarAbstract.java
index 29cd988e64..007dc5cff4 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ComponentFactoryScalarAbstract.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
 public abstract class ComponentFactoryScalarAbstract
@@ -37,18 +37,18 @@ extends ComponentFactoryAbstract {
 
     @Override
     public final Component createComponent(final String id, final IModel<?> model) {
-        return createComponent(id, (ScalarModel) model);
+        return createComponent(id, (PopModel) model);
     }
 
     @Override
     public final ApplicationAdvice appliesTo(final IModel<?> model) {
-        if (!(model instanceof ScalarModel)) {
+        if (!(model instanceof PopModel)) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
-        return appliesTo((ScalarModel)model);
+        return appliesTo((PopModel)model);
     }
 
-    protected abstract Component createComponent(String id, ScalarModel scalarModel);
-    protected abstract ApplicationAdvice appliesTo(ScalarModel scalarModel);
+    protected abstract Component createComponent(String id, PopModel popModel);
+    protected abstract ApplicationAdvice appliesTo(PopModel popModel);
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarTypeConstrainedAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ComponentFactoryScalarTypeConstrainedAbstract.java
similarity index 80%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarTypeConstrainedAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ComponentFactoryScalarTypeConstrainedAbstract.java
index 4fff995ec0..222c06b7fa 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ComponentFactoryScalarTypeConstrainedAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ComponentFactoryScalarTypeConstrainedAbstract.java
@@ -16,10 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 import lombok.Getter;
 
@@ -29,7 +29,7 @@ extends ComponentFactoryScalarAbstract {
     private static final long serialVersionUID = 1L;
 
     /**
-     * Provides discrimination based on {@link ScalarModel#isScalarTypeAnyOf(Can)}.
+     * Provides discrimination based on {@link PopModel#isScalarTypeAnyOf(Can)}.
      * <p>
      * If empty, no type constraints are applied.
      */
@@ -51,17 +51,17 @@ extends ComponentFactoryScalarAbstract {
 
 
     @Override
-    protected final ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
+    protected final ApplicationAdvice appliesTo(final PopModel popModel) {
 
         // discriminates based on given scalarTypes, if any
         if(scalarTypes.isNotEmpty()
-                && !scalarModel.isScalarTypeAnyOf(scalarTypes)) {
+                && !popModel.isScalarTypeAnyOf(scalarTypes)) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
 
         // if has any choices, use select-2 component instead
-        return appliesIf( !scalarModel.hasChoices()
-                && !scalarModel.hasAutoComplete() );
+        return appliesIf( !popModel.hasChoices()
+                && !popModel.hasAutoComplete() );
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelChangeDispatcher.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/PopModelChangeDispatcher.java
similarity index 88%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelChangeDispatcher.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/PopModelChangeDispatcher.java
index 85e7b874d8..0002301de1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelChangeDispatcher.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/PopModelChangeDispatcher.java
@@ -16,16 +16,16 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
 import lombok.NonNull;
 import lombok.val;
 
-public interface ScalarModelChangeDispatcher {
+public interface PopModelChangeDispatcher {
 
-    @NonNull Iterable<ScalarModelChangeListener> getChangeListeners();
+    @NonNull Iterable<PopModelChangeListener> getChangeListeners();
     @NonNull ScalarPanelAbstract getScalarPanel();
 
     default void notifyUpdate(final AjaxRequestTarget target) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelChangeListener.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/PopModelChangeListener.java
similarity index 90%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelChangeListener.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/PopModelChangeListener.java
index 1c5722686d..9961a6a9aa 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelChangeListener.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/PopModelChangeListener.java
@@ -16,11 +16,11 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
-public interface ScalarModelChangeListener {
+public interface PopModelChangeListener {
 
     void onUpdate(AjaxRequestTarget target, ScalarPanelAbstract scalarPanel);
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarFragmentFactory.java
similarity index 99%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarFragmentFactory.java
index 3466348ee7..dafbc468dd 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarFragmentFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarFragmentFactory.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.Optional;
 import java.util.function.Consumer;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelDefaultChangeBehavior.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarModelDefaultChangeBehavior.java
similarity index 78%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelDefaultChangeBehavior.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarModelDefaultChangeBehavior.java
index 9b81f6d886..6f562a92d4 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarModelDefaultChangeBehavior.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarModelDefaultChangeBehavior.java
@@ -16,30 +16,30 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 
-class ScalarModelDefaultChangeBehavior extends AjaxFormComponentUpdatingBehavior {
+class PopModelDefaultChangeBehavior extends AjaxFormComponentUpdatingBehavior {
     private static final long serialVersionUID = 1L;
 
     private final ScalarPanelAbstract scalarPanel;
 
-    ScalarModelDefaultChangeBehavior(final ScalarPanelAbstract scalarPanel) {
+    PopModelDefaultChangeBehavior(final ScalarPanelAbstract scalarPanel) {
         super("change");
         this.scalarPanel = scalarPanel;
     }
 
     @Override
     protected void onUpdate(final AjaxRequestTarget target) {
-        scalarPanel.getScalarModelChangeDispatcher().notifyUpdate(target);
+        scalarPanel.getPopModelChangeDispatcher().notifyUpdate(target);
     }
 
     @Override
     protected void onError(final AjaxRequestTarget target, final RuntimeException e) {
         super.onError(target, e);
-        scalarPanel.getScalarModelChangeDispatcher().notifyError(target);
+        scalarPanel.getPopModelChangeDispatcher().notifyError(target);
     }
 
 }
\ No newline at end of file
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAbstract.java
similarity index 84%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAbstract.java
index 12f7a94ce4..9f74262e9a 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAbstract.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.io.Serializable;
 import java.util.Collections;
@@ -50,16 +50,16 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.commons.model.decorators.FormLabelDecorator.FormLabelDecorationModel;
-import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
+import org.apache.causeway.viewer.commons.model.pop.UiParameter;
 import org.apache.causeway.viewer.wicket.model.links.LinkAndLabel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.components.actionmenu.entityactions.AdditionalLinksPanel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.RegularFrame;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob.CausewayBlobOrClobPanelAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.bool.BooleanPanel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.choices.ObjectChoicesSelect2Panel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.choices.ValueChoicesSelect2Panel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FrameFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.RegularFrame;
+import org.apache.causeway.viewer.wicket.ui.components.pops.blobclob.CausewayBlobOrClobPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.bool.BooleanPanel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.choices.ObjectChoicesSelect2Panel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.choices.ValueChoicesSelect2Panel;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt.EventTopic;
@@ -76,8 +76,8 @@ import lombok.Value;
 import lombok.val;
 
 public abstract class ScalarPanelAbstract
-extends PanelAbstract<ManagedObject, ScalarModel>
-implements ScalarModelChangeListener {
+extends PanelAbstract<ManagedObject, PopModel>
+implements PopModelChangeListener {
 
     private static final long serialVersionUID = 1L;
 
@@ -129,31 +129,31 @@ implements ScalarModelChangeListener {
                 || this==CAN_EDIT_INLINE_VIA_ACTION; }
 
         static RenderScenario inferFrom(final ScalarPanelAbstract scalarPanel) {
-            val scalarModel = scalarPanel.scalarModel();
-            if(!scalarModel.getRenderingHint().isRegular()) {
+            val popModel = scalarPanel.popModel();
+            if(!popModel.getRenderingHint().isRegular()) {
                 return COMPACT;
             }
-            if(scalarModel.isParameter()
+            if(popModel.isParameter()
                     && !(scalarPanel instanceof ScalarPanelSelectAbstract)
-                    && scalarModel.disabledReason().isPresent()) {
+                    && popModel.disabledReason().isPresent()) {
                 /* this simple logic only applies for params, as those don't support inline-as-if-edit
                  * however, our select2 component does not allow for dynamic switching of usability,
                  * so it must not be initialized readonly here */
                 return READONLY;
             }
-            if(scalarModel.isEditingMode()) {
+            if(popModel.isEditingMode()) {
                 return
-                        _Util.canParameterEnterNestedEdit(scalarModel)
+                        _Util.canParameterEnterNestedEdit(popModel)
                         ? EDITING_WITH_LINK_TO_NESTED // nested/embedded dialog
                         : EDITING;
             }
-            if(_Util.canPropertyEnterInlineEditDirectly(scalarModel)) {
+            if(_Util.canPropertyEnterInlineEditDirectly(popModel)) {
                 return CAN_EDIT_INLINE;
             }
-            if(_Util.lookupPropertyActionForInlineEdit(scalarModel).isPresent()) {
+            if(_Util.lookupPropertyActionForInlineEdit(popModel).isPresent()) {
                 return CAN_EDIT_INLINE_VIA_ACTION;
             }
-            return scalarModel.disabledReason().isPresent()
+            return popModel.disabledReason().isPresent()
                     ? READONLY
                     : CAN_EDIT;
         }
@@ -161,7 +161,7 @@ implements ScalarModelChangeListener {
     }
 
     /**
-     * During AJAX requests, first the {@link ScalarModel} gets updated,
+     * During AJAX requests, first the {@link PopModel} gets updated,
      * then later, changed components get a chance to participate in the partial page update
      * based on whether their models have changed.
      * <p>
@@ -190,7 +190,7 @@ implements ScalarModelChangeListener {
     /**
      * Identical to super.getModel()
      */
-    public final ScalarModel scalarModel() {
+    public final PopModel popModel() {
         return super.getModel();
     }
 
@@ -242,8 +242,8 @@ implements ScalarModelChangeListener {
 
     // -- CONSTRUCTION
 
-    protected ScalarPanelAbstract(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    protected ScalarPanelAbstract(final String id, final PopModel popModel) {
+        super(id, popModel);
 
         val formatModifiers = EnumSet.noneOf(FormatModifier.class);
         setupFormatModifiers(formatModifiers);
@@ -279,12 +279,12 @@ implements ScalarModelChangeListener {
      */
     private void buildGui() {
 
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
         scalarFrameContainer = Wkt.containerAdd(this, ID_SCALAR_TYPE_CONTAINER);
         Wkt.cssAppend(scalarFrameContainer, getCssClassName());
 
-        switch(scalarModel.getRenderingHint()) {
+        switch(popModel.getRenderingHint()) {
         case REGULAR:
             regularFrame = Wkt.ajaxEnable(createRegularFrame());
             compactFrame = createShallowCompactFrame();
@@ -294,7 +294,7 @@ implements ScalarModelChangeListener {
             scalarFrameContainer.addOrReplace(compactFrame, regularFrame,
                     formFrame = createFormFrame());
 
-            val associatedLinksAndLabels = _Util.associatedLinksAndLabels(scalarModel);
+            val associatedLinksAndLabels = _Util.associatedLinksAndLabels(popModel);
             addPositioningCssTo(regularFrame, associatedLinksAndLabels);
             addActionLinksBelowAndRight(regularFrame, associatedLinksAndLabels);
 
@@ -316,14 +316,14 @@ implements ScalarModelChangeListener {
         }
 
         // prevent from tabbing into non-editable widgets.
-        if(_Util.isPropertyWithEnterEditNotAvailable(scalarModel)) {
+        if(_Util.isPropertyWithEnterEditNotAvailable(popModel)) {
             Wkt.noTabbing(getValidationFeedbackReceiver());
         }
 
         addCssFromMetaModel();
 
         addChangeListener(this);
-        installScalarModelChangeBehavior();
+        installPopModelChangeBehavior();
     }
 
     protected abstract void setupInlinePrompt();
@@ -358,7 +358,7 @@ implements ScalarModelChangeListener {
      * <p>Is added to {@link #getScalarFrameContainer()}.
      */
     protected WebMarkupContainer createFormFrame() {
-        val isRegular = scalarModel().getRenderingHint().isRegular();
+        val isRegular = popModel().getRenderingHint().isRegular();
         return (WebMarkupContainer)FrameFragment.INLINE_PROMPT_FORM
                 .createComponent(WebMarkupContainer::new)
                 .setVisible(false)
@@ -373,7 +373,7 @@ implements ScalarModelChangeListener {
                     getScalarFrameContainer(),
                     FrameFragment.INLINE_PROMPT_FORM.getContainerId(),
                     UiComponentType.PROPERTY_EDIT_FORM,
-                    scalarModel());
+                    popModel());
 
         getRegularFrame().setVisible(false);
         getFormFrame().setVisible(true);
@@ -383,9 +383,9 @@ implements ScalarModelChangeListener {
 
     private void callHooks() {
 
-        var scalarModel = scalarModel();
+        var popModel = popModel();
 
-        if (scalarModel.disabledReason().isPresent()) {
+        if (popModel.disabledReason().isPresent()) {
 
             /*
              * Whether this model should be surfaced in the UI using a widget rendered such that it is either already in
@@ -395,23 +395,23 @@ implements ScalarModelChangeListener {
              * <tt>true</tt> if the widget for this model must be editable.
              */
             final boolean isOrCanBeSwitchedToEditable =
-                    scalarModel.isEditingMode()
-                        || scalarModel.isParameter()
-                        || scalarModel.hasAssociatedActionWithInlineAsIfEdit();
+                    popModel.isEditingMode()
+                        || popModel.isParameter()
+                        || popModel.hasAssociatedActionWithInlineAsIfEdit();
 
             if(isOrCanBeSwitchedToEditable) {
                 onInitializeNotEditable();
             } else {
 
-                final String disabledReason = scalarModel.disabledReason()
+                final String disabledReason = popModel.disabledReason()
                         .flatMap(InteractionVeto::getReasonAsString)
                         .orElseThrow(()->_Exceptions
-                                .unrecoverable("framework bug: ScalarModel indicates it has a disabled-reason, yet its empty"));
+                                .unrecoverable("framework bug: PopModel indicates it has a disabled-reason, yet its empty"));
 
                 onInitializeReadonly(disabledReason);
             }
         } else {
-            if (scalarModel.isViewingMode()) {
+            if (popModel.isViewingMode()) {
                 onInitializeNotEditable();
             } else {
                 onInitializeEditable();
@@ -445,11 +445,11 @@ implements ScalarModelChangeListener {
     protected abstract void onMakeEditable();
 
     private void addCssFromMetaModel() {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
-        Wkt.cssAppend(this, scalarModel.getCssClass());
+        Wkt.cssAppend(this, popModel.getCssClass());
 
-        Facets.cssClass(scalarModel.getMetaModel(), scalarModel.getParentUiModel().getManagedObject())
+        Facets.cssClass(popModel.getMetaModel(), popModel.getParentUiModel().getManagedObject())
         .ifPresent(cssClass->
             Wkt.cssAppend(this, cssClass));
     }
@@ -468,22 +468,22 @@ implements ScalarModelChangeListener {
      */
     @Override
     protected void onConfigure() {
-        final boolean hidden = scalarModel().whetherHidden();
+        final boolean hidden = popModel().whetherHidden();
         setVisibilityAllowed(!hidden);
         super.onConfigure();
     }
 
     // //////////////////////////////////////
 
-    protected void installScalarModelChangeBehavior() {
-        addOrReplaceBehavoir(ScalarModelDefaultChangeBehavior.class, ()->new ScalarModelDefaultChangeBehavior(this));
+    protected void installPopModelChangeBehavior() {
+        addOrReplaceBehavoir(PopModelDefaultChangeBehavior.class, ()->new PopModelDefaultChangeBehavior(this));
     }
 
     @RequiredArgsConstructor
-    static class ScalarModelChangeDispatcherImpl
-    implements ScalarModelChangeDispatcher, Serializable {
+    static class PopModelChangeDispatcherImpl
+    implements PopModelChangeDispatcher, Serializable {
         private static final long serialVersionUID = 1L;
-        private final List<ScalarModelChangeListener> changeListeners = _Lists.newArrayList();
+        private final List<PopModelChangeListener> changeListeners = _Lists.newArrayList();
 
         @Getter(onMethod_={@Override})
         private final ScalarPanelAbstract scalarPanel;
@@ -494,25 +494,25 @@ implements ScalarModelChangeListener {
                     + "originating from User either having changed a Property value during inline editing "
                     + "or having changed a Parameter value within an open ActionPrompt.");
             _Xray.onParamOrPropertyEdited(scalarPanel);
-            ScalarModelChangeDispatcher.super.notifyUpdate(target);
+            PopModelChangeDispatcher.super.notifyUpdate(target);
         }
 
         @Override
-        public @NonNull Iterable<ScalarModelChangeListener> getChangeListeners() {
+        public @NonNull Iterable<PopModelChangeListener> getChangeListeners() {
             return Collections.unmodifiableCollection(changeListeners);
         }
 
-        void addChangeListener(final ScalarModelChangeListener listener) {
+        void addChangeListener(final PopModelChangeListener listener) {
             changeListeners.add(listener);
         }
     }
 
     @Getter
-    private final ScalarModelChangeDispatcher scalarModelChangeDispatcher =
-            new ScalarModelChangeDispatcherImpl(this);
+    private final PopModelChangeDispatcher popModelChangeDispatcher =
+            new PopModelChangeDispatcherImpl(this);
 
-    public void addChangeListener(final ScalarModelChangeListener listener) {
-        ((ScalarModelChangeDispatcherImpl)getScalarModelChangeDispatcher()).addChangeListener(listener);
+    public void addChangeListener(final PopModelChangeListener listener) {
+        ((PopModelChangeDispatcherImpl)getPopModelChangeDispatcher()).addChangeListener(listener);
     }
 
     protected final <T extends Behavior> void addOrReplaceBehavoir(
@@ -549,9 +549,9 @@ implements ScalarModelChangeListener {
      */
     protected final void scalarNameLabelAddTo(final MarkupContainer container, final IModel<String> labelCaption) {
 
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
-        val helper = ScalarNameHelper.from(scalarModel);
+        val helper = ScalarNameHelper.from(popModel);
 
         helper.hideHiddenLabels(container);
 
@@ -564,17 +564,17 @@ implements ScalarModelChangeListener {
 
             WktDecorators.getFormLabel()
                 .decorate(scalarNameLabel, FormLabelDecorationModel
-                        .mandatory(scalarModel.isShowMandatoryIndicator()));
+                        .mandatory(popModel.isShowMandatoryIndicator()));
 
-            scalarModel.getDescribedAs()
+            popModel.getDescribedAs()
                 .ifPresent(describedAs->WktTooltips.addTooltip(scalarNameLabel, describedAs));
         });
     }
 
     @Value
     private static class ScalarNameHelper {
-        static ScalarNameHelper from(final ScalarModel scalarModel) {
-            final LabelPosition labelPostion = Facets.labelAt(scalarModel.getMetaModel());
+        static ScalarNameHelper from(final PopModel popModel) {
+            final LabelPosition labelPostion = Facets.labelAt(popModel.getMetaModel());
             return labelPostion == LabelPosition.NONE
                     ? new ScalarNameHelper(Optional.empty(), new String[]{ID_SCALAR_NAME_BEFORE_VALUE, ID_SCALAR_NAME_AFTER_VALUE})
                     : labelPostion == LabelPosition.RIGHT
@@ -641,8 +641,8 @@ implements ScalarModelChangeListener {
         Wkt.cssAppend(markupContainer, determineActionLayoutPositioningCss(actionLinks));
     }
 
-    private static String determinePropParamLayoutCss(final ScalarModel scalarModel) {
-        return Facets.labelAtCss(scalarModel.getMetaModel());
+    private static String determinePropParamLayoutCss(final PopModel popModel) {
+        return Facets.labelAtCss(popModel.getMetaModel());
     }
 
     private static String determineActionLayoutPositioningCss(final Can<LinkAndLabel> entityActionLinks) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAbstract2.java
similarity index 86%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAbstract2.java
index 5c847fcf16..7897cb14a8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAbstract2.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
@@ -32,11 +32,11 @@ import org.apache.causeway.applib.services.placeholder.PlaceholderRenderService.
 import org.apache.causeway.core.metamodel.interactions.managed.InteractionVeto;
 import org.apache.causeway.viewer.commons.model.components.UiString;
 import org.apache.causeway.viewer.wicket.model.models.InlinePromptContext;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFragement;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.PromptFragment;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.CompactFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFragement;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFrame;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.PromptFragment;
 import org.apache.causeway.viewer.wicket.ui.panels.FormExecutorDefault;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktTooltips;
@@ -66,23 +66,23 @@ extends ScalarPanelAbstract {
 
     // -- CONSTRUCTION
 
-    protected ScalarPanelAbstract2(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    protected ScalarPanelAbstract2(final String id, final PopModel popModel) {
+        super(id, popModel);
     }
 
     @Override
     protected final void setupInlinePrompt() {
 
-        val scalarModel = scalarModel();
+        val popModel = popModel();
         val regularFrame = getRegularFrame();
         val fieldFrame = getFieldFrame();
         val scalarFrameContainer = getScalarFrameContainer();
 
-        // even if this particular scalarModel (property) is not configured for inline edits,
+        // even if this particular popModel (property) is not configured for inline edits,
         // it's possible that one of the associated actions is.  Thus we set the prompt context
-        scalarModel.setInlinePromptContext(
+        popModel.setInlinePromptContext(
                 new InlinePromptContext(
-                        scalarModel,
+                        popModel,
                         scalarFrameContainer,
                         regularFrame,
                         getFormFrame()));
@@ -138,11 +138,11 @@ extends ScalarPanelAbstract {
             return PromptFragment.TEXTAREA
                     .createFragment(id, this, scalarValueId->{
                         val textArea = Wkt.textAreaNoTab(scalarValueId, this::outputFormatAsString);
-                        val scalarModel = scalarModel();
+                        val popModel = popModel();
                         Wkt.setFormComponentAttributes(textArea,
-                                scalarModel::multilineNumberOfLines,
-                                scalarModel::maxLength,
-                                scalarModel::typicalLength);
+                                popModel::multilineNumberOfLines,
+                                popModel::maxLength,
+                                popModel::typicalLength);
                         return textArea;
                     });
         }
@@ -161,7 +161,7 @@ extends ScalarPanelAbstract {
             return false;
         }
         // only render a text-area if it has content
-        return !scalarModel().isEmpty();
+        return !popModel().isEmpty();
     }
 
     /**
@@ -177,7 +177,7 @@ extends ScalarPanelAbstract {
      * Usually HTML, except for (non-empty) text-areas or badges (that are already modeled in HTML).
      */
     protected UiString obtainOutputFormat() {
-        val proposedValue = scalarModel().proposedValue();
+        val proposedValue = popModel().proposedValue();
         if(!proposedValue.isPresent()) {
             return UiString.markup(
                     getPlaceholderRenderService()
@@ -222,11 +222,11 @@ extends ScalarPanelAbstract {
 
         if(clickReceiver==null) return;
 
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
-        if (_Util.canPropertyEnterInlineEditDirectly(scalarModel)) {
+        if (_Util.canPropertyEnterInlineEditDirectly(popModel)) {
 
-            _Util.lookupMixinForCompositeValueUpdate(scalarModel)
+            _Util.lookupMixinForCompositeValueUpdate(popModel)
             .ifPresentOrElse(mixinForCompositeValueEdit->{
                 // composite value type support
                 Wkt.behaviorAddOnClick(clickReceiver, mixinForCompositeValueEdit.getUiComponent()::onClick);
@@ -237,7 +237,7 @@ extends ScalarPanelAbstract {
 
         } else {
 
-            _Util.lookupPropertyActionForInlineEdit(scalarModel)
+            _Util.lookupPropertyActionForInlineEdit(popModel)
             .ifPresent(actionLinkInlineAsIfEdit->{
                 Wkt.behaviorAddOnClick(clickReceiver, actionLinkInlineAsIfEdit.getUiComponent()::onClick);
             });
@@ -248,7 +248,7 @@ extends ScalarPanelAbstract {
             final @NonNull RepeatingView buttonContainer, final FieldFragement fieldFragement) {
 
         for(var additionalButton : ScalarPanelAdditionalButton.values()) {
-            if(additionalButton.isVisible(scalarModel(), getRenderScenario(), fieldFragement)) {
+            if(additionalButton.isVisible(popModel(), getRenderScenario(), fieldFragement)) {
                 switch (additionalButton) {
                 case COPY_TO_CLIPBOARD:
                     //XXX Future extension
@@ -277,13 +277,13 @@ extends ScalarPanelAbstract {
         val disableReasonButton = Wkt.linkAddWithBody(buttonContainer,
                 Wkt.faIcon(faClass), ajaxTarget->{/*no-op*/});
 
-        val disabledReason = scalarModel().disabledReason()
+        val disabledReason = popModel().disabledReason()
                 .flatMap(InteractionVeto::getReasonAsString)
                 .orElse("framework bug: should provide a reason");
 
         WktTooltips.addTooltip(disableReasonButton, translate(disabledReason) + translate(reasonSuffix));
 
-        if(scalarModel().isParameter()) {
+        if(popModel().isParameter()) {
             // allow the client-side popover cleaner to kick in
             disableReasonButton.setEventPropagation(EventPropagation.BUBBLE);
         } // properties otherwise do recreate the entire page anyway
@@ -296,7 +296,7 @@ extends ScalarPanelAbstract {
         Wkt.cssAppend(clearFieldButton, "btn-warning");
         WktTooltips.addTooltip(clearFieldButton, translate("Click to clear the field"));
 
-        if(scalarModel().isParameter()) {
+        if(popModel().isParameter()) {
             // allow the client-side popover cleaner to kick in
             clearFieldButton.setEventPropagation(EventPropagation.BUBBLE);
         } // properties otherwise do recreate the entire page anyway
@@ -318,7 +318,7 @@ extends ScalarPanelAbstract {
     }
 
     private void onPropertyInlineEditClick(final AjaxRequestTarget target) {
-        scalarModel().toEditingMode();
+        popModel().toEditingMode();
 
         switchRegularFrameToFormFrame();
         onSwitchFormForInlinePrompt(getFormFrame(), target);
@@ -329,8 +329,8 @@ extends ScalarPanelAbstract {
     }
 
     private void onClearFieldButtonClick(final AjaxRequestTarget target) {
-        scalarModel().proposedValue().clear();
-        scalarModel().getSpecialization().accept(
+        popModel().proposedValue().clear();
+        popModel().getSpecialization().accept(
                 param->{
                     clearBootstrapFileInputField();
                     this.setupInlinePrompt(); // recreate the param field
@@ -352,7 +352,7 @@ extends ScalarPanelAbstract {
             val formComponent = formContainer.getFormComponent();
             if(formComponent instanceof BootstrapFileInputField) {
                 // recreate from scratch
-                val replacement = formContainer.createFormComponent(formComponent.getId(), scalarModel());
+                val replacement = formContainer.createFormComponent(formComponent.getId(), popModel());
                 formComponent.replaceWith(replacement);
             }
         }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAdditionalButton.java
similarity index 74%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAdditionalButton.java
index 8fddfe81c4..2668053985 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelAdditionalButton.java
@@ -16,14 +16,14 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import org.apache.causeway.core.metamodel.consent.Consent;
 import org.apache.causeway.core.metamodel.consent.Consent.VetoReason;
 import org.apache.causeway.core.metamodel.interactions.managed.InteractionVeto;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFragement;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract.RenderScenario;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFragement;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract.RenderScenario;
 
 /**
  * In order of appearance in the UI.
@@ -34,11 +34,11 @@ enum ScalarPanelAdditionalButton {
     DISABLED_REASON {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final PopModel popModel,
                 final RenderScenario renderScenario,
                 final FieldFragement fieldFragement) {
             return renderScenario!=RenderScenario.CAN_EDIT_INLINE_VIA_ACTION
-                    && scalarModel.disabledReason()
+                    && popModel.disabledReason()
                     .map(InteractionVeto::getVetoConsent)
                     .flatMap(Consent::getReason)
                     .map(VetoReason::showInUi)
@@ -48,13 +48,13 @@ enum ScalarPanelAdditionalButton {
     DISABLED_REASON_PROTOTYPING {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final PopModel popModel,
                 final RenderScenario renderScenario,
                 final FieldFragement fieldFragement) {
-            return scalarModel.getSystemEnvironment().isPrototyping()
-                    && scalarModel.getConfiguration().getViewer().getWicket().isDisableReasonExplanationInPrototypingModeEnabled()
+            return popModel.getSystemEnvironment().isPrototyping()
+                    && popModel.getConfiguration().getViewer().getWicket().isDisableReasonExplanationInPrototypingModeEnabled()
                     && renderScenario!=RenderScenario.CAN_EDIT_INLINE_VIA_ACTION
-                    && scalarModel.disabledReason()
+                    && popModel.disabledReason()
                     .map(InteractionVeto::getVetoConsent)
                     .flatMap(Consent::getReason)
                     .map(vetoReason->!vetoReason.showInUi())
@@ -64,7 +64,7 @@ enum ScalarPanelAdditionalButton {
     CLEAR_FIELD {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final PopModel popModel,
                 final RenderScenario renderScenario,
                 final FieldFragement fieldFragement) {
 
@@ -84,16 +84,16 @@ enum ScalarPanelAdditionalButton {
             }
 
             // visible only if feature is not required and not already cleared
-            return scalarModel.getConfiguration().getViewer().getWicket().isClearFieldButtonEnabled()
-                    && !scalarModel.isRequired()
-                    && scalarModel.proposedValue().isPresent();
+            return popModel.getConfiguration().getViewer().getWicket().isClearFieldButtonEnabled()
+                    && !popModel.isRequired()
+                    && popModel.proposedValue().isPresent();
 
         }
     },
     COPY_TO_CLIPBOARD {
         @Override
         boolean isVisible(
-                final ScalarModel scalarModel,
+                final PopModel popModel,
                 final RenderScenario renderScenario,
                 final FieldFragement fieldFragement) {
             //XXX Future extension
@@ -103,6 +103,6 @@ enum ScalarPanelAdditionalButton {
     ;
 
     abstract boolean isVisible(
-            ScalarModel scalarModel, RenderScenario renderScenario, FieldFragement fieldFragement);
+            PopModel popModel, RenderScenario renderScenario, FieldFragement fieldFragement);
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelFormFieldAbstract.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelFormFieldAbstract.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelFormFieldAbstract.java
similarity index 82%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelFormFieldAbstract.java
index 0c02239ba0..9a2d98153e 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelFormFieldAbstract.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.Optional;
 
@@ -31,11 +31,11 @@ import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.commons.internal.collections._Maps;
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 import org.apache.causeway.core.metamodel.interactions.managed.InteractionVeto;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFragement;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFragement;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFrame;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FrameFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktTooltips;
@@ -52,9 +52,9 @@ extends ScalarPanelAbstract2 {
 
     protected ScalarPanelFormFieldAbstract(
             final String id,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final Class<T> type) {
-        super(id, scalarModel);
+        super(id, popModel);
         this.type = type;
     }
 
@@ -86,7 +86,7 @@ extends ScalarPanelAbstract2 {
             break;
         case EDITING:
             // setup as input-format
-            fieldFragement = scalarModel().isEditingMode()
+            fieldFragement = popModel().isEditingMode()
                 ? FieldFragement.NO_LINK_EDITING // supports additional buttons (clear, ...)
                 : FieldFragement.NO_LINK_VIEWING;
             break;
@@ -108,17 +108,17 @@ extends ScalarPanelAbstract2 {
     /**
      * Builds the component to render the form input field.
      */
-    protected abstract FormComponent<T> createFormComponent(String id, ScalarModel scalarModel);
+    protected abstract FormComponent<T> createFormComponent(String id, PopModel popModel);
 
     // -- REGULAR
 
     @Override
     protected final MarkupContainer createRegularFrame() {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
-        val friendlyNameModel = Model.of(scalarModel.getFriendlyName());
+        val friendlyNameModel = Model.of(popModel.getFriendlyName());
 
-        formComponent = createFormComponent(ID_SCALAR_VALUE, scalarModel);
+        formComponent = createFormComponent(ID_SCALAR_VALUE, popModel);
         formComponent.setLabel(friendlyNameModel);
 
         val formGroup = FrameFragment.REGULAR
@@ -127,15 +127,15 @@ extends ScalarPanelAbstract2 {
 
         formGroup.add(fieldFrame = createFieldFrame());
 
-        formComponent.setRequired(scalarModel.isRequired());
+        formComponent.setRequired(popModel.isRequired());
 
-        if(scalarModel.isShowMandatoryIndicator()) {
+        if(popModel.isShowMandatoryIndicator()) {
             Wkt.cssAppend(formGroup, "mandatory");
         }
 
         scalarNameLabelAddTo(formGroup, friendlyNameModel);
 
-        formComponent.add(_Util.createValidatorFor(scalarModel));
+        formComponent.add(_Util.createValidatorFor(popModel));
 
         val renderScenario = getRenderScenario();
 
@@ -149,13 +149,13 @@ extends ScalarPanelAbstract2 {
                     .orElseGet(()->formComponent.getClass().getName()));
             xrayDetails.put("formComponent.id", formComponent.getId());
             xrayDetails.put("formComponent.validators (count)", ""+_NullSafe.size(formComponent.getValidators()));
-            xrayDetails.put("scalarModel.disableReason", ""+scalarModel().disabledReason().map(InteractionVeto::getReason).orElse(null));
-            xrayDetails.put("scalarModel.whetherHidden", ""+scalarModel().whetherHidden());
-            xrayDetails.put("scalarModel.identifier", ""+scalarModel().getIdentifier());
-            xrayDetails.put("scalarModel.choices (count)", ""+scalarModel().getChoices().size());
-            xrayDetails.put("scalarModel.metaModel.featureIdentifier", ""+scalarModel().getMetaModel().getFeatureIdentifier());
-            xrayDetails.put("scalarModel.scalarTypeSpec", ""+scalarModel().getScalarTypeSpec().toString());
-            xrayDetails.put("scalarModel.proposedValue", ""+scalarModel().proposedValue().getValue().getValue());
+            xrayDetails.put("popModel.disableReason", ""+popModel().disabledReason().map(InteractionVeto::getReason).orElse(null));
+            xrayDetails.put("popModel.whetherHidden", ""+popModel().whetherHidden());
+            xrayDetails.put("popModel.identifier", ""+popModel().getIdentifier());
+            xrayDetails.put("popModel.choices (count)", ""+popModel().getChoices().size());
+            xrayDetails.put("popModel.metaModel.featureIdentifier", ""+popModel().getMetaModel().getFeatureIdentifier());
+            xrayDetails.put("popModel.scalarTypeSpec", ""+popModel().getScalarTypeSpec().toString());
+            xrayDetails.put("popModel.proposedValue", ""+popModel().proposedValue().getValue().getValue());
 //                    getSpecialization()
 //                    .fold(
 //                            param->""+param.getValue(),
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract_xray.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelFormFieldAbstract_xray.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract_xray.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelFormFieldAbstract_xray.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelSelectAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelSelectAbstract.java
similarity index 76%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelSelectAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelSelectAbstract.java
index ea75c2782c..9042bfe6a6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelSelectAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelSelectAbstract.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.io.Serializable;
 import java.util.function.Function;
@@ -28,8 +28,8 @@ import org.springframework.lang.Nullable;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.components.UiString;
-import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.commons.model.pop.UiParameter;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.Select2;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -52,29 +52,29 @@ extends ScalarPanelFormFieldAbstract<ManagedObject> {
 
     protected ScalarPanelSelectAbstract(
             final String id,
-            final ScalarModel scalarModel) {
-        super(id, scalarModel, ManagedObject.class);
+            final PopModel popModel) {
+        super(id, popModel, ManagedObject.class);
         setOutputMarkupId(true);
     }
 
     protected final Select2 createSelect2(
             final String id,
-            final Function<ScalarModel, ChoiceProviderAbstract> choiceProviderFactory) {
-        val scalarModel = scalarModel();
-        val select2 = Select2.createSelect2(id, scalarModel,
-                choiceProviderFactory.apply(scalarModel),
-                getScalarModelChangeDispatcher());
+            final Function<PopModel, ChoiceProviderAbstract> choiceProviderFactory) {
+        val popModel = popModel();
+        val select2 = Select2.createSelect2(id, popModel,
+                choiceProviderFactory.apply(popModel),
+                getPopModelChangeDispatcher());
         val settings = select2.getSettings();
-        settings.setPlaceholder(scalarModel.getFriendlyName());
+        settings.setPlaceholder(popModel.getFriendlyName());
 
-        switch(scalarModel.getChoiceProviderSort()) {
+        switch(popModel.getChoiceProviderSort()) {
         case CHOICES:
             break;
         case AUTO_COMPLETE:
-            settings.setMinimumInputLength(scalarModel.getAutoCompleteMinLength());
+            settings.setMinimumInputLength(popModel.getAutoCompleteMinLength());
             break;
         case OBJECT_AUTO_COMPLETE:
-            Facets.autoCompleteMinLength(scalarModel.getScalarTypeSpec())
+            Facets.autoCompleteMinLength(popModel.getScalarTypeSpec())
             .ifPresent(settings::setMinimumInputLength);
             break;
         case NO_CHOICES:
@@ -87,21 +87,21 @@ extends ScalarPanelFormFieldAbstract<ManagedObject> {
     // -- CUSTOM UPDATING BEHAVIOR
 
     @Override
-    protected final void installScalarModelChangeBehavior() {
+    protected final void installPopModelChangeBehavior() {
         /* no-op, as we already have the Select2OnSelect behavior
          * (directly) installed with the Select2 form component
          */
     }
 
     protected final boolean isEditable() {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
         // cannot edit if in table or is view-mode
-        return !scalarModel.getRenderingHint().isInTable()
-                && !scalarModel.isViewingMode();
+        return !popModel.getRenderingHint().isInTable()
+                && !popModel.isViewingMode();
     }
 
     protected final boolean hasAnyChoices() {
-        return scalarModel().getChoiceProviderSort().isChoicesAny();
+        return popModel().getChoiceProviderSort().isChoicesAny();
     }
 
     public final boolean checkSelect2Required() {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldAbstract.java
similarity index 82%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldAbstract.java
index 1230acda33..4d6b8186ce 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldAbstract.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.Optional;
 
@@ -27,15 +27,15 @@ import org.apache.wicket.util.convert.IConverter;
 
 import org.apache.causeway.commons.internal.assertions._Assert;
 import org.apache.causeway.viewer.commons.model.components.UiString;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
 import lombok.val;
 
 /**
- * Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
+ * Adapter for {@link PanelAbstract panel}s that use a {@link PopModel} as
  * their backing model.
  * <p>
  * Supports the concept of being
@@ -53,9 +53,9 @@ extends ScalarPanelFormFieldAbstract<T> {
 
     protected ScalarPanelTextFieldAbstract(
             final String id,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final Class<T> type) {
-        super(id, scalarModel, type);
+        super(id, popModel, type);
         guardAgainstIncompatibleScalarType();
     }
 
@@ -80,13 +80,13 @@ extends ScalarPanelFormFieldAbstract<T> {
     }
 
     protected final IModel<T> unwrappedModel() {
-        return scalarModel().unwrapped(type);
+        return popModel().unwrapped(type);
     }
 
     // --
 
     @Override
-    protected final FormComponent<T> createFormComponent(final String id, final ScalarModel scalarModel) {
+    protected final FormComponent<T> createFormComponent(final String id, final PopModel popModel) {
         formField = createTextField(id);
         formField.setOutputMarkupId(true);
         return applyFormComponentAttributes(formField);
@@ -120,20 +120,20 @@ extends ScalarPanelFormFieldAbstract<T> {
     // -- HELPER
 
     private void guardAgainstIncompatibleScalarType() {
-        _Assert.assertTrue(scalarModel().getScalarTypeSpec().isAssignableFrom(type), ()->
+        _Assert.assertTrue(popModel().getScalarTypeSpec().isAssignableFrom(type), ()->
             String.format("[%s:%s] cannot possibly unwrap model of type %s into target type %s",
                     this.getClass().getSimpleName(),
-                    scalarModel().getIdentifier(),
-                    scalarModel().getScalarTypeSpec().getCorrespondingClass(),
+                    popModel().getIdentifier(),
+                    popModel().getScalarTypeSpec().getCorrespondingClass(),
                     type));
     }
 
     <F extends FormComponent<?>> F applyFormComponentAttributes(final F formComponent) {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
         Wkt.setFormComponentAttributes(formComponent,
-                scalarModel::multilineNumberOfLines,
-                scalarModel::maxLength,
-                scalarModel::typicalLength);
+                popModel::multilineNumberOfLines,
+                popModel::maxLength,
+                popModel::typicalLength);
         return formComponent;
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldNumeric.java
similarity index 84%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldNumeric.java
index e95ab7ddfc..70b6cc4a3d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldNumeric.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldNumeric.java
@@ -16,9 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 /**
  * Panel for rendering numeric scalars.
@@ -30,9 +30,9 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
 
     public ScalarPanelTextFieldNumeric(
             final String id,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final Class<T> type) {
-        super(id, scalarModel, type);
+        super(id, popModel, type);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldTextualAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldTextualAbstract.java
similarity index 87%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldTextualAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldTextualAbstract.java
index 64dfc20581..7558886b0d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldTextualAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldTextualAbstract.java
@@ -16,14 +16,14 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.EnumSet;
 import java.util.Optional;
 
 import org.apache.wicket.util.convert.IConverter;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 /**
  * Specialization of {@link ScalarPanelTextFieldAbstract},
@@ -36,8 +36,8 @@ extends ScalarPanelTextFieldAbstract<String> {
     private static final long serialVersionUID = 1L;
 
     protected ScalarPanelTextFieldTextualAbstract(
-            final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel, String.class);
+            final String id, final PopModel popModel) {
+        super(id, popModel, String.class);
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldWithTemporalPicker.java
similarity index 79%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldWithTemporalPicker.java
index 3fbf669134..42b68bd0ae 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithTemporalPicker.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldWithTemporalPicker.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.Optional;
 
@@ -26,9 +26,9 @@ import org.apache.wicket.markup.html.form.TextField;
 
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 import org.apache.causeway.core.metamodel.util.Facets;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDateTimePicker;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.datepicker.TextFieldWithDateTimePicker;
 
 import lombok.val;
 
@@ -41,22 +41,22 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
     private static final long serialVersionUID = 1L;
 
     public ScalarPanelTextFieldWithTemporalPicker(
-            final String id, final ScalarModel scalarModel, final Class<T> type) {
-        super(id, scalarModel, type);
+            final String id, final PopModel popModel, final Class<T> type) {
+        super(id, popModel, type);
     }
 
     protected int getDateRenderAdjustDays() {
-        return Facets.dateRenderAdjustDays(scalarModel().getMetaModel());
+        return Facets.dateRenderAdjustDays(popModel().getMetaModel());
     }
 
     @Override
     protected final TextField<T> createTextField(final String id) {
-        val scalarModel = scalarModel();
+        val popModel = popModel();
         val converter = converter().orElseThrow(()->
             _Exceptions.illegalArgument("framework bug: ScalarPanelTextFieldWithTemporalPicker requires a converter"));
 
         val textField = new TextFieldWithDateTimePicker<T>(
-                id, scalarModel, type, converter);
+                id, popModel, type, converter);
 
         /* [CAUSEWAY-3201]
          * Adding OnChangeAjaxBehavior registers a JavaScript event listener on change events.
@@ -69,7 +69,7 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
             protected void onUpdate(final AjaxRequestTarget target) {
                 // triggers update of dependent args (action prompt)
                 ScalarPanelTextFieldWithTemporalPicker.this
-                    .getScalarModelChangeDispatcher().notifyUpdate(target);
+                    .getPopModelChangeDispatcher().notifyUpdate(target);
             }
         });
 
@@ -86,7 +86,7 @@ extends ScalarPanelTextFieldWithValueSemantics<T>  {
     }
 
     @Override
-    protected void installScalarModelChangeBehavior() {
+    protected void installPopModelChangeBehavior() {
         // don't install the default change listener, instead OnChangeAjaxBehavior is installed above
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithValueSemantics.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldWithValueSemantics.java
similarity index 85%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithValueSemantics.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldWithValueSemantics.java
index 6d92a53f91..d622d42752 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldWithValueSemantics.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/ScalarPanelTextFieldWithValueSemantics.java
@@ -16,14 +16,14 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.Optional;
 
 import org.apache.wicket.util.convert.IConverter;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsProvider;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 /**
  * Specialization of {@link ScalarPanelTextFieldAbstract},
@@ -37,14 +37,14 @@ extends ScalarPanelTextFieldAbstract<T> {
 
     public ScalarPanelTextFieldWithValueSemantics(
             final String id,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final Class<T> type) {
-        super(id, scalarModel, type);
+        super(id, popModel, type);
     }
 
     @Override
     protected final Optional<IConverter<T>> converter() {
-        return scalarModel().getConverter(type);
+        return popModel().getConverter(type);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Util.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/_Util.java
similarity index 70%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Util.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/_Util.java
index 7bd122ebe6..c9bb9889c1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Util.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/_Util.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.Collection;
 import java.util.Optional;
@@ -36,7 +36,7 @@ import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.components.actionmenu.entityactions.LinkAndLabelFactory;
 
 import lombok.val;
@@ -48,62 +48,62 @@ class _Util {
     /**
      * Whether to prevent tabbing into non-editable widgets.
      */
-    boolean isPropertyWithEnterEditNotAvailable(final ScalarModel scalarModel) {
-        return scalarModel.isProperty()
-                && scalarModel.isViewingMode()
-                && (scalarModel.getPromptStyle().isDialogAny()
-                        || !canEnterEditMode(scalarModel));
+    boolean isPropertyWithEnterEditNotAvailable(final PopModel popModel) {
+        return popModel.isProperty()
+                && popModel.isViewingMode()
+                && (popModel.getPromptStyle().isDialogAny()
+                        || !canEnterEditMode(popModel));
     }
 
-    boolean canPropertyEnterInlineEditDirectly(final ScalarModel scalarModel) {
-        return scalarModel.getPromptStyle().isInline()
-                && scalarModel.isViewingMode()
-                && !scalarModel.disabledReason().isPresent();
+    boolean canPropertyEnterInlineEditDirectly(final PopModel popModel) {
+        return popModel.getPromptStyle().isInline()
+                && popModel.isViewingMode()
+                && !popModel.disabledReason().isPresent();
     }
 
     /**
      * Parameter disabled case should already be handled earlier.
      * <p>
-     * @implNote {@code !scalarModel.disabledReason().isPresent()} is not checked nor asserted here
+     * @implNote {@code !popModel.disabledReason().isPresent()} is not checked nor asserted here
      */
-    boolean canParameterEnterNestedEdit(final ScalarModel scalarModel) {
-        return scalarModel.isParameter()
-                && !scalarModel.hasChoices() // handled by select2 panels instead
-                && lookupCompositeValueMixinForFeature(scalarModel).isPresent();
+    boolean canParameterEnterNestedEdit(final PopModel popModel) {
+        return popModel.isParameter()
+                && !popModel.hasChoices() // handled by select2 panels instead
+                && lookupCompositeValueMixinForFeature(popModel).isPresent();
     }
 
-    Optional<LinkAndLabel> lookupMixinForCompositeValueUpdate(final ScalarModel scalarModel) {
-        return lookupCompositeValueMixinForFeature(scalarModel)
+    Optional<LinkAndLabel> lookupMixinForCompositeValueUpdate(final PopModel popModel) {
+        return lookupCompositeValueMixinForFeature(popModel)
             .flatMap(compositeValueMixinForFeature->
-                toLinkAndLabelWithRuleChecking(compositeValueMixinForFeature, scalarModel))
+                toLinkAndLabelWithRuleChecking(compositeValueMixinForFeature, popModel))
             .filter(_Util::guardAgainstInvalidCompositeMixinScenarios);
     }
 
-    Optional<LinkAndLabel> lookupPropertyActionForInlineEdit(final ScalarModel scalarModel) {
+    Optional<LinkAndLabel> lookupPropertyActionForInlineEdit(final PopModel popModel) {
         // not editable property, but maybe one of the actions is.
-        return scalarModel.getAssociatedActions()
+        return popModel.getAssociatedActions()
                 .getFirstAssociatedWithInlineAsIfEdit()
-                .flatMap(action->toLinkAndLabelWithRuleChecking(action, scalarModel));
+                .flatMap(action->toLinkAndLabelWithRuleChecking(action, popModel));
     }
 
-    Can<LinkAndLabel> associatedLinksAndLabels(final ScalarModel scalarModel) {
+    Can<LinkAndLabel> associatedLinksAndLabels(final PopModel popModel) {
         // find associated actions for this scalar property (only properties will have any.)
         // convert those actions into UI layer widgets
-        return scalarModel.getAssociatedActions()
+        return popModel.getAssociatedActions()
                 .getRemainingAssociated()
                 .stream()
-                .map(LinkAndLabelFactory.forPropertyOrParameter(scalarModel))
+                .map(LinkAndLabelFactory.forPropertyOrParameter(popModel))
                 .collect(Can.toCan());
     }
 
-    IValidator<Object> createValidatorFor(final ScalarModel scalarModel) {
+    IValidator<Object> createValidatorFor(final PopModel popModel) {
         return new IValidator<Object>() {
             private static final long serialVersionUID = 1L;
             @Override
             public void validate(final IValidatable<Object> validatable) {
-                recoverProposedValue(validatable.getValue(), scalarModel)
+                recoverProposedValue(validatable.getValue(), popModel)
                 .ifPresent(proposedAdapter->{
-                    _Strings.nonEmpty(scalarModel.validate(proposedAdapter))
+                    _Strings.nonEmpty(popModel.validate(proposedAdapter))
                     .ifPresent(validationFeedback->
                         validatable.error(new ValidationError(validationFeedback)));
                 });
@@ -113,22 +113,22 @@ class _Util {
 
     // -- HELPER
 
-    private boolean canEnterEditMode(final ScalarModel scalarModel) {
-        return scalarModel.isViewingMode()
-                && !scalarModel.disabledReason().isPresent();
+    private boolean canEnterEditMode(final PopModel popModel) {
+        return popModel.isViewingMode()
+                && !popModel.disabledReason().isPresent();
     }
 
     private Optional<LinkAndLabel> toLinkAndLabelNoRuleChecking(
             final @Nullable ObjectAction action,
-            final ScalarModel scalarModel) {
+            final PopModel popModel) {
         return Optional.ofNullable(action)
-        .map(LinkAndLabelFactory.forPropertyOrParameter(scalarModel));
+        .map(LinkAndLabelFactory.forPropertyOrParameter(popModel));
     }
 
     private Optional<LinkAndLabel> toLinkAndLabelWithRuleChecking(
             final @Nullable ObjectAction action,
-            final ScalarModel scalarModel) {
-        return toLinkAndLabelNoRuleChecking(action, scalarModel)
+            final PopModel popModel) {
+        return toLinkAndLabelNoRuleChecking(action, popModel)
         .filter(LinkAndLabel::isVisible)
         .filter(LinkAndLabel::isEnabled);
     }
@@ -154,54 +154,54 @@ class _Util {
     //XXX its rather unfortunate, that this method has to deal with 4 different cases
     private Optional<ManagedObject> recoverProposedValue(
             final Object valueObject,
-            final ScalarModel scalarModel){
+            final PopModel popModel){
 
         if(valueObject instanceof Collection) {
 
-            if(scalarModel.isSingular()) {
+            if(popModel.isSingular()) {
                 // seeing this code-path with FileUpload being wrapped in an ArrayList of size 1
                 // as a more general rule of thumb, use the first element in the ArrayList if present
                 val unpackedValue = ((Collection<?>)valueObject).stream()
                         .limit(1)
-                        .map(v->scalarModel.getObjectManager()
+                        .map(v->popModel.getObjectManager()
                                 .adapt(valueObject))
                         .findFirst();
                 return unpackedValue;
             }
 
             val unpackedValues = ((Collection<?>)valueObject).stream()
-            .map(v->scalarModel
+            .map(v->popModel
                     .getObjectManager().demementify((ObjectMemento)v))
             .collect(Can.toCan());
-            return Optional.of(ManagedObject.packed(scalarModel.getScalarTypeSpec(), unpackedValues));
+            return Optional.of(ManagedObject.packed(popModel.getScalarTypeSpec(), unpackedValues));
         }
 
         if(valueObject instanceof ObjectMemento) {
             // seeing this code-path particularly with enum choices
             return Optional.ofNullable(
-                    scalarModel
+                    popModel
                         .getObjectManager().demementify((ObjectMemento)valueObject));
         }
 
         return Optional.ofNullable(
-                    scalarModel
+                    popModel
                         .getObjectManager()
                         .adapt(valueObject));
     }
 
-    private Optional<ObjectAction> lookupCompositeValueMixinForFeature(final ScalarModel scalarModel) {
-        val spec = scalarModel.getScalarTypeSpec();
+    private Optional<ObjectAction> lookupCompositeValueMixinForFeature(final PopModel popModel) {
+        val spec = popModel.getScalarTypeSpec();
         if(!spec.isValue()) {
             return Optional.empty();
         }
-        return scalarModel.getSpecialization().<Optional<ObjectAction>>fold(
+        return popModel.getSpecialization().<Optional<ObjectAction>>fold(
                 param->
                     Facets.valueCompositeMixinForParameter(
-                            scalarModel.getMetaModel(),
+                            popModel.getMetaModel(),
                             param.getParameterNegotiationModel(), param.getParameterIndex()),
                 prop->
                     Facets.valueCompositeMixinForProperty(
-                            scalarModel.getMetaModel(),
+                            popModel.getMetaModel(),
                             prop.getManagedProperty()));
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Xray.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/_Xray.java
similarity index 94%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Xray.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/_Xray.java
index 667b5ea095..b16e2d76a2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/_Xray.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/_Xray.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars;
+package org.apache.causeway.viewer.wicket.ui.components.pops;
 
 import java.util.stream.Collectors;
 
@@ -32,7 +32,7 @@ class _Xray {
     static void onParamOrPropertyEdited(final ScalarPanelAbstract scalarPanel) {
         if(!XrayUi.isXrayEnabled()) return;
 
-        scalarPanel.scalarModel().getSpecialization()
+        scalarPanel.popModel().getSpecialization()
         .accept(
             param->{
                 val data = MmDebugUtils
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobOrClobPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobOrClobPanelAbstract.java
similarity index 91%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobOrClobPanelAbstract.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobOrClobPanelAbstract.java
index d55563aa7f..a0fa6ffefd 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobOrClobPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobOrClobPanelAbstract.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
+package org.apache.causeway.viewer.wicket.ui.components.pops.blobclob;
 
 import java.util.List;
 import java.util.Optional;
@@ -33,10 +33,10 @@ import org.apache.causeway.applib.value.Blob;
 import org.apache.causeway.applib.value.Clob;
 import org.apache.causeway.applib.value.NamedWithMimeType;
 import org.apache.causeway.viewer.commons.model.components.UiString;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelFormFieldAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelFormFieldAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.CompactFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktTooltips;
 
@@ -50,9 +50,9 @@ extends ScalarPanelFormFieldAbstract<T> {
     /** Model that maps to either {@link Blob} or {@link Clob} */
     private IModel<T> unwrapped;
 
-    protected CausewayBlobOrClobPanelAbstract(final String id, final ScalarModel scalarModel, final Class<T> type) {
-        super(id, scalarModel, type);
-        this.unwrapped = scalarModel.unwrapped(type);
+    protected CausewayBlobOrClobPanelAbstract(final String id, final PopModel popModel, final Class<T> type) {
+        super(id, popModel, type);
+        this.unwrapped = popModel.unwrapped(type);
     }
 
     protected abstract IModel<List<FileUpload>> fileUploadModel();
@@ -69,7 +69,7 @@ extends ScalarPanelFormFieldAbstract<T> {
     // generic type mismatch; no issue as long as we don't use conversion
     @SuppressWarnings({ "unchecked", "rawtypes" })
     @Override
-    protected FormComponent createFormComponent(final String id, final ScalarModel scalarModel) {
+    protected FormComponent createFormComponent(final String id, final PopModel popModel) {
         val initialCaption = outputFormatAsString();
         val fileUploadField = Wkt.fileUploadField(id, initialCaption, fileUploadModel());
         addAcceptFilterTo(fileUploadField);
@@ -99,7 +99,7 @@ extends ScalarPanelFormFieldAbstract<T> {
     // -- HELPER
 
     private void addAcceptFilterTo(final Component component){
-        Wkt.attributeReplace(component, "accept", scalarModel().getFileAccept());
+        Wkt.attributeReplace(component, "accept", popModel().getFileAccept());
     }
 
     private Optional<T> getBlobOrClobFromModel() {
@@ -209,7 +209,7 @@ extends ScalarPanelFormFieldAbstract<T> {
 //
 //        final AjaxLink<Void> ajaxLink = Wkt.linkAdd(formComponent, ID_SCALAR_IF_REGULAR_CLEAR, ajaxTarget->{
 //            setEnabled(false);
-//            ScalarModel model = CausewayBlobOrClobPanelAbstract.this.getModel();
+//            PopModel model = CausewayBlobOrClobPanelAbstract.this.getModel();
 //            model.setObject(null);
 //            ajaxTarget.add(formComponent);
 //            ajaxTarget.add(fileNameLabel);
@@ -245,7 +245,7 @@ extends ScalarPanelFormFieldAbstract<T> {
 
 
 //    private Image asWicketImage(final String id) {
-//        val blob = scalarModel().unwrapped(Blob.class).getObject();
+//        val blob = popModel().unwrapped(Blob.class).getObject();
 //        return WicketImageUtil.asWicketImage(id, blob).orElse(null);
 //    }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobPanel.java
similarity index 86%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobPanel.java
index 08ae27a6ff..d4c4c47eed 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobPanel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
+package org.apache.causeway.viewer.wicket.ui.components.pops.blobclob;
 
 
 import java.util.List;
@@ -28,7 +28,7 @@ import org.apache.wicket.request.resource.IResource;
 
 import org.apache.causeway.applib.value.Blob;
 import org.apache.causeway.viewer.wicket.model.models.FileUploadModels;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 /**
  * Panel for rendering scalars of type {@link org.apache.causeway.applib.value.Blob Causeway' applib.Blob}.
@@ -37,13 +37,13 @@ public class CausewayBlobPanel extends CausewayBlobOrClobPanelAbstract<Blob> {
 
     private static final long serialVersionUID = 1L;
 
-    public CausewayBlobPanel(final String id, final ScalarModel model) {
+    public CausewayBlobPanel(final String id, final PopModel model) {
         super(id, model, Blob.class);
     }
 
     @Override
     protected IModel<List<FileUpload>> fileUploadModel() {
-        return FileUploadModels.blob(scalarModel());
+        return FileUploadModels.blob(popModel());
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobPanelFactory.java
similarity index 76%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobPanelFactory.java
index 712d290b90..4966a811e1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayBlobPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayBlobPanelFactory.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
+package org.apache.causeway.viewer.wicket.ui.components.pops.blobclob;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarTypeConstrainedAbstract;
 
 /**
  * {@link ComponentFactory} for {@link CausewayBlobPanel}.
@@ -36,8 +36,8 @@ public class CausewayBlobPanelFactory extends ComponentFactoryScalarTypeConstrai
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel scalarModel) {
-        return new CausewayBlobPanel(id, scalarModel);
+    public Component createComponent(final String id, final PopModel popModel) {
+        return new CausewayBlobPanel(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayClobPanel.java
similarity index 86%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayClobPanel.java
index 38fc206684..349b14f9c0 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayClobPanel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
+package org.apache.causeway.viewer.wicket.ui.components.pops.blobclob;
 
 
 import java.nio.charset.StandardCharsets;
@@ -29,7 +29,7 @@ import org.apache.wicket.request.resource.IResource;
 
 import org.apache.causeway.applib.value.Clob;
 import org.apache.causeway.viewer.wicket.model.models.FileUploadModels;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 /**
  * Panel for rendering scalars of type {@link Clob}.
@@ -43,13 +43,13 @@ public class CausewayClobPanel extends CausewayBlobOrClobPanelAbstract<Clob> {
 
     private static final long serialVersionUID = 1L;
 
-    public CausewayClobPanel(final String id, final ScalarModel model) {
+    public CausewayClobPanel(final String id, final PopModel model) {
         super(id, model, Clob.class);
     }
 
     @Override
     protected IModel<List<FileUpload>> fileUploadModel() {
-        return FileUploadModels.clob(scalarModel(), StandardCharsets.UTF_8);
+        return FileUploadModels.clob(popModel(), StandardCharsets.UTF_8);
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayClobPanelFactory.java
similarity index 76%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayClobPanelFactory.java
index 53f74f85a2..41356ef16d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/blobclob/CausewayClobPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/blobclob/CausewayClobPanelFactory.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob;
+package org.apache.causeway.viewer.wicket.ui.components.pops.blobclob;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarTypeConstrainedAbstract;
 
 /**
  * {@link ComponentFactory} for {@link CausewayBlobPanel}.
@@ -36,8 +36,8 @@ public class CausewayClobPanelFactory extends ComponentFactoryScalarTypeConstrai
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel scalarModel) {
-        return new CausewayClobPanel(id, scalarModel);
+    public Component createComponent(final String id, final PopModel popModel) {
+        return new CausewayClobPanel(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/bool/BooleanPanel.java
similarity index 81%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/bool/BooleanPanel.java
index 4db4e6fd82..885f1a6d62 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/bool/BooleanPanel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.bool;
+package org.apache.causeway.viewer.wicket.ui.components.pops.bool;
 
 import java.util.Optional;
 
@@ -26,11 +26,11 @@ import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
 import org.apache.causeway.viewer.commons.model.components.UiString;
 import org.apache.causeway.viewer.wicket.model.models.BooleanModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.PromptFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelFormFieldAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelFormFieldAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.CompactFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.PromptFragment;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkboxx.CheckBoxX;
@@ -46,8 +46,8 @@ extends ScalarPanelFormFieldAbstract<Boolean> {
 
     private CheckBoxX checkBox;
 
-    public BooleanPanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel, Boolean.class);
+    public BooleanPanel(final String id, final PopModel popModel) {
+        super(id, popModel, Boolean.class);
     }
 
     @Override
@@ -56,20 +56,20 @@ extends ScalarPanelFormFieldAbstract<Boolean> {
     }
 
     @Override
-    protected FormComponent<Boolean> createFormComponent(final String id, final ScalarModel scalarModel) {
+    protected FormComponent<Boolean> createFormComponent(final String id, final PopModel popModel) {
         checkBox = Wkt.checkboxX(
                 id,
-                BooleanModel.forScalarModel(scalarModel),
-                scalarModel.isRequired(),
+                BooleanModel.forPopModel(popModel),
+                popModel.isRequired(),
                 CheckBoxXConfig.Sizes.xl);
         return checkBox;
     }
 
     @Override
     protected Component createComponentForOutput(final String id) {
-        Boolean b = (Boolean) scalarModel().getObject().getPojo();
+        Boolean b = (Boolean) popModel().getObject().getPojo();
         if(b==null
-                && scalarModel().isRequired()) {
+                && popModel().isRequired()) {
             b = false;
         }
         return getRenderScenario().isCompact()
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/bool/BooleanPanelFactory.java
similarity index 77%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/bool/BooleanPanelFactory.java
index 1fd17169c7..84f2b67af8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/bool/BooleanPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/bool/BooleanPanelFactory.java
@@ -16,14 +16,14 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.bool;
+package org.apache.causeway.viewer.wicket.ui.components.pops.bool;
 
 import org.apache.wicket.Component;
 
 import org.apache.causeway.commons.collections.Can;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarTypeConstrainedAbstract;
 
 /**
  * {@link ComponentFactory} for {@link BooleanPanel}.
@@ -37,8 +37,8 @@ public class BooleanPanelFactory extends ComponentFactoryScalarTypeConstrainedAb
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel scalarModel) {
-        return new BooleanPanel(id, scalarModel);
+    public Component createComponent(final String id, final PopModel popModel) {
+        return new BooleanPanel(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoiceFormComponent.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoiceFormComponent.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoiceFormComponent.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoiceFormComponent.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoiceFormComponent.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoiceFormComponent.java
similarity index 95%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoiceFormComponent.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoiceFormComponent.java
index 3c52bdbb6d..35ddc5ac12 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoiceFormComponent.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoiceFormComponent.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.choices;
+package org.apache.causeway.viewer.wicket.ui.components.pops.choices;
 
 import org.apache.wicket.markup.html.form.FormComponentPanel;
 import org.wicketstuff.select2.Select2MultiChoice;
@@ -34,7 +34,7 @@ implements CancelHintRequired  {
     private ObjectChoicesSelect2Panel owningPanel;
 
     public ChoiceFormComponent(final String id, final ObjectChoicesSelect2Panel owningPanel) {
-        super(id, owningPanel.scalarModel());
+        super(id, owningPanel.popModel());
         this.owningPanel = owningPanel;
         setType(ManagedObject.class);
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoicesSelect2PanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoicesSelect2PanelFactory.java
similarity index 61%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoicesSelect2PanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoicesSelect2PanelFactory.java
index 55f82d71e6..27ea621fdf 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ChoicesSelect2PanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ChoicesSelect2PanelFactory.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.choices;
+package org.apache.causeway.viewer.wicket.ui.components.pops.choices;
 
 import org.apache.causeway.commons.internal.exceptions._Exceptions;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.string.ScalarTitleBadgePanel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.string.ScalarTitleBadgePanel;
 
 import lombok.val;
 
@@ -35,10 +35,10 @@ extends ComponentFactoryScalarAbstract {
         TITLE_BADGE,
         VALUE_CHOICES,
         OBJECT_CHOICES;
-        static ComponentSort valueOf(final ScalarModel scalarModel) {
-            if(scalarModel.getScalarTypeSpec().isValue()
-                    && scalarModel.getChoiceProviderSort().isChoicesAny()) {
-                return scalarModel.isViewingMode()
+        static ComponentSort valueOf(final PopModel popModel) {
+            if(popModel.getScalarTypeSpec().isValue()
+                    && popModel.getChoiceProviderSort().isChoicesAny()) {
+                return popModel.isViewingMode()
                     ? TITLE_BADGE
                     : VALUE_CHOICES;
             }
@@ -51,23 +51,23 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    protected ScalarPanelAbstract createComponent(final String id, final ScalarModel scalarModel) {
-        val componentSort = ComponentSort.valueOf(scalarModel);
+    protected ScalarPanelAbstract createComponent(final String id, final PopModel popModel) {
+        val componentSort = ComponentSort.valueOf(popModel);
         switch(componentSort) {
         case TITLE_BADGE:
-            val valueType = scalarModel.getScalarTypeSpec().getCorrespondingClass();
-            return new ScalarTitleBadgePanel<>(id, scalarModel, valueType);
+            val valueType = popModel.getScalarTypeSpec().getCorrespondingClass();
+            return new ScalarTitleBadgePanel<>(id, popModel, valueType);
         case VALUE_CHOICES:
-            return new ValueChoicesSelect2Panel(id, scalarModel);
+            return new ValueChoicesSelect2Panel(id, popModel);
         case OBJECT_CHOICES:
-            return new ObjectChoicesSelect2Panel(id, scalarModel);
+            return new ObjectChoicesSelect2Panel(id, popModel);
         default:
             throw _Exceptions.unmatchedCase(componentSort);
         }
     }
 
     @Override
-    protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
+    protected ApplicationAdvice appliesTo(final PopModel popModel) {
         return ApplicationAdvice.APPLIES; //XXX depends on registration order, can we do better?
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ObjectChoicesSelect2Panel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ObjectChoicesSelect2Panel.java
similarity index 86%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ObjectChoicesSelect2Panel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ObjectChoicesSelect2Panel.java
index 42ac3a96a2..24778c5942 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ObjectChoicesSelect2Panel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ObjectChoicesSelect2Panel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.choices;
+package org.apache.causeway.viewer.wicket.ui.components.pops.choices;
 
 import java.util.Optional;
 
@@ -32,12 +32,12 @@ import org.apache.causeway.applib.services.placeholder.PlaceholderRenderService.
 import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract.ChoiceTitleHandler;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelSelectAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.CompactFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFrame;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelSelectAbstract.ChoiceTitleHandler;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.entitysimplelink.EntityLinkSimplePanel;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForReferences;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -62,19 +62,19 @@ implements ChoiceTitleHandler {
     private EntityLinkSimplePanel entityLinkOutputFormat;
     private final boolean isCompactFormat;
 
-    public ObjectChoicesSelect2Panel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
-        this.isCompactFormat = !scalarModel.getRenderingHint().isRegular();
+    public ObjectChoicesSelect2Panel(final String id, final PopModel popModel) {
+        super(id, popModel);
+        this.isCompactFormat = !popModel.getRenderingHint().isRegular();
     }
 
     @Override
     protected Component createComponentForOutput(final String id) {
 
-        val scalarModel = scalarModel();
-        final String name = scalarModel.getFriendlyName();
+        val popModel = popModel();
+        final String name = popModel.getFriendlyName();
 
         this.entityLinkOutputFormat = (EntityLinkSimplePanel) getComponentFactoryRegistry()
-                .createComponent(UiComponentType.ENTITY_LINK, scalarModel);
+                .createComponent(UiComponentType.ENTITY_LINK, popModel);
 
         entityLinkOutputFormat.setOutputMarkupId(true);
         entityLinkOutputFormat.setLabel(Model.of(name));
@@ -84,10 +84,10 @@ implements ChoiceTitleHandler {
     }
 
     @Override
-    protected FormComponent<ManagedObject> createFormComponent(final String id, final ScalarModel scalarModel) {
+    protected FormComponent<ManagedObject> createFormComponent(final String id, final PopModel popModel) {
 
         this.entityLink = new ChoiceFormComponent(UiComponentType.ENTITY_LINK.getId(), this);
-        entityLink.setRequired(scalarModel.isRequired());
+        entityLink.setRequired(popModel.isRequired());
 
         this.select2 = createSelect2(ID_AUTO_COMPLETE,
                 ChoiceProviderForReferences::new);
@@ -146,22 +146,22 @@ implements ChoiceTitleHandler {
     private void syncWithInput() {
         if(isCompactFormat) return;
 
-        val scalarModel = scalarModel();
+        val popModel = popModel();
 
         lookupScalarValueContainer()
         .ifPresent(container->{
             val componentFactory = getComponentFactoryRegistry()
-                    .findComponentFactory(UiComponentType.ENTITY_ICON_AND_TITLE, scalarModel);
+                    .findComponentFactory(UiComponentType.ENTITY_ICON_AND_TITLE, popModel);
             val iconAndTitle = componentFactory
-                    .createComponent(UiComponentType.ENTITY_ICON_AND_TITLE.getId(), scalarModel);
+                    .createComponent(UiComponentType.ENTITY_ICON_AND_TITLE.getId(), popModel);
             container.addOrReplace(iconAndTitle);
 
-            val isInlinePrompt = scalarModel.isInlinePrompt();
+            val isInlinePrompt = popModel.isInlinePrompt();
             if(isInlinePrompt) {
                 iconAndTitle.setVisible(false);
             }
 
-            val adapter = scalarModel.getObject();
+            val adapter = popModel.getObject();
             if(adapter != null
                     || isInlinePrompt) {
                 WktComponents.permanentlyHide(container, ID_ENTITY_TITLE_IF_NULL);
@@ -223,7 +223,7 @@ implements ChoiceTitleHandler {
     // -- GET INPUT AS TITLE
 
     String getTitleForFormComponentInput() {
-        val pendingElseCurrentAdapter = scalarModel().getObject();
+        val pendingElseCurrentAdapter = popModel().getObject();
         return pendingElseCurrentAdapter != null
                 ? pendingElseCurrentAdapter.getTitle()
                 : "(no object)";
@@ -242,8 +242,8 @@ implements ChoiceTitleHandler {
     */
     void convertInput() {
 
-        val scalarModel = scalarModel();
-        val pendingValue = scalarModel.proposedValue().getValue();
+        val popModel = popModel();
+        val pendingValue = popModel.proposedValue().getValue();
 
         if(isEditable()) {
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ValueChoicesSelect2Panel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ValueChoicesSelect2Panel.java
similarity index 84%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ValueChoicesSelect2Panel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ValueChoicesSelect2Panel.java
index 2591ba2482..00bd0e0d31 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/choices/ValueChoicesSelect2Panel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/choices/ValueChoicesSelect2Panel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.choices;
+package org.apache.causeway.viewer.wicket.ui.components.pops.choices;
 
 import java.util.Optional;
 
@@ -25,10 +25,10 @@ import org.apache.wicket.markup.html.form.FormComponent;
 
 import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelSelectAbstract.ChoiceTitleHandler;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelSelectAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelSelectAbstract.ChoiceTitleHandler;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderForValues;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktTooltips;
@@ -43,9 +43,9 @@ implements ChoiceTitleHandler {
 
     private final boolean isCompactFormat;
 
-    public ValueChoicesSelect2Panel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
-        this.isCompactFormat = !scalarModel.getRenderingHint().isRegular();
+    public ValueChoicesSelect2Panel(final String id, final PopModel popModel) {
+        super(id, popModel);
+        this.isCompactFormat = !popModel.getRenderingHint().isRegular();
     }
 
     @Override
@@ -55,7 +55,7 @@ implements ChoiceTitleHandler {
 
     @Override
     protected FormComponent<ManagedObject> createFormComponent(
-            final String id, final ScalarModel scalarModel) {
+            final String id, final PopModel popModel) {
         if(select2 == null) {
             this.select2 = createSelect2(id, ChoiceProviderForValues::new);
         } else {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/composite/CompositeValuePanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/composite/CompositeValuePanel.java
similarity index 74%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/composite/CompositeValuePanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/composite/CompositeValuePanel.java
index acc86400f3..8a4d2eae49 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/composite/CompositeValuePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/composite/CompositeValuePanel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.composite;
+package org.apache.causeway.viewer.wicket.ui.components.pops.composite;
 
 import java.util.Optional;
 
@@ -24,11 +24,11 @@ import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.FormComponent;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFrame;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.InputFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelFormFieldAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelFormFieldAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FieldFrame;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.InputFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 
 public class CompositeValuePanel<T>
@@ -38,14 +38,14 @@ extends ScalarPanelFormFieldAbstract<T> {
 
     public CompositeValuePanel(
             final String id,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final Class<T> valueType) {
-        super(id, scalarModel, valueType);
+        super(id, popModel, valueType);
     }
 
     @Override
     protected Component createComponentForOutput(final String id) {
-        return new MarkupComponent(id, scalarModel());
+        return new MarkupComponent(id, popModel());
     }
 
     @Override
@@ -61,7 +61,7 @@ extends ScalarPanelFormFieldAbstract<T> {
     }
 
     @Override
-    protected FormComponent<T> createFormComponent(final String id, final ScalarModel scalarModel) {
+    protected FormComponent<T> createFormComponent(final String id, final PopModel popModel) {
         // read-only FormComponent, to receive the param/property name label
         return new AbstractTextComponent<T>(id) {
             private static final long serialVersionUID = 1L;
@@ -72,15 +72,15 @@ extends ScalarPanelFormFieldAbstract<T> {
             }
             @Override
             public boolean checkRequired() {
-                if (scalarModel().isRequired()){
-                    return !scalarModel().isEmpty();
+                if (popModel().isRequired()){
+                    return !popModel().isEmpty();
                 }
                 return true;
             }
             @Override
             public void updateModel() {
                 // update not allowed; the CompositeValueUpdaterForParameter updates
-                // the underlying ScalarModel on nested dialog submission
+                // the underlying PopModel on nested dialog submission
             }
 
         };
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/DateTimeConfig.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/DateTimeConfig.java
similarity index 99%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/DateTimeConfig.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/DateTimeConfig.java
index cb3a10fb0a..dbe1d1dee9 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/DateTimeConfig.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/DateTimeConfig.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker;
+package org.apache.causeway.viewer.wicket.ui.components.pops.datepicker;
 
 import java.io.IOException;
 import java.util.Locale;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/DatetimePickerJsReference.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/DatetimePickerJsReference.java
similarity index 97%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/DatetimePickerJsReference.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/DatetimePickerJsReference.java
index 4b69423fdb..a79d01ea3c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/DatetimePickerJsReference.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/DatetimePickerJsReference.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker;
+package org.apache.causeway.viewer.wicket.ui.components.pops.datepicker;
 
 import java.util.List;
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/MomentJsReference.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/MomentJsReference.java
similarity index 95%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/MomentJsReference.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/MomentJsReference.java
index 7ad9990bae..3569e810dc 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/MomentJsReference.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/MomentJsReference.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker;
+package org.apache.causeway.viewer.wicket.ui.components.pops.datepicker;
 
 import org.apache.wicket.markup.head.HeaderItem;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/TextFieldWithDateTimePicker.java
similarity index 95%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/TextFieldWithDateTimePicker.java
index d4897ef5d7..c7749b6a0c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/TextFieldWithDateTimePicker.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker;
+package org.apache.causeway.viewer.wicket.ui.components.pops.datepicker;
 
 import static de.agilecoders.wicket.jquery.JQuery.$;
 
@@ -31,7 +31,7 @@ import org.apache.wicket.util.convert.IConverter;
 
 import org.apache.causeway.applib.locale.UserLocale;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.value.ConverterBasedOnValueSemantics;
 import org.apache.causeway.viewer.wicket.ui.components.text.TextFieldWithConverter;
 
@@ -62,16 +62,16 @@ extends TextFieldWithConverter<T> {
 
     public TextFieldWithDateTimePicker(
             final @NonNull String id,
-            final @NonNull ScalarModel scalarModel,
+            final @NonNull PopModel popModel,
             final @NonNull Class<T> type,
             final @NonNull IConverter<T> converter) {
-        super(id, scalarModel.unwrapped(type), type, Optional.of(converter));
+        super(id, popModel.unwrapped(type), type, Optional.of(converter));
         setOutputMarkupId(true);
 
         this.config = createDatePickerConfig(
-                scalarModel.getMetaModelContext(),
+                popModel.getMetaModelContext(),
                 ((ConverterBasedOnValueSemantics<T>) converter).getEditingPattern(),
-                !scalarModel.isRequired());
+                !popModel.isRequired());
 
         /* debug
                 new IConverter<T>() {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/_TimeFormatUtil.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/_TimeFormatUtil.java
similarity index 96%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/_TimeFormatUtil.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/_TimeFormatUtil.java
index 41baafda1e..6cdad920f4 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/datepicker/_TimeFormatUtil.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/datepicker/_TimeFormatUtil.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.datepicker;
+package org.apache.causeway.viewer.wicket.ui.components.pops.datepicker;
 
 import lombok.experimental.UtilityClass;
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.css b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel.css
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.css
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel.css
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel.java
similarity index 79%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel.java
index 13ab47c2e7..5b1aba15b7 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.image;
+package org.apache.causeway.viewer.wicket.ui.components.pops.image;
 
 import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
 import org.apache.wicket.markup.html.basic.Label;
@@ -24,8 +24,8 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.viewer.commons.model.decorators.FormLabelDecorator.FormLabelDecorationModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 import org.apache.causeway.viewer.wicket.ui.util.WktComponents;
@@ -36,7 +36,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel
 import lombok.val;
 
 public class JavaAwtImagePanel
-extends PanelAbstract<ManagedObject, ScalarModel> {
+extends PanelAbstract<ManagedObject, PopModel> {
 
     private static final long serialVersionUID = 1L;
 
@@ -44,8 +44,8 @@ extends PanelAbstract<ManagedObject, ScalarModel> {
     private static final String ID_SCALAR_VALUE = "scalarValue";
     private static final String ID_FEEDBACK = "feedback";
 
-    public JavaAwtImagePanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    public JavaAwtImagePanel(final String id, final PopModel popModel) {
+        super(id, popModel);
         buildGui();
     }
 
@@ -53,7 +53,7 @@ extends PanelAbstract<ManagedObject, ScalarModel> {
 
         Wkt.add(this, createScalarNameLabel(ID_SCALAR_NAME));
 
-        val wicketImage = _WktImageUtil.asWicketImage(ID_SCALAR_VALUE, scalarModel())
+        val wicketImage = _WktImageUtil.asWicketImage(ID_SCALAR_VALUE, popModel())
                 .orElse(null);
         if(wicketImage != null) {
             addOrReplace(wicketImage);
@@ -70,26 +70,26 @@ extends PanelAbstract<ManagedObject, ScalarModel> {
 
     @Override
     public String getVariation() {
-        return Facets.labelAt(scalarModel().getMetaModel())
+        return Facets.labelAt(popModel().getMetaModel())
                 .name();
     }
 
     /** see also {@link ScalarPanelAbstract} */
     protected Label createScalarNameLabel(final String id) {
 
-        val scalarModel = scalarModel();
-        val scalarNameLabel = Wkt.label(id, scalarModel.getFriendlyName());
+        val popModel = popModel();
+        val scalarNameLabel = Wkt.label(id, popModel.getFriendlyName());
 
         WktDecorators.getFormLabel()
             .decorate(scalarNameLabel, FormLabelDecorationModel
-                    .mandatory(scalarModel.isShowMandatoryIndicator()));
+                    .mandatory(popModel.isShowMandatoryIndicator()));
 
-        scalarModel.getDescribedAs()
+        popModel.getDescribedAs()
             .ifPresent(describedAs->WktTooltips.addTooltip(scalarNameLabel, describedAs));
         return scalarNameLabel;
     }
 
-    protected final ScalarModel scalarModel() {
+    protected final PopModel popModel() {
         return getModel();
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelCssResourceReference.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanelCssResourceReference.java
similarity index 95%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelCssResourceReference.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanelCssResourceReference.java
index 8a60bdb9bf..e726134612 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelCssResourceReference.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanelCssResourceReference.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.image;
+package org.apache.causeway.viewer.wicket.ui.components.pops.image;
 
 import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.request.resource.CssResourceReference;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanelFactory.java
similarity index 73%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanelFactory.java
index 9b06148665..6f07456c7c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanelFactory.java
@@ -16,14 +16,14 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.image;
+package org.apache.causeway.viewer.wicket.ui.components.pops.image;
 
 import org.apache.wicket.Component;
 
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.core.metamodel.valuesemantics.ImageValueSemantics;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarAbstract;
 
 import lombok.val;
 
@@ -37,13 +37,13 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    protected Component createComponent(final String id, final ScalarModel scalarModel) {
-        return new JavaAwtImagePanel(id, scalarModel);
+    protected Component createComponent(final String id, final PopModel popModel) {
+        return new JavaAwtImagePanel(id, popModel);
     }
 
     @Override
-    protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
-        val typeSpec = scalarModel.getScalarTypeSpec();
+    protected ApplicationAdvice appliesTo(final PopModel popModel) {
+        val typeSpec = popModel.getScalarTypeSpec();
         return appliesIf(typeSpec != null
                 && Facets.valueHasSemantics(typeSpec, ImageValueSemantics.class));
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_LEFT.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_LEFT.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_LEFT.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_LEFT.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_NONE.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_NONE.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_NONE.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_NONE.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_RIGHT.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_RIGHT.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_RIGHT.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_RIGHT.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_TOP.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_TOP.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/JavaAwtImagePanel_TOP.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/JavaAwtImagePanel_TOP.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/_WktImageUtil.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/_WktImageUtil.java
similarity index 94%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/_WktImageUtil.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/_WktImageUtil.java
index 7ba6440a6e..5772b5a2f6 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/image/_WktImageUtil.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/image/_WktImageUtil.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.image;
+package org.apache.causeway.viewer.wicket.ui.components.pops.image;
 
 import java.awt.image.BufferedImage;
 import java.util.Optional;
@@ -33,7 +33,7 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
 import org.apache.causeway.core.metamodel.util.Facets;
 import org.apache.causeway.core.metamodel.valuesemantics.ImageValueSemantics;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 import lombok.NonNull;
 import lombok.val;
@@ -76,7 +76,7 @@ class _WktImageUtil {
 
     public Optional<Image> asWicketImage(
             final @NonNull String id,
-            final @NonNull ScalarModel model) {
+            final @NonNull PopModel model) {
 
       final ManagedObject adapter = model.getObject();
       if(ManagedObjects.isNullOrUnspecifiedOrEmpty(adapter)) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponent.java
similarity index 96%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponent.java
index 7da8838098..2b8dd783e0 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponent.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import java.io.Serializable;
 import java.util.Optional;
@@ -32,7 +32,7 @@ import org.apache.causeway.applib.value.semantics.Renderer.SyntaxHighlighter;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.MmRenderUtils;
 import org.apache.causeway.core.metamodel.spec.feature.ObjectFeature;
-import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
+import org.apache.causeway.viewer.commons.model.pop.UiParameter;
 import org.apache.causeway.viewer.wicket.model.models.ScalarPropertyModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponentFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponentFactory.java
similarity index 93%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponentFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponentFactory.java
index f41912e0f8..b0efdc20a8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponentFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponentFactory.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import java.io.Serializable;
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent_reloadJs.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponent_reloadJs.java
similarity index 96%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent_reloadJs.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponent_reloadJs.java
index e1ad62508f..543b4ab2fb 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupComponent_reloadJs.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupComponent_reloadJs.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import java.util.List;
 import java.util.UUID;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupPanelFactories.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupPanelFactories.java
similarity index 91%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupPanelFactories.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupPanelFactories.java
index 9bd04f2a2c..3e591710d0 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/MarkupPanelFactories.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/MarkupPanelFactories.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import java.io.Serializable;
 
@@ -26,11 +26,11 @@ import org.apache.wicket.model.IModel;
 import org.apache.causeway.applib.value.Markup;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarTypeConstrainedAbstract;
 
 import lombok.val;
 
@@ -64,11 +64,11 @@ public class MarkupPanelFactories {
         }
 
         @Override
-        protected Component createComponent(final String id, final ScalarModel scalarModel) {
-            return new ScalarMarkupPanel<T>(id, scalarModel, valueType, this::newMarkupComponent);
+        protected Component createComponent(final String id, final PopModel popModel) {
+            return new ScalarMarkupPanel<T>(id, popModel, valueType, this::newMarkupComponent);
         }
 
-        protected abstract MarkupComponent newMarkupComponent(String id, ScalarModel model);
+        protected abstract MarkupComponent newMarkupComponent(String id, PopModel model);
 
     }
 
@@ -118,7 +118,7 @@ public class MarkupPanelFactories {
         }
 
         @Override
-        protected MarkupComponent newMarkupComponent(final String id, final ScalarModel model) {
+        protected MarkupComponent newMarkupComponent(final String id, final PopModel model) {
             val markupComponent = new MarkupComponent(id, model);
             markupComponent.setEnabled(false);
             return markupComponent;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/ScalarMarkupPanel.java
similarity index 74%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/ScalarMarkupPanel.java
index da2043fd55..d37f646a6c 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/ScalarMarkupPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/ScalarMarkupPanel.java
@@ -16,14 +16,14 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import java.util.EnumSet;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldWithValueSemantics;
 
 /**
  * Panel for rendering scalars of type {@link org.apache.causeway.applib.value.Markup}.
@@ -32,14 +32,14 @@ public class ScalarMarkupPanel<T>
 extends ScalarPanelTextFieldWithValueSemantics<T> {
 
     private static final long serialVersionUID = 1L;
-    private final MarkupComponentFactory<ScalarModel> markupComponentFactory; // serializable!
+    private final MarkupComponentFactory<PopModel> markupComponentFactory; // serializable!
 
     public ScalarMarkupPanel(
             final String id,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final Class<T> valueType,
-            final MarkupComponentFactory<ScalarModel> markupComponentFactory) {
-        super(id, scalarModel, valueType);
+            final MarkupComponentFactory<PopModel> markupComponentFactory) {
+        super(id, popModel, valueType);
         this.markupComponentFactory = markupComponentFactory;
     }
 
@@ -55,7 +55,7 @@ extends ScalarPanelTextFieldWithValueSemantics<T> {
     }
 
     protected final MarkupComponent createMarkupComponent(final String id) {
-        return markupComponentFactory.newMarkupComponent(id, scalarModel());
+        return markupComponentFactory.newMarkupComponent(id, popModel());
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/StandaloneMarkupPanel.html b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/StandaloneMarkupPanel.html
similarity index 100%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/StandaloneMarkupPanel.html
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/StandaloneMarkupPanel.html
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/StandaloneMarkupPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/StandaloneMarkupPanel.java
similarity index 95%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/StandaloneMarkupPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/StandaloneMarkupPanel.java
index f0c4c63b78..d4666021f1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/StandaloneMarkupPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/StandaloneMarkupPanel.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehavior.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/_HighlightBehavior.java
similarity index 96%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehavior.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/_HighlightBehavior.java
index 087de66910..8dab8c3e39 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehavior.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/_HighlightBehavior.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.springframework.lang.Nullable;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehaviorPrism.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/_HighlightBehaviorPrism.java
similarity index 96%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehaviorPrism.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/_HighlightBehaviorPrism.java
index b5c84d64f3..d7b275916d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/markup/_HighlightBehaviorPrism.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/markup/_HighlightBehaviorPrism.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.markup;
+package org.apache.causeway.viewer.wicket.ui.components.pops.markup;
 
 import java.util.List;
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/passwd/CausewayPasswordPanel.java
similarity index 79%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/passwd/CausewayPasswordPanel.java
index 4e67b5a4ce..36b5a7d481 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/passwd/CausewayPasswordPanel.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.passwd;
+package org.apache.causeway.viewer.wicket.ui.components.pops.passwd;
 
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 
 import org.apache.causeway.applib.value.Password;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldWithValueSemantics;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
 /**
@@ -33,8 +33,8 @@ extends ScalarPanelTextFieldWithValueSemantics<Password> {
 
     private static final long serialVersionUID = 1L;
 
-    public CausewayPasswordPanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel, Password.class);
+    public CausewayPasswordPanel(final String id, final PopModel popModel) {
+        super(id, popModel, Password.class);
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/passwd/CausewayPasswordPanelFactory.java
similarity index 76%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/passwd/CausewayPasswordPanelFactory.java
index 6af8f5292e..59bfa743ea 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/passwd/CausewayPasswordPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/passwd/CausewayPasswordPanelFactory.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.passwd;
+package org.apache.causeway.viewer.wicket.ui.components.pops.passwd;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarTypeConstrainedAbstract;
 
 /**
  * {@link ComponentFactory} for {@link CausewayPasswordPanel}.
@@ -36,8 +36,8 @@ public class CausewayPasswordPanelFactory extends ComponentFactoryScalarTypeCons
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel scalarModel) {
-        return new CausewayPasswordPanel(id, scalarModel);
+    public Component createComponent(final String id, final PopModel popModel) {
+        return new CausewayPasswordPanel(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/MultiLineStringPanel.java
similarity index 77%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/MultiLineStringPanel.java
index 0e39fe17dc..3cc97b39a1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/MultiLineStringPanel.java
@@ -16,12 +16,12 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.string;
+package org.apache.causeway.viewer.wicket.ui.components.pops.string;
 
 import java.util.EnumSet;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldTextualAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldTextualAbstract;
 
 /**
  * Panel for rendering MultiLine scalars of type String
@@ -31,8 +31,8 @@ extends ScalarPanelTextFieldTextualAbstract {
 
     private static final long serialVersionUID = 1L;
 
-    public MultiLineStringPanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    public MultiLineStringPanel(final String id, final PopModel popModel) {
+        super(id, popModel);
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/ScalarTitleBadgePanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/ScalarTitleBadgePanel.java
similarity index 78%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/ScalarTitleBadgePanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/ScalarTitleBadgePanel.java
index 3a770c801d..a4837f8afb 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/ScalarTitleBadgePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/ScalarTitleBadgePanel.java
@@ -16,15 +16,15 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.string;
+package org.apache.causeway.viewer.wicket.ui.components.pops.string;
 
 import java.util.EnumSet;
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.CompactFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldWithValueSemantics;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.CompactFragment;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
 /**
@@ -36,8 +36,8 @@ public class ScalarTitleBadgePanel<T> extends ScalarPanelTextFieldWithValueSeman
 
     private static final long serialVersionUID = 1L;
 
-    public ScalarTitleBadgePanel(final String id, final ScalarModel scalarModel, final Class<T> type) {
-        super(id, scalarModel, type);
+    public ScalarTitleBadgePanel(final String id, final PopModel popModel, final Class<T> type) {
+        super(id, popModel, type);
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/StringPanel.java
similarity index 74%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/StringPanel.java
index f746986c6c..8567d26294 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/StringPanel.java
@@ -16,10 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.string;
+package org.apache.causeway.viewer.wicket.ui.components.pops.string;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldTextualAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldTextualAbstract;
 
 /**
  * Panel for rendering scalars of type {@link String}.
@@ -28,8 +28,8 @@ public class StringPanel extends ScalarPanelTextFieldTextualAbstract {
 
     private static final long serialVersionUID = 1L;
 
-    public StringPanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    public StringPanel(final String id, final PopModel popModel) {
+        super(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/StringPanelFactory.java
similarity index 69%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/StringPanelFactory.java
index ad61e7429f..d3d34711b2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/string/StringPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/string/StringPanelFactory.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.string;
+package org.apache.causeway.viewer.wicket.ui.components.pops.string;
 
 import org.apache.wicket.Component;
 
 import org.apache.causeway.core.metamodel.util.Facets;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarTypeConstrainedAbstract;
 
 public class StringPanelFactory extends ComponentFactoryScalarTypeConstrainedAbstract {
 
@@ -33,9 +33,9 @@ public class StringPanelFactory extends ComponentFactoryScalarTypeConstrainedAbs
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel scalarModel) {
-        return Facets.multilineIsPresent(scalarModel.getMetaModel())
-            ? new MultiLineStringPanel(id, scalarModel)
-            : new StringPanel(id, scalarModel);
+    public Component createComponent(final String id, final PopModel popModel) {
+        return Facets.multilineIsPresent(popModel.getMetaModel())
+            ? new MultiLineStringPanel(id, popModel)
+            : new StringPanel(id, popModel);
     }
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/value/fallback/ValueFallbackPanel.java
similarity index 75%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/value/fallback/ValueFallbackPanel.java
index 324941f5ee..04d2f6cf01 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/value/fallback/ValueFallbackPanel.java
@@ -16,13 +16,13 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.value.fallback;
+package org.apache.causeway.viewer.wicket.ui.components.pops.value.fallback;
 
 import org.apache.causeway.applib.annotation.Value;
 import org.apache.causeway.applib.value.semantics.Parser;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldTextualAbstract;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldTextualAbstract;
 
 /**
  * Panel for rendering any value types that do not have their own custom
@@ -37,8 +37,8 @@ extends ScalarPanelTextFieldTextualAbstract {
 
     private static final long serialVersionUID = 1L;
 
-    public ValueFallbackPanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    public ValueFallbackPanel(final String id, final PopModel popModel) {
+        super(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/value/fallback/ValueFallbackPanelFactory.java
similarity index 69%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/value/fallback/ValueFallbackPanelFactory.java
index d007a782a6..52b1369b82 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/value/fallback/ValueFallbackPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/pops/value/fallback/ValueFallbackPanelFactory.java
@@ -16,14 +16,14 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.causeway.viewer.wicket.ui.components.scalars.value.fallback;
+package org.apache.causeway.viewer.wicket.ui.components.pops.value.fallback;
 
 
 import org.apache.wicket.Component;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarAbstract;
 
 /**
  * {@link ComponentFactory} for the {@link ValueFallbackPanel}.
@@ -39,19 +39,19 @@ extends ComponentFactoryScalarAbstract {
     }
 
     @Override
-    public Component createComponent(final String id, final ScalarModel scalarModel) {
-        return new ValueFallbackPanel(id, scalarModel);
+    public Component createComponent(final String id, final PopModel popModel) {
+        return new ValueFallbackPanel(id, popModel);
     }
 
     @Override
-    protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
-        if(!scalarModel.getScalarTypeSpec().isValue()) {
+    protected ApplicationAdvice appliesTo(final PopModel popModel) {
+        if(!popModel.getScalarTypeSpec().isValue()) {
             return ApplicationAdvice.DOES_NOT_APPLY;
         }
 
         // autoComplete not supported for values, only for references
-        // final boolean hasAutoComplete = scalarModel.hasAutoComplete();
-        return appliesIf( !(scalarModel.hasChoices() /*|| hasAutoComplete*/) );
+        // final boolean hasAutoComplete = popModel.hasAutoComplete();
+        return appliesIf( !(popModel.hasChoices() /*|| hasAutoComplete*/) );
     }
 
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditForm.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditForm.java
index f227de28f9..b2f6b75647 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditForm.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditForm.java
@@ -26,7 +26,7 @@ import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
 import org.apache.causeway.viewer.wicket.model.models.ScalarPropertyModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.panels.PromptFormAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
@@ -50,15 +50,15 @@ extends PromptFormAbstract<ScalarPropertyModel> {
 
     @Override
     protected void addParameters() {
-        val scalarModel = scalarPropertyModel();
+        val popModel = scalarPropertyModel();
         val container = Wkt.containerAdd(this, PropertyEditFormPanel.ID_PROPERTY);
 
         val component = getComponentFactoryRegistry()
-                .addOrReplaceComponent(container, UiComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
+                .addOrReplaceComponent(container, UiComponentType.SCALAR_NAME_AND_VALUE, popModel);
 
         _Casts.castTo(ScalarPanelAbstract.class, component)
-        .ifPresent(scalarModelSubscriber->
-            scalarModelSubscriber.addChangeListener(this)); // handling onUpdate and onError
+        .ifPresent(popModelSubscriber->
+            popModelSubscriber.addChangeListener(this)); // handling onUpdate and onError
     }
 
     @Override
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditFormPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditFormPanelFactory.java
index 403c255f2e..7da3e25f14 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditFormPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditFormPanelFactory.java
@@ -44,8 +44,8 @@ public class PropertyEditFormPanelFactory extends ComponentFactoryAbstract {
 
     @Override
     public Component createComponent(final String id, final IModel<?> model) {
-        final ScalarPropertyModel scalarModel = (ScalarPropertyModel) model;
-        return new PropertyEditFormPanel(id, scalarModel);
+        final ScalarPropertyModel popModel = (ScalarPropertyModel) model;
+        return new PropertyEditFormPanel(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java
index 048aad30ab..04472134cc 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanel.java
@@ -24,7 +24,7 @@ import org.apache.causeway.core.metamodel.commons.ViewOrEditMode;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
 import org.apache.causeway.viewer.commons.model.hints.RenderingHint;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ScalarPropertyModel;
 import org.apache.causeway.viewer.wicket.ui.components.actions.ActionParametersPanel;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
@@ -48,27 +48,27 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
 
     public PropertyEditPanel(
             final String id,
-            final ScalarPropertyModel scalarModel) {
+            final ScalarPropertyModel popModel) {
 
-        super(id, scalarModel.copyHaving(
+        super(id, popModel.copyHaving(
                 ViewOrEditMode.EDITING,
                 RenderingHint.REGULAR));
 
-        buildGui(scalarModel);
+        buildGui(popModel);
     }
 
     @Override
     protected void onConfigure() {
         super.onConfigure();
 
-        buildGui(scalarModel());
+        buildGui(popModel());
     }
 
-    private void buildGui(final ScalarModel scalarModel) {
-        buildGuiForParameters(scalarModel);
+    private void buildGui(final PopModel popModel) {
+        buildGuiForParameters(popModel);
     }
 
-    ScalarPropertyModel scalarModel() {
+    ScalarPropertyModel popModel() {
         return super.getModel();
     }
 
@@ -77,14 +77,14 @@ extends PanelAbstract<ManagedObject, ScalarPropertyModel> {
         return this;
     }
 
-    private void buildGuiForParameters(final ScalarModel scalarModel) {
+    private void buildGuiForParameters(final PopModel popModel) {
 
         WebMarkupContainer header = addHeader();
 
-        getComponentFactoryRegistry().addOrReplaceComponent(this, UiComponentType.PROPERTY_EDIT_FORM, scalarModel());
-        getComponentFactoryRegistry().addOrReplaceComponent(header, UiComponentType.ENTITY_ICON_AND_TITLE, scalarModel.getParentUiModel());
+        getComponentFactoryRegistry().addOrReplaceComponent(this, UiComponentType.PROPERTY_EDIT_FORM, popModel());
+        getComponentFactoryRegistry().addOrReplaceComponent(header, UiComponentType.ENTITY_ICON_AND_TITLE, popModel.getParentUiModel());
 
-        Wkt.labelAdd(header, ID_PROPERTY_NAME, scalarModel()::getFriendlyName)
+        Wkt.labelAdd(header, ID_PROPERTY_NAME, popModel()::getFriendlyName)
             .setEscapeModelStrings(true);
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanelFactory.java
index 4bc1f1c491..c9563cefa7 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/property/PropertyEditPanelFactory.java
@@ -44,8 +44,8 @@ public class PropertyEditPanelFactory extends ComponentFactoryAbstract {
 
     @Override
     public Component createComponent(final String id, final IModel<?> model) {
-        final ScalarPropertyModel scalarModel = (ScalarPropertyModel) model;
-        return new PropertyEditPanel(id, scalarModel);
+        final ScalarPropertyModel popModel = (ScalarPropertyModel) model;
+        return new PropertyEditPanel(id, popModel);
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java
index 7e3b0d31f6..4367153f90 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/CausewayToWicketTreeAdapter.java
@@ -35,7 +35,7 @@ import org.apache.causeway.applib.graph.tree.TreeNode;
 import org.apache.causeway.core.metamodel.context.HasMetaModelContext;
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import org.apache.causeway.viewer.wicket.model.util.WktContext;
 import org.apache.causeway.viewer.wicket.ui.components.entity.icontitle.EntityIconAndTitlePanel;
@@ -55,13 +55,13 @@ class CausewayToWicketTreeAdapter {
     }
 
     /**
-     * @param scalarModel - holder of {@link TreeNode}
+     * @param popModel - holder of {@link TreeNode}
      */
-    public static Component adapt(final String id, final ScalarModel scalarModel) {
-        return scalarModel==null
-                || scalarModel.getObject()==null
+    public static Component adapt(final String id, final PopModel popModel) {
+        return popModel==null
+                || popModel.getObject()==null
             ? emptyTreeComponent(id)
-            : EntityTree.of(id, scalarModel.getObject(), scalarModel.getMetaModelContext());
+            : EntityTree.of(id, popModel.getObject(), popModel.getMetaModelContext());
     }
 
     // -- FALLBACK
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java
index 3eb60ce48b..1f51045deb 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/ParentedTreePanel.java
@@ -21,9 +21,9 @@ package org.apache.causeway.viewer.wicket.ui.components.tree;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract2;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FrameFragment;
 
 import lombok.val;
 
@@ -35,8 +35,8 @@ extends ScalarPanelAbstract2 {
 
     private static final long serialVersionUID = 1L;
 
-    public ParentedTreePanel(final String id, final ScalarModel scalarModel) {
-        super(id, scalarModel);
+    public ParentedTreePanel(final String id, final PopModel popModel) {
+        super(id, popModel);
     }
 
     @Override
@@ -60,11 +60,11 @@ extends ScalarPanelAbstract2 {
 
     private MarkupContainer createTreeComponent(final String id) {
         val container = getScalarFrameContainer();
-        val scalarModel = scalarModel();
-        val tree = CausewayToWicketTreeAdapter.adapt(id, scalarModel);
+        val popModel = popModel();
+        val tree = CausewayToWicketTreeAdapter.adapt(id, popModel);
         container.add(tree);
         // adds the tree-theme behavior to the tree's parent
-        container.add(getTreeThemeProvider().treeThemeFor(scalarModel));
+        container.add(getTreeThemeProvider().treeThemeFor(popModel));
         return (MarkupContainer) tree;
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java
index 50285ae7ca..44dd505f88 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/tree/TreePanelFactories.java
@@ -22,11 +22,11 @@ import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarAbstract;
 
 import lombok.val;
 
@@ -45,16 +45,16 @@ public class TreePanelFactories {
         }
 
         @Override
-        protected Component createComponent(final String id, final ScalarModel scalarModel) {
-            return new ParentedTreePanel(id, scalarModel);
+        protected Component createComponent(final String id, final PopModel popModel) {
+            return new ParentedTreePanel(id, popModel);
         }
 
         @Override
-        protected ApplicationAdvice appliesTo(final ScalarModel scalarModel) {
-            if(!scalarModel.isScalarTypeSubtypeOf(org.apache.causeway.applib.graph.tree.TreeNode.class)) {
+        protected ApplicationAdvice appliesTo(final PopModel popModel) {
+            if(!popModel.isScalarTypeSubtypeOf(org.apache.causeway.applib.graph.tree.TreeNode.class)) {
                 return ApplicationAdvice.DOES_NOT_APPLY;
             }
-            return appliesIf( !scalarModel.hasChoices() );
+            return appliesIf( !popModel.hasChoices() );
         }
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java
index c10f4994de..2b8fc744b5 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/unknown/UnknownModelPanel.java
@@ -22,7 +22,7 @@ import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.core.metamodel.object.ManagedObjects;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -63,9 +63,9 @@ extends PanelAbstract<Object, IModel<Object>> {
             } else {
                 buf.append("??? objectAdapter is NULL");
             }
-        } else if(model instanceof ScalarModel) {
-            val scalarModel = (ScalarModel) model;
-            val scalarAdapter = scalarModel.getObject();
+        } else if(model instanceof PopModel) {
+            val popModel = (PopModel) model;
+            val scalarAdapter = popModel.getObject();
             if(ManagedObjects.isSpecified(scalarAdapter)) {
                 buf.append(String.format("??? spec=%s, value='%s'",
                         scalarAdapter.getSpecification(), scalarAdapter.getPojo()));
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/value/StandaloneValuePanel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/value/StandaloneValuePanel.java
index e76216b8a9..6f206a9da1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/value/StandaloneValuePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/value/StandaloneValuePanel.java
@@ -27,7 +27,7 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.MmRenderUtils;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
 import org.apache.causeway.viewer.wicket.model.models.ValueModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java
index 79c147611c..028d3aeff3 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/entitysimplelink/EntityLinkSimplePanelFactory.java
@@ -23,7 +23,7 @@ import org.apache.wicket.model.IModel;
 
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.viewer.commons.model.components.UiComponentType;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.models.UiObjectWkt;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactoryAbstract;
 
@@ -40,7 +40,7 @@ public class EntityLinkSimplePanelFactory extends ComponentFactoryAbstract {
         if (model instanceof UiObjectWkt) {
             return ApplicationAdvice.APPLIES;
         }
-        if (model instanceof ScalarModel) {
+        if (model instanceof PopModel) {
             return ApplicationAdvice.APPLIES;
         }
         return ApplicationAdvice.DOES_NOT_APPLY;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
index 652e046cfa..a9749f290b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/ActionLink.java
@@ -42,7 +42,7 @@ import org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryRegistr
 import org.apache.causeway.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
 import org.apache.causeway.viewer.wicket.ui.components.actions.ActionParametersPanel;
 import org.apache.causeway.viewer.wicket.ui.components.layout.bs.BSGridPanel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FrameFragment;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarFragmentFactory.FrameFragment;
 import org.apache.causeway.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.causeway.viewer.wicket.ui.panels.FormExecutorDefault;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelUtil;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
index 003a70f474..a6410298f2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/linkandlabel/LinkAndLabelFactoryAbstract.java
@@ -23,7 +23,7 @@ import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
 import org.apache.causeway.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.causeway.viewer.wicket.model.models.ActionModel;
 import org.apache.causeway.viewer.wicket.model.models.EntityCollectionModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
@@ -35,7 +35,7 @@ implements Serializable {
     private static final long serialVersionUID = 1L;
 
     protected final String linkId;
-    protected final ScalarModel scalarModelForAssociationIfAny;
+    protected final PopModel popModelForAssociationIfAny;
     protected final EntityCollectionModel collectionModelForAssociationIfAny;
 
     /**
@@ -45,12 +45,12 @@ implements Serializable {
 
     protected abstract ActionModel actionModel(
             ManagedAction managedAction,
-            ScalarModel scalarModelForAssociationIfAny);
+            PopModel popModelForAssociationIfAny);
 
     // called exclusively by LinkAndLabel, which implements HasManagedAction
     protected final ActionLink newLinkComponent(final ManagedAction managedAction) {
         return ActionLink
-                .create(linkId, actionModel(managedAction, scalarModelForAssociationIfAny));
+                .create(linkId, actionModel(managedAction, popModelForAssociationIfAny));
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java
index e87a4b20c0..cb49bdfce8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2.java
@@ -35,11 +35,11 @@ import org.apache.causeway.core.metamodel.context.MetaModelContext;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.causeway.viewer.wicket.model.models.HasCommonContext;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModelWithMultiChoice;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModelWithSingleChoice;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModelWithMultiChoice;
+import org.apache.causeway.viewer.wicket.model.models.PopModelWithSingleChoice;
 import org.apache.causeway.viewer.wicket.model.util.WktContext;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarModelChangeDispatcher;
+import org.apache.causeway.viewer.wicket.ui.components.pops.PopModelChangeDispatcher;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 
 import lombok.NonNull;
@@ -59,26 +59,26 @@ implements
 
     public static Select2 createSelect2(
             final String id,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final ChoiceProviderAbstract choiceProvider,
-            final ScalarModelChangeDispatcher select2ChangeDispatcher) {
-        val select2 = new Select2(scalarModel.isSingular()
+            final PopModelChangeDispatcher select2ChangeDispatcher) {
+        val select2 = new Select2(popModel.isSingular()
                 ? Either.left(
                         Select2ChoiceExt.create(id,
-                                ScalarModelWithSingleChoice.chain(scalarModel),
-                                scalarModel,
+                                PopModelWithSingleChoice.chain(popModel),
+                                popModel,
                                 choiceProvider))
                 : Either.right(
                         Select2MultiChoiceExt.create(id,
-                                ScalarModelWithMultiChoice.chain(scalarModel),
-                                scalarModel,
+                                PopModelWithMultiChoice.chain(popModel),
+                                popModel,
                                 choiceProvider)));
 
-        select2.setLabel(Model.of(scalarModel.getFriendlyName()));
+        select2.setLabel(Model.of(popModel.getFriendlyName()));
         select2.getSettings().setWidth("100%");
 
         // listen on select2:select/unselect events (client-side)
-        select2.add(new Select2OnSelect(scalarModel, select2ChangeDispatcher));
+        select2.add(new Select2OnSelect(popModel, select2ChangeDispatcher));
 
         return select2;
     }
@@ -142,7 +142,7 @@ implements
         asComponent().remove(behavior);
     }
 
-    public void syncIfNull(final ScalarModel model) {
+    public void syncIfNull(final PopModel model) {
         if(!model.isPlural()) {
             if(memento() == null) {
                 this.mementoModel().setObject(null);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
index 1353ce2498..ed67e0721f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
@@ -24,7 +24,7 @@ import org.wicketstuff.select2.Select2Choice;
 import org.apache.causeway.applib.id.HasLogicalType;
 import org.apache.causeway.applib.id.LogicalType;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 
 import lombok.Getter;
@@ -38,9 +38,9 @@ implements HasLogicalType {
     public static Select2ChoiceExt create(
             final String id,
             final IModel<ObjectMemento> modelObject,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final ChoiceProviderAbstract choiceProvider) {
-        return new Select2ChoiceExt(id, modelObject, scalarModel, choiceProvider);
+        return new Select2ChoiceExt(id, modelObject, popModel, choiceProvider);
     }
 
     @Getter(onMethod_ = {@Override}) private final LogicalType logicalType;
@@ -48,11 +48,11 @@ implements HasLogicalType {
     private Select2ChoiceExt(
             final String id,
             final IModel<ObjectMemento> model,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final ChoiceProviderAbstract choiceProvider) {
         super(id, model, choiceProvider);
 
-        logicalType = scalarModel.getScalarTypeSpec().getLogicalType();
+        logicalType = popModel.getScalarTypeSpec().getLogicalType();
 
         getSettings().setCloseOnSelect(true);
         getSettings().setWidth("auto");
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
index ac9e7b467d..096e96c90d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
@@ -28,7 +28,7 @@ import org.apache.causeway.applib.id.HasLogicalType;
 import org.apache.causeway.applib.id.LogicalType;
 import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.select2.providers.ChoiceProviderAbstract;
 
 import lombok.Getter;
@@ -43,10 +43,10 @@ implements HasLogicalType {
     public static Select2MultiChoiceExt create(
             final String id,
             final IModel<ArrayList<ObjectMemento>> modelObject,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final ChoiceProviderAbstract choiceProvider) {
 
-        return new Select2MultiChoiceExt(id, _Casts.uncheckedCast(modelObject), scalarModel, choiceProvider);
+        return new Select2MultiChoiceExt(id, _Casts.uncheckedCast(modelObject), popModel, choiceProvider);
     }
 
     @Getter(onMethod_ = {@Override}) private final LogicalType logicalType;
@@ -54,11 +54,11 @@ implements HasLogicalType {
     Select2MultiChoiceExt(
             final String id,
             final IModel<Collection<ObjectMemento>> model,
-            final ScalarModel scalarModel,
+            final PopModel popModel,
             final ChoiceProviderAbstract choiceProvider) {
 
         super(id, model, choiceProvider);
-        logicalType = scalarModel.getScalarTypeSpec().getLogicalType();
+        logicalType = popModel.getScalarTypeSpec().getLogicalType();
 
         getSettings().setCloseOnSelect(true);
         getSettings().setWidth("auto");
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java
index 3b2e66f77c..e7e7751300 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/Select2OnSelect.java
@@ -42,9 +42,9 @@ import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.object.PackedManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.model.util.PageParameterUtils;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarModelChangeDispatcher;
+import org.apache.causeway.viewer.wicket.ui.components.pops.PopModelChangeDispatcher;
 
 import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
@@ -62,8 +62,8 @@ import lombok.val;
 class Select2OnSelect extends AbstractAjaxBehavior {
 
     private static final long serialVersionUID = 1L;
-    private final ScalarModel scalarModel;
-    private final ScalarModelChangeDispatcher select2ChangeDispatcher;
+    private final PopModel popModel;
+    private final PopModelChangeDispatcher select2ChangeDispatcher;
 
     private static enum Event {
         SELECT, UNSELECT, CLEAR;
@@ -193,7 +193,7 @@ class Select2OnSelect extends AbstractAjaxBehavior {
     }
 
     private ManagedObject demementify(final ObjectMemento memento) {
-        return scalarModel.getObjectManager().demementify(memento);
+        return popModel.getObjectManager().demementify(memento);
     }
 
     private PackedManagedObject demementify(
@@ -204,7 +204,7 @@ class Select2OnSelect extends AbstractAjaxBehavior {
     }
 
     private @NonNull Bindable<ManagedObject> updateReceiver() {
-        val updateReceiver = scalarModel.getSpecialization().fold(
+        val updateReceiver = popModel.getSpecialization().fold(
                 param->
                     param.getParameterNegotiationModel().getBindableParamValue(param.getParameterIndex()),
                 prop->
@@ -213,14 +213,14 @@ class Select2OnSelect extends AbstractAjaxBehavior {
     }
 
     private @NonNull ObjectSpecification elementSpec() {
-        val updateReceiver = scalarModel.getSpecialization().fold(
+        val updateReceiver = popModel.getSpecialization().fold(
                 param->param.getScalarTypeSpec(),
                 prop->prop.getScalarTypeSpec());
         return updateReceiver;
     }
 
     private void clearUpdateReceiver() {
-        scalarModel.getSpecialization().accept(
+        popModel.getSpecialization().accept(
             param->
                 param.getParameterNegotiationModel().getParamModels()
                 .getElseFail(param.getParameterIndex())
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForScalarModel.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForPopModel.java
similarity index 84%
rename from viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForScalarModel.java
rename to viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForPopModel.java
index b3d9b0d59e..4b0bc26caf 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForScalarModel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderAbstractForPopModel.java
@@ -20,7 +20,7 @@ package org.apache.causeway.viewer.wicket.ui.components.widgets.select2.provider
 
 
 import org.apache.causeway.core.metamodel.context.MetaModelContext;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 import lombok.AccessLevel;
 import lombok.Getter;
@@ -28,24 +28,24 @@ import lombok.RequiredArgsConstructor;
 import lombok.experimental.Accessors;
 
 @RequiredArgsConstructor(access = AccessLevel.PROTECTED)
-public abstract class ChoiceProviderAbstractForScalarModel
+public abstract class ChoiceProviderAbstractForPopModel
 extends ChoiceProviderAbstract {
 
     private static final long serialVersionUID = 1L;
 
     @Getter @Accessors(fluent = true)
-    private final ScalarModel scalarModel;
+    private final PopModel popModel;
 
     @Override
     protected final boolean isRequired() {
-        return scalarModel().isRequired();
+        return popModel().isRequired();
     }
 
     // -- DEPS
 
     @Override
     public MetaModelContext getMetaModelContext() {
-        return scalarModel().getMetaModelContext();
+        return popModel().getMetaModelContext();
     }
 
 }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java
index 6791b709d8..8a8178d7ee 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForReferences.java
@@ -23,24 +23,24 @@ import org.apache.causeway.commons.internal.base._NullSafe;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
 import org.apache.causeway.core.metamodel.util.Facets;
-import org.apache.causeway.viewer.commons.model.scalar.UiParameter;
-import org.apache.causeway.viewer.commons.model.scalar.UiScalar;
-import org.apache.causeway.viewer.commons.model.scalar.UiScalar.ChoiceProviderSort;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.commons.model.pop.UiParameter;
+import org.apache.causeway.viewer.commons.model.pop.UiPop;
+import org.apache.causeway.viewer.commons.model.pop.UiPop.ChoiceProviderSort;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 import lombok.val;
 
 public class ChoiceProviderForReferences
-extends ChoiceProviderAbstractForScalarModel {
+extends ChoiceProviderAbstractForPopModel {
 
     private static final long serialVersionUID = 1L;
 
-    private final UiScalar.ChoiceProviderSort choiceProviderSort;
+    private final UiPop.ChoiceProviderSort choiceProviderSort;
 
     public ChoiceProviderForReferences(
-            final ScalarModel scalarModel) {
-        super(scalarModel);
-        this.choiceProviderSort = ChoiceProviderSort.valueOf(scalarModel);
+            final PopModel popModel) {
+        super(popModel);
+        this.choiceProviderSort = ChoiceProviderSort.valueOf(popModel);
     }
 
     @Override
@@ -62,28 +62,28 @@ extends ChoiceProviderAbstractForScalarModel {
     // -- HELPER
 
     private Can<ObjectMemento> queryAll() {
-        return scalarModel().getChoices() // must not return detached entities
+        return popModel().getChoices() // must not return detached entities
                 .map(ManagedObject::getMementoElseFail);
     }
 
     private Can<ObjectMemento> queryWithAutoCompleteUsingObjectSpecification(final String term) {
         val autoCompleteAdapters = Facets
-                .autoCompleteExecute(scalarModel().getScalarTypeSpec(), term);
+                .autoCompleteExecute(popModel().getScalarTypeSpec(), term);
         return autoCompleteAdapters
                 .map(ManagedObject::getMementoElseFail);
     }
 
     private Can<ObjectMemento> queryWithAutoComplete(final String term) {
-        val scalarModel = scalarModel();
-        val pendingArgs = scalarModel.isParameter()
-                ? ((UiParameter)scalarModel).getParameterNegotiationModel().getParamValues()
+        val popModel = popModel();
+        val pendingArgs = popModel.isParameter()
+                ? ((UiParameter)popModel).getParameterNegotiationModel().getParamValues()
                 : Can.<ManagedObject>empty();
         val pendingArgMementos = pendingArgs
                 .map(ManagedObject::getMementoElseFail);
 
-        if(scalarModel.isParameter()) {
+        if(popModel.isParameter()) {
             // recover any pendingArgs
-            val paramModel = (UiParameter)scalarModel;
+            val paramModel = (UiParameter)popModel;
 
             paramModel
                 .getParameterNegotiationModel()
@@ -91,7 +91,7 @@ extends ChoiceProviderAbstractForScalarModel {
                         reconstructPendingArgs(paramModel, pendingArgMementos));
         }
 
-        return scalarModel
+        return popModel
                 .getAutoComplete(term)
                 .map(ManagedObject::getMementoElseFail);
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java
index e967d20f81..53083b4be8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/select2/providers/ChoiceProviderForValues.java
@@ -21,17 +21,17 @@ package org.apache.causeway.viewer.wicket.ui.components.widgets.select2.provider
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.core.metamodel.object.ManagedObject;
 import org.apache.causeway.core.metamodel.objectmanager.memento.ObjectMemento;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 
 // values don't currently support autoComplete - no branch is required
 public class ChoiceProviderForValues
-extends ChoiceProviderAbstractForScalarModel {
+extends ChoiceProviderAbstractForPopModel {
 
     private static final long serialVersionUID = 1L;
 
     public ChoiceProviderForValues(
-            final ScalarModel scalarModel) {
-        super(scalarModel);
+            final PopModel popModel) {
+        super(popModel);
     }
 
     @Override
@@ -42,7 +42,7 @@ extends ChoiceProviderAbstractForScalarModel {
     // -- HELPER
 
     private Can<ObjectMemento> queryAll() {
-        return scalarModel().getChoices()
+        return popModel().getChoices()
             .map(ManagedObject::getMementoElseFail);
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/PageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/PageAbstract.java
index f04de8aa1f..517796c9be 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/PageAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/PageAbstract.java
@@ -68,7 +68,7 @@ import org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryRegistr
 import org.apache.causeway.viewer.wicket.ui.app.registry.HasComponentFactoryRegistry;
 import org.apache.causeway.viewer.wicket.ui.components.actionprompt.ActionPromptModalWindow;
 import org.apache.causeway.viewer.wicket.ui.components.actionpromptsb.ActionPromptSidebar;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.image.JavaAwtImagePanelCssResourceReference;
+import org.apache.causeway.viewer.wicket.ui.components.pops.image.JavaAwtImagePanelCssResourceReference;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModel;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModelProvider;
 import org.apache.causeway.viewer.wicket.ui.errors.ExceptionModel;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/PromptFormAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/PromptFormAbstract.java
index ef92ce66c4..d8d12d9604 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/PromptFormAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/PromptFormAbstract.java
@@ -42,8 +42,8 @@ import org.apache.causeway.viewer.wicket.model.models.ActionModel;
 import org.apache.causeway.viewer.wicket.model.models.ActionPromptProvider;
 import org.apache.causeway.viewer.wicket.model.models.FormExecutorContext;
 import org.apache.causeway.viewer.wicket.model.models.ScalarPropertyModel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarModelChangeListener;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.PopModelChangeListener;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelAbstract;
 import org.apache.causeway.viewer.wicket.ui.pages.PageAbstract;
 import org.apache.causeway.viewer.wicket.ui.pages.entity.EntityPage;
 import org.apache.causeway.viewer.wicket.ui.util.Wkt;
@@ -56,7 +56,7 @@ public abstract class PromptFormAbstract<T extends
     FormExecutorContext
     & IModel<ManagedObject>>
 extends OkCancelForm<T>
-implements ScalarModelChangeListener {
+implements PopModelChangeListener {
 
     private static final long serialVersionUID = 1L;
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java
index aad5ee6357..59cc46dad0 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java
@@ -93,7 +93,7 @@ import org.apache.causeway.core.metamodel.interactions.managed.nonscalar.DataTab
 import org.apache.causeway.viewer.commons.model.components.UiString;
 import org.apache.causeway.viewer.wicket.model.hints.CausewayActionCompletedEvent;
 import org.apache.causeway.viewer.wicket.model.hints.CausewayEnvelopeEvent;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupComponent;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupComponent;
 import org.apache.causeway.viewer.wicket.ui.components.text.TextAreaWithConverter;
 import org.apache.causeway.viewer.wicket.ui.components.text.TextFieldWithConverter;
 import org.apache.causeway.viewer.wicket.ui.components.widgets.fileinput.FileUploadFieldWithNestingFix;
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
index d8527fe953..011d20a0fc 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
@@ -37,7 +37,7 @@ import org.apache.causeway.applib.value.semantics.ValueSemanticsResolver;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.internal.base._NullSafe;
 import org.apache.causeway.commons.internal.functions._Predicates;
-import org.apache.causeway.viewer.wicket.model.models.ScalarModel;
+import org.apache.causeway.viewer.wicket.model.models.PopModel;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
 import org.apache.causeway.viewer.wicket.ui.components.about.AboutPanelFactory;
@@ -59,22 +59,22 @@ import org.apache.causeway.viewer.wicket.ui.components.entity.icontitle.EntityIc
 import org.apache.causeway.viewer.wicket.ui.components.footer.FooterPanelFactory;
 import org.apache.causeway.viewer.wicket.ui.components.header.HeaderPanelFactory;
 import org.apache.causeway.viewer.wicket.ui.components.layout.bs.BSGridPanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ComponentFactoryScalarTypeConstrainedAbstract;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldNumeric;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldWithTemporalPicker;
+import org.apache.causeway.viewer.wicket.ui.components.pops.ScalarPanelTextFieldWithValueSemantics;
+import org.apache.causeway.viewer.wicket.ui.components.pops.blobclob.CausewayBlobPanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.blobclob.CausewayClobPanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.bool.BooleanPanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.choices.ChoicesSelect2PanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.composite.CompositeValuePanel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.image.JavaAwtImagePanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.markup.MarkupPanelFactories;
+import org.apache.causeway.viewer.wicket.ui.components.pops.passwd.CausewayPasswordPanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.string.StringPanelFactory;
+import org.apache.causeway.viewer.wicket.ui.components.pops.value.fallback.ValueFallbackPanelFactory;
 import org.apache.causeway.viewer.wicket.ui.components.property.PropertyEditFormPanelFactory;
 import org.apache.causeway.viewer.wicket.ui.components.property.PropertyEditPanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ComponentFactoryScalarTypeConstrainedAbstract;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldNumeric;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithTemporalPicker;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.ScalarPanelTextFieldWithValueSemantics;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob.CausewayBlobPanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.blobclob.CausewayClobPanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.bool.BooleanPanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.choices.ChoicesSelect2PanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.composite.CompositeValuePanel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.image.JavaAwtImagePanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.passwd.CausewayPasswordPanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.string.StringPanelFactory;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.value.fallback.ValueFallbackPanelFactory;
 import org.apache.causeway.viewer.wicket.ui.components.standalonecollection.StandaloneCollectionPanelFactory;
 import org.apache.causeway.viewer.wicket.ui.components.tree.TreePanelFactories;
 import org.apache.causeway.viewer.wicket.ui.components.unknown.UnknownModelPanelFactory;
@@ -304,8 +304,8 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel scalarModel) {
-            return new ScalarPanelTextFieldWithValueSemantics<T>(id, scalarModel, valueTypeClass);
+        public Component createComponent(final String id, final PopModel popModel) {
+            return new ScalarPanelTextFieldWithValueSemantics<T>(id, popModel, valueTypeClass);
         }
     }
 
@@ -323,8 +323,8 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel scalarModel) {
-            return new ScalarPanelTextFieldNumeric<T>(id, scalarModel, valueTypeClass);
+        public Component createComponent(final String id, final PopModel popModel) {
+            return new ScalarPanelTextFieldNumeric<T>(id, popModel, valueTypeClass);
         }
     }
 
@@ -343,8 +343,8 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel scalarModel) {
-            return new ScalarPanelTextFieldWithTemporalPicker<T>(id, scalarModel, valueTypeClass);
+        public Component createComponent(final String id, final PopModel popModel) {
+            return new ScalarPanelTextFieldWithTemporalPicker<T>(id, popModel, valueTypeClass);
         }
     }
 
@@ -363,8 +363,8 @@ public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistr
         }
 
         @Override
-        public Component createComponent(final String id, final ScalarModel scalarModel) {
-            return new CompositeValuePanel<T>(id, scalarModel, valueTypeClass);
+        public Component createComponent(final String id, final PopModel popModel) {
+            return new CompositeValuePanel<T>(id, popModel, valueTypeClass);
         }
     }
 
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java
index 830e1172a7..4ccba1aa03 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/causeway/viewer/wicket/viewer/wicketapp/config/WicketViewerCssBundleInit.java
@@ -28,7 +28,7 @@ import org.apache.causeway.commons.internal.collections._Sets;
 import org.apache.causeway.viewer.wicket.model.causeway.WicketApplicationInitializer;
 import org.apache.causeway.viewer.wicket.ui.ComponentFactory;
 import org.apache.causeway.viewer.wicket.ui.components.actionmenu.entityactions.AdditionalLinksPanel;
-import org.apache.causeway.viewer.wicket.ui.components.scalars.string.MultiLineStringPanel;
+import org.apache.causeway.viewer.wicket.ui.components.pops.string.MultiLineStringPanel;
 import org.apache.causeway.viewer.wicket.ui.panels.PanelUtil;
 import org.apache.causeway.viewer.wicket.viewer.wicketapp.CausewayWicketApplication;