You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/12/06 14:24:09 UTC

[isis] branch master updated: ISIS-2177: further cleanup memento code (better reflect common idioms)

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 17b2741  ISIS-2177: further cleanup memento code (better reflect common idioms)
17b2741 is described below

commit 17b274178c8e39930ceca631bd93f0ecb9aaea27
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Dec 6 15:23:54 2019 +0100

    ISIS-2177: further cleanup memento code (better reflect common idioms)
---
 .../org/apache/isis/runtime/IsisModuleRuntime.java |   4 +-
 .../java/org/apache/isis/runtime/memento/Data.java |   8 +-
 .../apache/isis/runtime/memento/MementoStore.java  |  22 ---
 .../apache/isis/runtime/memento/ObjectData.java    |   2 +-
 .../{Memento.java => ObjectMarshaller.java}        |  55 ++----
 ...bjectAdapterMemento.java => ObjectMemento.java} |  23 ++-
 ...ollection.java => ObjectMementoCollection.java} |  16 +-
 ...MementoHelper.java => ObjectMementoLegacy.java} | 215 ++++++++++-----------
 ...mentoService.java => ObjectMementoService.java} |  14 +-
 ...fault.java => ObjectMementoServiceDefault.java} |  51 +++--
 ...ntoStoreLegacy.java => ObjectUnmarshaller.java} |  65 +++----
 .../wicket/model/models/EntityCollectionModel.java |  32 +--
 .../viewer/wicket/model/models/EntityModel.java    |  38 ++--
 .../model/models/EntityModelForReference.java      |   8 +-
 .../model/models/HintPageParameterSerializer.java  |   4 +-
 .../wicket/model/models/ObjectAdapterModel.java    |   6 +-
 .../viewer/wicket/model/models/ScalarModel.java    |  20 +-
 .../model/models/ScalarModelWithMultiPending.java  |  24 +--
 .../model/models/ScalarModelWithPending.java       |  20 +-
 .../model/models/ToggledMementosProvider.java      |   4 +-
 .../viewer/wicket/model/models/ValueModel.java     |   4 +-
 .../ScalarModel_isScalarSubtypingAnyOf_Test.java   |   4 +-
 .../actionmenu/serviceactions/CssMenuItem.java     |   4 +-
 .../ui/components/collection/CollectionPanel.java  |   4 +-
 .../CollectionContentsAsAjaxTablePanel.java        |   6 +-
 .../columns/ObjectAdapterTitleColumn.java          |   8 +-
 .../entity/icontitle/EntityIconAndTitlePanel.java  |   4 +-
 .../scalars/ScalarPanelSelect2Abstract.java        |  16 +-
 .../scalars/reference/ReferencePanel.java          |  16 +-
 .../valuechoices/ValueChoicesSelect2Panel.java     |  14 +-
 .../linkandlabel/ActionLinkFactoryAbstract.java    |   4 +-
 .../ui/components/widgets/select2/ChoiceExt.java   |   4 +-
 .../ui/components/widgets/select2/Select2.java     |  32 +--
 .../widgets/select2/Select2ChoiceExt.java          |   8 +-
 .../widgets/select2/Select2MultiChoiceExt.java     |  10 +-
 .../select2/providers/EmptyChoiceProvider.java     |  12 +-
 .../ObjectAdapterMementoProviderAbstract.java      |  20 +-
 .../ObjectAdapterMementoProviderForChoices.java    |   4 +-
 ...tAdapterMementoProviderForReferenceChoices.java |  14 +-
 ...entoProviderForReferenceObjectAutoComplete.java |   6 +-
 ...derForReferenceParamOrPropertyAutoComplete.java |   8 +-
 ...bjectAdapterMementoProviderForValueChoices.java |  18 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  10 +-
 ...tAdapterMementoProviderForValueChoicesTest.java |  14 +-
 .../ConverterForObjectAdapterMemento.java          |  14 +-
 .../viewer/wicketapp/IsisWicketApplication.java    |   4 +-
 .../wicketapp/IsisWicketApplication_Defaults.java  |   4 +-
 .../webapp/context/IsisWebAppCommonContext.java    |  14 +-
 48 files changed, 408 insertions(+), 503 deletions(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
index ca151e9..56152c1 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
@@ -19,7 +19,7 @@
 package org.apache.isis.runtime;
 
 import org.apache.isis.metamodel.IsisModuleMetamodel;
-import org.apache.isis.runtime.memento.ObjectAdapterMementoServiceDefault;
+import org.apache.isis.runtime.memento.ObjectMementoServiceDefault;
 import org.apache.isis.runtime.system.context.session.RuntimeEventService;
 import org.apache.isis.runtime.system.context.session.RuntimeEventSupport_Spring;
 import org.apache.isis.runtime.system.persistence.events.PersistenceEventService;
@@ -38,7 +38,7 @@ import org.springframework.context.annotation.Import;
         IsisModuleMetamodel.class,
 
         // @Service's
-        ObjectAdapterMementoServiceDefault.class,
+        ObjectMementoServiceDefault.class,
         RuntimeEventService.class,
         PersistenceEventService.class,
         TimestampService.class,
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/Data.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/Data.java
index fc236a9..a819601 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/Data.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/Data.java
@@ -21,8 +21,6 @@ package org.apache.isis.runtime.memento;
 
 import java.io.Serializable;
 
-import javax.annotation.Nullable;
-
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 
@@ -37,11 +35,11 @@ class Data implements Serializable {
 
     private final static long serialVersionUID = 1L;
 
+    @Getter private final Oid oid;
+
     /**
-     * @apiNote could be <tt>null</tt> if represents a value (standalone adapter).
+     * @apiNote: <tt>null</tt> if represents a value
      */
-    @Getter @Nullable private final Oid oid;
-
     public ObjectSpecId getObjectSpecId() {
         return oid.getObjectSpecId();
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoStore.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoStore.java
deleted file mode 100644
index 44bb6c5..0000000
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoStore.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.isis.runtime.memento;
-
-import java.util.List;
-
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.metamodel.spec.ObjectSpecification;
-
-/**
- * 
- * @deprecated introduced as refactoring step, to decouple memento code from PersistenceSession
- *
- */
-public interface MementoStore {
-
-    // -- TODO remove ObjectAdapter references from API
-    ObjectAdapter adapterOfMemento(ObjectSpecification spec, Oid oid, Data data);
-
-    ManagedObject adapterForListOfPojos(List<Object> listOfPojos);
-
-}
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectData.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectData.java
index 2a522b4..f4469f1 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectData.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectData.java
@@ -44,7 +44,7 @@ final class ObjectData extends Data {
         fields.put(fieldName, entry == null ? NO_ENTRY : entry);
     }
 
-    public boolean containsField() {
+    public boolean hasAnyField() {
         return !fields.isEmpty();
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/Memento.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMarshaller.java
similarity index 77%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/Memento.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMarshaller.java
index fb459e4..976545c 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/Memento.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMarshaller.java
@@ -19,16 +19,13 @@
 
 package org.apache.isis.runtime.memento;
 
-import java.io.Serializable;
-import java.util.List;
+import java.util.Set;
 
 import org.apache.isis.commons.exceptions.UnknownTypeException;
 import org.apache.isis.commons.internal.collections._Arrays;
-import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Sets;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.adapter.oid.Oid;
-import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.metamodel.facets.object.encodeable.EncodableFacet;
@@ -37,48 +34,27 @@ import org.apache.isis.metamodel.facets.properties.update.modify.PropertySetterF
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.feature.Contributed;
 import org.apache.isis.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.metamodel.specloader.SpecificationLoader;
 
-import lombok.Getter;
-import lombok.ToString;
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
 /**
- * Holds the state for the specified object in serializable form.
- *
- * <p>
- * This object is {@link Serializable} and can be passed over the network
- * easily. Also for a persistent objects only the reference's {@link Oid}s are
- * held, avoiding the need for serializing the whole object graph.
+ * converts a {@link ManagedObject} to serializable {@link Data} 
+ * 
+ * @since 2.0
  */
-@Log4j2 @ToString
-class Memento implements Serializable {
-
-    private final static long serialVersionUID = 1L;
-
-    private final List<Oid> oids = _Lists.newArrayList();
-
-    @Getter private Data data;
+@Log4j2
+class ObjectMarshaller {
 
-    public Memento(ManagedObject adapter) {
-        data = (adapter == null) ? null : createData(adapter);
+    Data toData(ManagedObject adapter) {
+        val data = (adapter == null) ? null : createData(adapter);
         log.debug("created memento for {}", this);
-    }
-    
-    public ObjectAdapter recreateObject(
-            SpecificationLoader specLoader, 
-            MementoStore mementoStore) {
-        
-        if (data == null) {
-            return null;
-        }
-        val spec = specLoader.lookupBySpecIdElseLoad(data.getObjectSpecId());
-        val oid = data.getOid();
-        return mementoStore.adapterOfMemento(spec, oid, data);
+        return data;
     }
     
     // -- HELPER
+    
+    private final transient Set<Oid> oids = _Sets.newHashSet();
 
     private Data createData(ManagedObject adapter) {
         if (adapter.getSpecification().isParentedOrFreeCollection() && 
@@ -157,7 +133,7 @@ class Memento implements Serializable {
         }
         
         if (refOid.isValue()) {
-            return createStandaloneData(refOid, referencedAdapter);
+            return new StandaloneData(refOid, referencedAdapter);
         }
 
         val refSpec = referencedAdapter.getSpecification();
@@ -173,10 +149,5 @@ class Memento implements Serializable {
         return new Data(refOid);
     }
 
-    private Data createStandaloneData(RootOid rootOid, ManagedObject adapter) {
-        return new StandaloneData(rootOid, adapter);
-    }
-
-
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMemento.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMemento.java
similarity index 68%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMemento.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMemento.java
index e3f00e7..98cc68c 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMemento.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMemento.java
@@ -29,19 +29,18 @@ import org.apache.isis.commons.collections.Cardinality;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.metamodel.specloader.SpecificationLoader;
 
 /**
  * @since 2.0
  */
-public interface ObjectAdapterMemento extends Serializable {
+public interface ObjectMemento extends Serializable {
 
     String asString();
 
     /**
      * TODO[2112] outdated
      * Returns a bookmark only if 
-     * {@link org.apache.isis.runtime.memento.MementoHelper.RecreateStrategy#LOOKUP} and 
+     * {@link org.apache.isis.runtime.memento.ObjectMementoLegacy.RecreateStrategy#LOOKUP} and 
      * {@link #getCardinality() sort} is {@link Cardinality#SCALAR scalar}.
      * Returns {@code null} otherwise. 
      */
@@ -50,7 +49,7 @@ public interface ObjectAdapterMemento extends Serializable {
     /**
      * TODO[2112] outdated 
      * Returns a bookmark only if 
-     * {@link org.apache.isis.runtime.memento.MementoHelper.RecreateStrategy#LOOKUP} and 
+     * {@link org.apache.isis.runtime.memento.ObjectMementoLegacy.RecreateStrategy#LOOKUP} and 
      * {@link #getCardinality() sort} is {@link Cardinality#SCALAR scalar}.
      * Returns {@code null} otherwise. 
      */
@@ -58,30 +57,30 @@ public interface ObjectAdapterMemento extends Serializable {
 
     ObjectSpecId getObjectSpecId();
     
-    ManagedObject reconstructObject(MementoStore mementoStore, SpecificationLoader specificationLoader);
+    ManagedObject reconstructObject(ObjectUnmarshaller objectUnmarshaller);
 
     // -- FACTORIES
 
-    static ObjectAdapterMemento wrapMementoList(
-            Collection<ObjectAdapterMemento> container, 
+    static ObjectMemento wrapMementoList(
+            Collection<ObjectMemento> container, 
             ObjectSpecId specId) {
 
         // ArrayList is serializable
         if(container instanceof ArrayList) {
-            return ObjectAdapterMementoCollection.of((ArrayList<ObjectAdapterMemento>)container, specId);
+            return ObjectMementoCollection.of((ArrayList<ObjectMemento>)container, specId);
         }
-        return ObjectAdapterMementoCollection.of(_Lists.newArrayList(container), specId);
+        return ObjectMementoCollection.of(_Lists.newArrayList(container), specId);
     }
 
     // ArrayList is serializable
-    static Optional<ArrayList<ObjectAdapterMemento>> unwrapList(ObjectAdapterMemento memento) {
+    static Optional<ArrayList<ObjectMemento>> unwrapList(ObjectMemento memento) {
         if(memento==null) {
             return Optional.empty();
         }
-        if(!(memento instanceof ObjectAdapterMementoCollection)) {
+        if(!(memento instanceof ObjectMementoCollection)) {
             return Optional.empty();
         }
-        return Optional.ofNullable(((ObjectAdapterMementoCollection)memento).unwrapList());
+        return Optional.ofNullable(((ObjectMementoCollection)memento).unwrapList());
     }
 
 
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoCollection.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoCollection.java
similarity index 76%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoCollection.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoCollection.java
index 3a5741b..44fdaee 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoCollection.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoCollection.java
@@ -26,8 +26,6 @@ import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.system.context.IsisContext;
 
 import lombok.Getter;
 import lombok.Value;
@@ -39,25 +37,24 @@ import lombok.val;
  *
  */
 @Value(staticConstructor = "of")
-final class ObjectAdapterMementoCollection implements ObjectAdapterMemento {
+final class ObjectMementoCollection implements ObjectMemento {
 
     private static final long serialVersionUID = 1L;
 
-    private final ArrayList<ObjectAdapterMemento> container; 
+    private final ArrayList<ObjectMemento> container; 
     @Getter(onMethod = @__({@Override})) private final ObjectSpecId objectSpecId;
 
     @Override
-    public ManagedObject reconstructObject(MementoStore mementoStore, SpecificationLoader specificationLoader) {
+    public ManagedObject reconstructObject(ObjectUnmarshaller objectUnmarshaller) {
         
-        //TODO[2112] we don't need the persistence layer to do that!
         val listOfPojos = getContainer().stream()
-              .map(memento->memento.reconstructObject(mementoStore, specificationLoader))
+              .map(memento->memento.reconstructObject(objectUnmarshaller))
               .filter(_NullSafe::isPresent)
               .map(ManagedObject::getPojo)
               .filter(_NullSafe::isPresent)
               .collect(Collectors.toCollection(ArrayList::new));
         
-        return mementoStore.adapterForListOfPojos(listOfPojos);
+        return objectUnmarshaller.adapterForListOfPojos(listOfPojos);
     }
 
     @Override
@@ -75,10 +72,9 @@ final class ObjectAdapterMementoCollection implements ObjectAdapterMemento {
         throw _Exceptions.notImplemented(); // please unwrap at call-site
     }    
 
-    public ArrayList<ObjectAdapterMemento> unwrapList() {
+    public ArrayList<ObjectMemento> unwrapList() {
         return getContainer();
     }
 
 
-
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoHelper.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoLegacy.java
similarity index 73%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoHelper.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoLegacy.java
index 5cef276..7ef60eb 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoHelper.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoLegacy.java
@@ -29,6 +29,7 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.hint.HintStore;
 import org.apache.isis.commons.internal.assertions._Assert;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.memento._Mementos.Memento;
 import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.adapter.oid.ObjectNotFoundException;
@@ -47,14 +48,14 @@ import lombok.NoArgsConstructor;
 import lombok.val;
 
 
-final class MementoHelper implements Serializable {
+final class ObjectMementoLegacy implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
     /**
      * Factory method
      */
-    public static MementoHelper createOrNull(ManagedObject adapter) {
+    public static ObjectMementoLegacy createOrNull(ManagedObject adapter) {
         if (adapter == null) {
             return null;
         }
@@ -62,50 +63,38 @@ final class MementoHelper implements Serializable {
         if(pojo == null) {
             return null;
         }
-        return new MementoHelper(adapter);
+        return new ObjectMementoLegacy(adapter);
     }
 
     /**
      * Factory method
      */
-    static MementoHelper createPersistent(
+    static ObjectMementoLegacy createPersistent(
             RootOid rootOid, 
             SpecificationLoader specificationLoader) {
         
-        return new MementoHelper(rootOid, specificationLoader);
+        return new ObjectMementoLegacy(rootOid, specificationLoader);
     }
 
-    static MementoHelper createForList(
-            ArrayList<MementoHelper> list,
+    static ObjectMementoLegacy createForList(
+            ArrayList<ObjectMementoLegacy> list,
             ObjectSpecId objectSpecId) {
         
-        return new MementoHelper(list, objectSpecId);
+        return new ObjectMementoLegacy(list, objectSpecId);
     }
 
-    static MementoHelper createForList(
-            Collection<MementoHelper> list,
+    static ObjectMementoLegacy createForList(
+            Collection<ObjectMementoLegacy> list,
             ObjectSpecId objectSpecId) {
         
         return list != null ? createForList(_Lists.newArrayList(list), objectSpecId) :  null;
     }
 
-//    static ObjectAdapterMementoDefault createForIterable(
-//            Iterable<?> iterable,
-//            ObjectSpecId specId,
-//            ObjectAdapterProvider objectAdapterProvider) {
-//        
-//        final List<ObjectAdapterMementoDefault> listOfMementos =
-//                _NullSafe.stream(iterable)
-//                .map(Functions.fromPojo(objectAdapterProvider))
-//                .collect(Collectors.toList());
-//        return createForList(listOfMementos, specId);
-//    }
-
-    static MementoHelper createForEncodeable(
+    static ObjectMementoLegacy createForEncodeable(
             ObjectSpecId specId,
             String encodableValue) {
         
-        return new MementoHelper(specId, encodableValue);
+        return new ObjectMementoLegacy(specId, encodableValue);
     }
 
     enum Cardinality {
@@ -116,24 +105,24 @@ final class MementoHelper implements Serializable {
 
             @Override
             public ManagedObject asAdapter(
-                    MementoHelper memento,
-                    MementoStore mementoStore,
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller,
                     SpecificationLoader specificationLoader) {
                 
-                return memento.recreateStrategy.getAdapter(memento, mementoStore, specificationLoader);
+                return memento.recreateStrategy.recreateObject(memento, objectUnmarshaller, specificationLoader);
             }
 
             @Override
-            public int hashCode(MementoHelper memento) {
+            public int hashCode(ObjectMementoLegacy memento) {
                 return memento.recreateStrategy.hashCode(memento);
             }
 
             @Override
-            public boolean equals(MementoHelper memento, Object other) {
-                if (!(other instanceof MementoHelper)) {
+            public boolean equals(ObjectMementoLegacy memento, Object other) {
+                if (!(other instanceof ObjectMementoLegacy)) {
                     return false;
                 }
-                final MementoHelper otherMemento = (MementoHelper) other;
+                final ObjectMementoLegacy otherMemento = (ObjectMementoLegacy) other;
                 if(otherMemento.cardinality != SCALAR) {
                     return false;
                 }
@@ -141,7 +130,7 @@ final class MementoHelper implements Serializable {
             }
 
             @Override
-            public String asString(final MementoHelper memento) {
+            public String asString(final ObjectMementoLegacy memento) {
                 return memento.recreateStrategy.toString(memento);
             }
         },
@@ -152,27 +141,27 @@ final class MementoHelper implements Serializable {
 
             @Override
             public ManagedObject asAdapter(
-                    MementoHelper memento,
-                    MementoStore mementoStore,
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller,
                     SpecificationLoader specificationLoader) {
                 
                 final List<Object> listOfPojos =
-                        _Lists.map(memento.list, Functions.toPojo(mementoStore, specificationLoader));
+                        _Lists.map(memento.list, Functions.toPojo(objectUnmarshaller, specificationLoader));
 
-                return mementoStore.adapterForListOfPojos(listOfPojos);
+                return objectUnmarshaller.adapterForListOfPojos(listOfPojos);
             }
 
             @Override
-            public int hashCode(MementoHelper memento) {
+            public int hashCode(ObjectMementoLegacy memento) {
                 return memento.list.hashCode();
             }
 
             @Override
-            public boolean equals(MementoHelper memento, Object other) {
-                if (!(other instanceof MementoHelper)) {
+            public boolean equals(ObjectMementoLegacy memento, Object other) {
+                if (!(other instanceof ObjectMementoLegacy)) {
                     return false;
                 }
-                final MementoHelper otherMemento = (MementoHelper) other;
+                final ObjectMementoLegacy otherMemento = (ObjectMementoLegacy) other;
                 if(otherMemento.cardinality != VECTOR) {
                     return false;
                 }
@@ -180,7 +169,7 @@ final class MementoHelper implements Serializable {
             }
 
             @Override
-            public String asString(MementoHelper memento) {
+            public String asString(ObjectMementoLegacy memento) {
                 return memento.list.toString();
             }
         };
@@ -193,15 +182,15 @@ final class MementoHelper implements Serializable {
         }
 
         public abstract ManagedObject asAdapter(
-                MementoHelper memento,
-                MementoStore mementoStore,
+                ObjectMementoLegacy memento,
+                ObjectUnmarshaller objectUnmarshaller,
                 SpecificationLoader specificationLoader);
 
-        public abstract int hashCode(MementoHelper memento);
+        public abstract int hashCode(ObjectMementoLegacy memento);
 
-        public abstract boolean equals(MementoHelper memento, Object other);
+        public abstract boolean equals(ObjectMementoLegacy memento, Object other);
 
-        public abstract String asString(MementoHelper memento);
+        public abstract String asString(ObjectMementoLegacy memento);
     }
 
     enum RecreateStrategy {
@@ -212,9 +201,9 @@ final class MementoHelper implements Serializable {
          */
         ENCODEABLE {
             @Override
-            ManagedObject recreateAdapter(
-                    MementoHelper memento,
-                    MementoStore mementoStore,
+            public ManagedObject recreateObject(
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller,
                     SpecificationLoader specificationLoader) {
                 
                 ObjectSpecId specId = memento.objectSpecId;
@@ -225,27 +214,27 @@ final class MementoHelper implements Serializable {
 
             @Override
             public boolean equals(
-                    MementoHelper memento, 
-                    MementoHelper otherMemento) {
+                    ObjectMementoLegacy memento, 
+                    ObjectMementoLegacy otherMemento) {
                 
                 return otherMemento.recreateStrategy == ENCODEABLE && 
                         memento.encodableValue.equals(otherMemento.encodableValue);
             }
 
             @Override
-            public int hashCode(MementoHelper memento) {
+            public int hashCode(ObjectMementoLegacy memento) {
                 return memento.encodableValue.hashCode();
             }
 
             @Override
-            public String toString(MementoHelper memento) {
+            public String toString(ObjectMementoLegacy memento) {
                 return memento.encodableValue;
             }
 
             @Override
             public void resetVersion(
-                    MementoHelper memento,
-                    MementoStore mementoStore, 
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller, 
                     SpecificationLoader specificationLoader) {
             }
         },
@@ -255,9 +244,9 @@ final class MementoHelper implements Serializable {
          */
         LOOKUP {
             @Override
-            ManagedObject recreateAdapter(
-                    MementoHelper memento,
-                    MementoStore mementoStore, 
+            public ManagedObject recreateObject(
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller, 
                     SpecificationLoader specificationLoader) {
                 
                 RootOid rootOid = Oid.unmarshaller().unmarshal(memento.persistentOidStr, RootOid.class);
@@ -278,30 +267,30 @@ final class MementoHelper implements Serializable {
 
             @Override
             public void resetVersion(
-                    MementoHelper memento,
-                    MementoStore mementoStore,
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller,
                     SpecificationLoader specificationLoader) {
                 
                 //XXX REVIEW: this may be redundant because recreateAdapter also guarantees the version will be reset.
-                final ManagedObject adapter = recreateAdapter(
-                        memento, mementoStore, specificationLoader);
+                final ManagedObject adapter = recreateObject(
+                        memento, objectUnmarshaller, specificationLoader);
                 
                 Oid oid = ManagedObject._identify(adapter);
                 memento.persistentOidStr = oid.enString();
             }
 
             @Override
-            public boolean equals(MementoHelper oam, MementoHelper other) {
+            public boolean equals(ObjectMementoLegacy oam, ObjectMementoLegacy other) {
                 return other.recreateStrategy == LOOKUP && oam.persistentOidStr.equals(other.persistentOidStr);
             }
 
             @Override
-            public int hashCode(MementoHelper oam) {
+            public int hashCode(ObjectMementoLegacy oam) {
                 return oam.persistentOidStr.hashCode();
             }
 
             @Override
-            public String toString(final MementoHelper oam) {
+            public String toString(final ObjectMementoLegacy oam) {
                 return oam.persistentOidStr;
             }
 
@@ -315,61 +304,53 @@ final class MementoHelper implements Serializable {
              * {@link ConcurrencyChecking} is ignored for transients.
              */
             @Override
-            ManagedObject recreateAdapter(
-                    MementoHelper memento,
-                    MementoStore mementoStore, 
+            public ManagedObject recreateObject(
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller, 
                     SpecificationLoader specificationLoader) {
                 
-                return memento.transientMemento.recreateObject(specificationLoader, mementoStore);
+                return objectUnmarshaller.recreateObject(memento.transientMemento);
             }
 
             @Override
-            public boolean equals(MementoHelper oam, MementoHelper other) {
+            public boolean equals(ObjectMementoLegacy oam, ObjectMementoLegacy other) {
                 return other.recreateStrategy == TRANSIENT && oam.transientMemento.equals(other.transientMemento);
             }
 
             @Override
-            public int hashCode(MementoHelper oam) {
+            public int hashCode(ObjectMementoLegacy oam) {
                 return oam.transientMemento.hashCode();
             }
 
             @Override
-            public String toString(final MementoHelper oam) {
+            public String toString(final ObjectMementoLegacy oam) {
                 return oam.transientMemento.toString();
             }
 
             @Override
             public void resetVersion(
-                    MementoHelper memento,
-                    MementoStore mementoStore,
+                    ObjectMementoLegacy memento,
+                    ObjectUnmarshaller objectUnmarshaller,
                     SpecificationLoader specificationLoader) {
             }
         };
 
-        public ManagedObject getAdapter(
-                MementoHelper memento,
-                MementoStore mementoStore,
-                SpecificationLoader specificationLoader) {
-            
-            return recreateAdapter(memento, mementoStore, specificationLoader);
-        }
-
-        abstract ManagedObject recreateAdapter(
-                MementoHelper memento,
-                MementoStore mementoStore, 
+        public abstract ManagedObject recreateObject(
+                ObjectMementoLegacy memento,
+                ObjectUnmarshaller objectUnmarshaller,
                 SpecificationLoader specificationLoader);
 
         public abstract boolean equals(
-                MementoHelper memento, 
-                MementoHelper otherMemento);
+                ObjectMementoLegacy memento, 
+                ObjectMementoLegacy otherMemento);
         
-        public abstract int hashCode(MementoHelper memento);
+        public abstract int hashCode(ObjectMementoLegacy memento);
 
-        public abstract String toString(MementoHelper memento);
+        public abstract String toString(ObjectMementoLegacy memento);
 
         public abstract void resetVersion(
-                MementoHelper memento,
-                MementoStore mementoStore, 
+                ObjectMementoLegacy memento,
+                ObjectUnmarshaller objectUnmarshaller, 
                 SpecificationLoader specificationLoader);
     }
 
@@ -424,15 +405,15 @@ final class MementoHelper implements Serializable {
      * <p>
      * Also, populated only if {@link #getCardinality() sort} is {@link Cardinality#SCALAR scalar}
      */
-    private Memento transientMemento;
+    private Data transientMemento;
 
     /**
      * populated only if {@link #getCardinality() sort} is {@link Cardinality#VECTOR vector}
      */
-    private ArrayList<MementoHelper> list;
+    private ArrayList<ObjectMementoLegacy> list;
 
-    public MementoHelper(
-            ArrayList<MementoHelper> list, 
+    public ObjectMementoLegacy(
+            ArrayList<ObjectMementoLegacy> list, 
             ObjectSpecId objectSpecId) {
         
         this.cardinality = Cardinality.VECTOR;
@@ -440,7 +421,7 @@ final class MementoHelper implements Serializable {
         this.objectSpecId = objectSpecId;
     }
 
-    private MementoHelper(RootOid rootOid, SpecificationLoader specificationLoader) {
+    private ObjectMementoLegacy(RootOid rootOid, SpecificationLoader specificationLoader) {
 
         // -- // TODO[2112] do we ever need to create ENCODEABLE here?
         val specId = rootOid.getObjectSpecId(); 
@@ -467,7 +448,7 @@ final class MementoHelper implements Serializable {
         this.recreateStrategy = RecreateStrategy.LOOKUP;
     }
 
-    private MementoHelper(ManagedObject adapter) {
+    private ObjectMementoLegacy(ManagedObject adapter) {
         
         requires(adapter, "adapter");
         
@@ -477,7 +458,7 @@ final class MementoHelper implements Serializable {
         init(adapter);
     }
 
-    private MementoHelper(ObjectSpecId specId, String encodableValue) {
+    private ObjectMementoLegacy(ObjectSpecId specId, String encodableValue) {
         this.cardinality = Cardinality.SCALAR;
         this.objectSpecId = specId;
         this.encodableValue = encodableValue;
@@ -499,7 +480,7 @@ final class MementoHelper implements Serializable {
 
         val rootOid = (RootOid) ManagedObject._identify(adapter);
         if (rootOid.isTransient()) {
-            transientMemento = new Memento(adapter);
+            transientMemento = new ObjectMarshaller().toData(adapter);
             recreateStrategy = RecreateStrategy.TRANSIENT;
             return;
         }
@@ -517,18 +498,18 @@ final class MementoHelper implements Serializable {
         return cardinality;
     }
 
-    ArrayList<MementoHelper> getList() {
+    ArrayList<ObjectMementoLegacy> getList() {
         ensureVector();
         return list;
     }
 
 
     void resetVersion(
-            MementoStore mementoStore,
+            ObjectUnmarshaller objectUnmarshaller,
             SpecificationLoader specificationLoader) {
         
         ensureScalar();
-        recreateStrategy.resetVersion(this, mementoStore, specificationLoader);
+        recreateStrategy.resetVersion(this, objectUnmarshaller, specificationLoader);
     }
 
 
@@ -554,8 +535,8 @@ final class MementoHelper implements Serializable {
      * best to call once and then hold onto the value thereafter. Alternatively,
      * can call {@link #setAdapter(ManagedObject)} to keep this memento in sync.
      */
-    ManagedObject getObjectAdapter(
-            MementoStore mementoStore,
+    ManagedObject reconstructObject(
+            ObjectUnmarshaller objectUnmarshaller,
             SpecificationLoader specificationLoader) {
         
         val spec = specificationLoader.loadSpecification(objectSpecId);
@@ -569,7 +550,7 @@ final class MementoHelper implements Serializable {
             return spec.getMetaModelContext().lookupServiceAdapterById(objectSpecId.asString());
         }
         
-        return cardinality.asAdapter(this, mementoStore, specificationLoader);
+        return cardinality.asAdapter(this, objectUnmarshaller, specificationLoader);
     }
 
     /**
@@ -591,21 +572,21 @@ final class MementoHelper implements Serializable {
      * {@link ConcurrencyChecking concurrency checking} of the OID.
      */
     boolean containedIn(
-            List<MementoHelper> mementos,
-            MementoStore mementoStore,
+            List<ObjectMementoLegacy> mementos,
+            ObjectUnmarshaller objectUnmarshaller,
             SpecificationLoader specificationLoader) {
 
         ensureScalar();
 
         //XXX REVIEW: heavy handed, ought to be possible to just compare the OIDs
         // ignoring the concurrency checking
-        val currAdapter = getObjectAdapter(mementoStore, specificationLoader);
+        val currAdapter = reconstructObject(objectUnmarshaller, specificationLoader);
         
         for (val memento : mementos) {
             if(memento == null) {
                 continue;
             }
-            val otherAdapter = memento.getObjectAdapter(mementoStore, specificationLoader);
+            val otherAdapter = memento.reconstructObject(objectUnmarshaller, specificationLoader);
             if(currAdapter == otherAdapter) {
                 return true;
             }
@@ -639,19 +620,19 @@ final class MementoHelper implements Serializable {
     @NoArgsConstructor(access = AccessLevel.PRIVATE)
     final static class Functions {
 
-        public static Function<Object, MementoHelper> fromPojo(
+        public static Function<Object, ObjectMementoLegacy> fromPojo(
                 final ObjectAdapterProvider adapterProvider) {
             
-            return pojo->MementoHelper.createOrNull( adapterProvider.adapterFor(pojo) );
+            return pojo->ObjectMementoLegacy.createOrNull( adapterProvider.adapterFor(pojo) );
         }
 
-        public static Function<MementoHelper, ManagedObject> fromMemento(
-                final MementoStore mementoStore,
+        public static Function<ObjectMementoLegacy, ManagedObject> fromMemento(
+                final ObjectUnmarshaller objectUnmarshaller,
                 final SpecificationLoader specificationLoader) {
 
             return memento->{
                 try {
-                    return memento.getObjectAdapter(mementoStore, specificationLoader);
+                    return memento.reconstructObject(objectUnmarshaller, specificationLoader);
                 } catch (ObjectNotFoundException e) {
                     // this can happen if for example the object is not visible (due to the security tenanted facet)
                     return null;
@@ -659,15 +640,15 @@ final class MementoHelper implements Serializable {
             };
         }
 
-        public static Function<MementoHelper, Object> toPojo(
-                final MementoStore mementoStore,
+        public static Function<ObjectMementoLegacy, Object> toPojo(
+                final ObjectUnmarshaller objectUnmarshaller,
                 final SpecificationLoader specificationLoader) {
             
             return memento->{
                 if(memento == null) {
                     return null;
                 }
-                val objectAdapter = memento.getObjectAdapter(mementoStore, specificationLoader);
+                val objectAdapter = memento.reconstructObject(objectUnmarshaller, specificationLoader);
                 if(objectAdapter == null) {
                     return null;
                 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoService.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoService.java
similarity index 74%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoService.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoService.java
index b5c6d59..8931e4b 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoService.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoService.java
@@ -32,24 +32,24 @@ import lombok.val;
  * 
  *
  */
-public interface ObjectAdapterMementoService {
+public interface ObjectMementoService {
 
-    ObjectAdapterMemento mementoForRootOid(RootOid rootOid);
+    ObjectMemento mementoForRootOid(RootOid rootOid);
 
-    ObjectAdapterMemento mementoForAdapter(ManagedObject adapter);
+    ObjectMemento mementoForAdapter(ManagedObject adapter);
 
-    ObjectAdapterMemento mementoForPojo(Object pojo);
+    ObjectMemento mementoForPojo(Object pojo);
     
-    default ObjectAdapterMemento mementoForPojos(Iterable<Object> iterablePojos, ObjectSpecId specId) {
+    default ObjectMemento mementoForPojos(Iterable<Object> iterablePojos, ObjectSpecId specId) {
         val listOfMementos = _NullSafe.stream(iterablePojos)
                 .map(pojo->mementoForPojo(pojo))
                 .collect(Collectors.toList());
         val memento =
-                ObjectAdapterMemento.wrapMementoList(listOfMementos, specId);
+                ObjectMemento.wrapMementoList(listOfMementos, specId);
         return memento;
     }
 
-    ManagedObject reconstructObject(ObjectAdapterMemento memento);
+    ManagedObject reconstructObject(ObjectMemento memento);
     
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoServiceDefault.java
similarity index 61%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoServiceDefault.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoServiceDefault.java
index 701bc0d..34c7c2d 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectAdapterMementoServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectMementoServiceDefault.java
@@ -25,18 +25,14 @@ import javax.inject.Singleton;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.system.context.IsisContext;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.java.Log;
-import lombok.extern.log4j.Log4j2;
 import lombok.val;
 
 /**
@@ -45,55 +41,54 @@ import lombok.val;
  *
  */
 @Service
-@Named("isisRuntime.ObjectAdapterMementoServiceDefault")
+@Named("isisRuntime.ObjectMementoServiceDefault")
 @Singleton
-@Log4j2
-public class ObjectAdapterMementoServiceDefault
-implements ObjectAdapterMementoService {
+public class ObjectMementoServiceDefault
+implements ObjectMementoService {
     
     @Inject @Getter private SpecificationLoader specificationLoader;
     @Inject private ObjectManager objectManager;
-    private MementoStore mementoStore;
+    private ObjectUnmarshaller objectUnmarshaller;
 
     @Override
-    public ObjectAdapterMemento mementoForRootOid(RootOid rootOid) {
-        val delegate = MementoHelper.createPersistent(rootOid, specificationLoader);
-        return ObjectAdapterMementoDelegator.of(delegate);
+    public ObjectMemento mementoForRootOid(RootOid rootOid) {
+        val mementoAdapter = ObjectMementoLegacy.createPersistent(rootOid, specificationLoader);
+        return ObjectMementoAdapter.of(mementoAdapter);
     }
 
     @Override
-    public ObjectAdapterMemento mementoForAdapter(ManagedObject adapter) {
-        val delegate = MementoHelper.createOrNull(adapter);
-        if(delegate==null) {
+    public ObjectMemento mementoForAdapter(ManagedObject adapter) {
+        val mementoAdapter = ObjectMementoLegacy.createOrNull(adapter);
+        if(mementoAdapter==null) {
             return null;
         }
-        return ObjectAdapterMementoDelegator.of(delegate);
+        return ObjectMementoAdapter.of(mementoAdapter);
     }
 
     @Override
-    public ObjectAdapterMemento mementoForPojo(Object pojo) {
-        val adapter = objectManager.adapt(pojo);
-        return mementoForAdapter(adapter);
+    public ObjectMemento mementoForPojo(Object pojo) {
+        val managedObject = objectManager.adapt(pojo);
+        return mementoForAdapter(managedObject);
     }
 
     @Override
-    public ManagedObject reconstructObject(ObjectAdapterMemento memento) {
+    public ManagedObject reconstructObject(ObjectMemento memento) {
         if(memento==null) {
             return null;
         }
-        if(mementoStore==null) {
-            mementoStore = new MementoStoreLegacy(objectManager, specificationLoader);
+        if(objectUnmarshaller==null) {
+            objectUnmarshaller = new ObjectUnmarshaller(objectManager, specificationLoader);
         }
         
-        return memento.reconstructObject(mementoStore, specificationLoader);
+        return memento.reconstructObject(objectUnmarshaller);
     }
 
     @RequiredArgsConstructor(staticName = "of")
-    static class ObjectAdapterMementoDelegator implements ObjectAdapterMemento {
+    static class ObjectMementoAdapter implements ObjectMemento {
 
         private static final long serialVersionUID = 1L;
 
-        private final MementoHelper delegate;
+        private final ObjectMementoLegacy delegate;
 
         @Override
         public String asString() {
@@ -116,10 +111,8 @@ implements ObjectAdapterMementoService {
         }
 
         @Override
-        public ManagedObject reconstructObject(
-                MementoStore mementoStore, SpecificationLoader specificationLoader) {
-            
-            return delegate.getObjectAdapter(mementoStore, specificationLoader);
+        public ManagedObject reconstructObject(ObjectUnmarshaller objectUnmarshaller) {
+            return delegate.reconstructObject(objectUnmarshaller, objectUnmarshaller.getSpecificationLoader());
         }
         
         @Override
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoStoreLegacy.java b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectUnmarshaller.java
similarity index 88%
rename from core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoStoreLegacy.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectUnmarshaller.java
index d4e0e90..34bd80c 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/memento/MementoStoreLegacy.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/memento/ObjectUnmarshaller.java
@@ -1,21 +1,3 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
 package org.apache.isis.runtime.memento;
 
 import java.util.LinkedHashSet;
@@ -53,26 +35,39 @@ import org.apache.isis.runtime.system.session.IsisSession;
 
 import static org.apache.isis.commons.internal.functions._Predicates.not;
 
+import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
 /**
- * package private mixin for ObjectAdapterContext
- * <p>
- * Responsibility: provides object recreation to mementos
- * </p>
+ * Converts serializable {@link Data} back to a {@link ManagedObject}. 
+ * 
  * @since 2.0
  */
-@Log4j2 @RequiredArgsConstructor
-final class MementoStoreLegacy implements MementoStore {
+@RequiredArgsConstructor
+@Log4j2
+class ObjectUnmarshaller {
 
     private final ObjectManager objectManager;
-    //private final ObjectAdapterProvider objectAdapterProvider;
-    private final SpecificationLoader specificationLoader;
-
-    @Override
-    public ObjectAdapter adapterOfMemento(ObjectSpecification spec, Oid oid, Data data) {
+    @Getter private final SpecificationLoader specificationLoader; 
+    
+    ObjectAdapter recreateObject(Data data) {
+        if (data == null) {
+            return null;
+        }
+        val spec = specificationLoader.lookupBySpecIdElseLoad(data.getObjectSpecId());
+        val oid = data.getOid();
+        return recreateObject(spec, oid, data);
+    }
+    
+    ManagedObject adapterForListOfPojos(List<Object> listOfPojos) {
+        return ManagedObject.of(specificationLoader::loadSpecification, listOfPojos);
+    }
+    
+    // -- HELPER
+    
+    private ObjectAdapter recreateObject(ObjectSpecification spec, Oid oid, Data data) {
         
         ObjectAdapter adapter;
 
@@ -106,13 +101,6 @@ final class MementoStoreLegacy implements MementoStore {
         }
         return adapter;
     }
-
-    @Override
-    public ManagedObject adapterForListOfPojos(List<Object> listOfPojos) {
-        return ManagedObject.of(specificationLoader::loadSpecification, listOfPojos);
-    }
-    
-    // -- HELPER
     
     private Object instantiateAndInjectServices(ObjectSpecification spec) {
         
@@ -190,7 +178,7 @@ final class MementoStoreLegacy implements MementoStore {
 
         } else {
             final ObjectData od = (ObjectData) data;
-            if (od.containsField()) {
+            if (od.hasAnyField()) {
                 throw _Exceptions.unrecoverableFormatted(
                         "Resolve state (for %s) inconsistent with fact that data exists for fields", 
                         objectAdapter); 
@@ -296,4 +284,5 @@ final class MementoStoreLegacy implements MementoStore {
         return objectAdapterProvider;
     }
 
-}
\ No newline at end of file
+    
+}
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index ba960e8..b04c7bc 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -47,8 +47,8 @@ import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
-import org.apache.isis.runtime.memento.ObjectAdapterMementoService;
+import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.runtime.memento.ObjectMementoService;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.links.LinksProvider;
@@ -67,7 +67,7 @@ import lombok.val;
  *
  * <p>
  * So that the model is {@link Serializable}, the {@link ManagedObject}s within
- * the collection are stored as {@link ObjectAdapterMemento}s.
+ * the collection are stored as {@link ObjectMemento}s.
  */
 public class EntityCollectionModel extends ModelAbstract<List<ManagedObject>> 
 implements LinksProvider, UiHintContainer {
@@ -93,9 +93,9 @@ implements LinksProvider, UiHintContainer {
         final LowestCommonSuperclassFinder lowestCommonSuperclassFinder = new LowestCommonSuperclassFinder();
 
         //XXX lombok issue, cannot use val here
-        final ObjectAdapterMementoService mementoService = model.getMementoService();
+        final ObjectMementoService mementoService = model.getMementoService();
 
-        final List<ObjectAdapterMemento> mementoList = streamElementsOf(collectionAsAdapter) // pojos
+        final List<ObjectMemento> mementoList = streamElementsOf(collectionAsAdapter) // pojos
                 .peek(lowestCommonSuperclassFinder::collect)
                 .map(mementoService::mementoForPojo)
                 .collect(Collectors.toList());
@@ -141,7 +141,7 @@ implements LinksProvider, UiHintContainer {
     private static EntityCollectionModel standaloneOf(
             IsisWebAppCommonContext commonContext, 
             Class<?> typeOf, 
-            List<ObjectAdapterMemento> mementoList, 
+            List<ObjectMemento> mementoList, 
             int pageSize) {
 
         final Type type = Type.STANDALONE;
@@ -180,7 +180,7 @@ implements LinksProvider, UiHintContainer {
                 //XXX lombok issue, cannot use val here 
 
                 final Stream<RootOid> rootOids = stream(colModel.mementoList)
-                        .map(ObjectAdapterMemento::asBookmarkIfSupported)
+                        .map(ObjectMemento::asBookmarkIfSupported)
                         .filter(_NullSafe::isPresent)
                         .map(Oid.Factory::ofBookmark);
                 
@@ -198,7 +198,7 @@ implements LinksProvider, UiHintContainer {
             void setObject(EntityCollectionModel colModel, List<ManagedObject> adapterList) {
 
                 //XXX lombok issue, cannot use val here 
-                final ObjectAdapterMementoService mementoService = colModel.getMementoService();
+                final ObjectMementoService mementoService = colModel.getMementoService();
 
                 colModel.mementoList = _NullSafe.stream(adapterList)
                         .map(mementoService::mementoForAdapter)
@@ -342,12 +342,12 @@ implements LinksProvider, UiHintContainer {
     /**
      * Populated only if {@link Type#STANDALONE}.
      */
-    private List<ObjectAdapterMemento> mementoList;
+    private List<ObjectMemento> mementoList;
 
     /**
      * Populated only if {@link Type#STANDALONE}.
      */
-    private List<ObjectAdapterMemento> toggledMementosList;
+    private List<ObjectMemento> toggledMementosList;
 
     /**
      * Populated only if {@link Type#PARENTED}.
@@ -389,13 +389,13 @@ implements LinksProvider, UiHintContainer {
         this.entityModel = entityModel;
         this.typeOf = typeOf;
         this.pageSize = pageSize;
-        this.toggledMementosList = _Lists.<ObjectAdapterMemento>newArrayList();
+        this.toggledMementosList = _Lists.<ObjectMemento>newArrayList();
     }
 
 
     private static OneToManyAssociation collectionFor(EntityModel entityModel) {
 
-        final ObjectAdapterMemento parentObjectAdapterMemento = entityModel.getObjectAdapterMemento();
+        final ObjectMemento parentObjectAdapterMemento = entityModel.getObjectAdapterMemento();
         final CollectionLayoutData collectionLayoutData = entityModel.getCollectionLayoutData();
         final SpecificationLoader specificationLoader = entityModel.getSpecificationLoader();
 
@@ -493,7 +493,7 @@ implements LinksProvider, UiHintContainer {
     /**
      * Populated only if {@link Type#PARENTED}.
      */
-    public ObjectAdapterMemento getParentObjectAdapterMemento() {
+    public ObjectMemento getParentObjectAdapterMemento() {
         return entityModel != null? entityModel.getObjectAdapterMemento(): null;
     }
 
@@ -515,7 +515,7 @@ implements LinksProvider, UiHintContainer {
 
     public void toggleSelectionOn(ManagedObject selectedAdapter) {
         //XXX lombok issue, cannot use val here
-        final ObjectAdapterMemento selectedAsMemento = super.getMementoService().mementoForAdapter(selectedAdapter);
+        final ObjectMemento selectedAsMemento = super.getMementoService().mementoForAdapter(selectedAdapter);
 
         // try to remove; if couldn't, then mustn't have been in there, in which case add.
         boolean removed = toggledMementosList.remove(selectedAsMemento);
@@ -524,7 +524,7 @@ implements LinksProvider, UiHintContainer {
         }
     }
 
-    public Can<ObjectAdapterMemento> getToggleMementosList() {
+    public Can<ObjectMemento> getToggleMementosList() {
         return Can.ofCollection(this.toggledMementosList);
     }
 
@@ -544,7 +544,7 @@ implements LinksProvider, UiHintContainer {
 
     public EntityCollectionModel asDummy() {
         return standaloneOf(
-                super.getCommonContext(), typeOf, Collections.<ObjectAdapterMemento>emptyList(), pageSize);
+                super.getCommonContext(), typeOf, Collections.<ObjectMemento>emptyList(), pageSize);
     }
 
     // //////////////////////////////////////
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 06593a3..abfe613 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -40,7 +40,7 @@ import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.common.PageParametersUtils;
 import org.apache.isis.viewer.wicket.model.hints.UiHintContainer;
 import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
@@ -59,7 +59,7 @@ import lombok.val;
  *
  * <p>
  * So that the model is {@link Serializable}, the {@link ManagedObject} is
- * stored as a {@link ObjectAdapterMemento}.
+ * stored as a {@link ObjectMemento}.
  */
 public class EntityModel 
 extends BookmarkableModel<ManagedObject> 
@@ -139,8 +139,8 @@ implements ObjectAdapterModel, UiHintContainer {
     }
 
     private final Map<PropertyMemento, ScalarModel> propertyScalarModels;
-    private ObjectAdapterMemento adapterMemento;
-    private ObjectAdapterMemento contextAdapterIfAny;
+    private ObjectMemento adapterMemento;
+    private ObjectMemento contextAdapterIfAny;
 
     private Mode mode;
     private RenderingHint renderingHint;
@@ -165,14 +165,14 @@ implements ObjectAdapterModel, UiHintContainer {
 
     public static EntityModel ofMemento(
             IsisWebAppCommonContext commonContext,
-            ObjectAdapterMemento adapterMemento) {
+            ObjectMemento adapterMemento) {
         
         return ofMemento(commonContext, adapterMemento, /*propertyScalarModels*/null);
     }
 
     private static EntityModel ofMemento(
             IsisWebAppCommonContext commonContext,
-            ObjectAdapterMemento adapterMemento,
+            ObjectMemento adapterMemento,
             @Nullable Map<PropertyMemento, ScalarModel> propertyScalarModels) {
         
         return new EntityModel(commonContext, adapterMemento, propertyScalarModels, 
@@ -202,7 +202,7 @@ implements ObjectAdapterModel, UiHintContainer {
 
     private EntityModel(
             IsisWebAppCommonContext commonContext,
-            ObjectAdapterMemento adapterMemento,
+            ObjectMemento adapterMemento,
             @Nullable Map<PropertyMemento, ScalarModel> propertyScalarModels,
             Mode mode,
             RenderingHint renderingHint) {
@@ -302,7 +302,7 @@ implements ObjectAdapterModel, UiHintContainer {
     // ObjectAdapterMemento, typeOfSpecification
     // //////////////////////////////////////////////////////////
 
-    public ObjectAdapterMemento getObjectAdapterMemento() {
+    public ObjectMemento getObjectAdapterMemento() {
         return adapterMemento;
     }
 
@@ -344,7 +344,7 @@ implements ObjectAdapterModel, UiHintContainer {
         adapterMemento = super.getMementoService().mementoForAdapter(adapter); 
     }
 
-    public void setObjectMemento(final ObjectAdapterMemento adapterMemento) {
+    public void setObjectMemento(final ObjectMemento adapterMemento) {
         val adapter = super.getCommonContext().reconstructObject(adapterMemento);
         super.setObject(adapter);
         this.adapterMemento = adapterMemento;
@@ -404,7 +404,7 @@ implements ObjectAdapterModel, UiHintContainer {
     }
 
     @Override
-    public ObjectAdapterMemento getContextAdapterIfAny() {
+    public ObjectMemento getContextAdapterIfAny() {
         return contextAdapterIfAny;
     }
 
@@ -413,7 +413,7 @@ implements ObjectAdapterModel, UiHintContainer {
      * provides a context adapter to obtain the title.
      */
     @Override
-    public void setContextAdapterIfAny(ObjectAdapterMemento contextAdapterIfAny) {
+    public void setContextAdapterIfAny(ObjectMemento contextAdapterIfAny) {
         this.contextAdapterIfAny = contextAdapterIfAny;
     }
 
@@ -471,7 +471,7 @@ implements ObjectAdapterModel, UiHintContainer {
     // //////////////////////////////////////////////////////////
 
     @RequiredArgsConstructor
-    private static final class PendingModel extends Model<ObjectAdapterMemento> {
+    private static final class PendingModel extends Model<ObjectMemento> {
         private static final long serialVersionUID = 1L;
 
         @NonNull private final EntityModel entityModel;
@@ -483,10 +483,10 @@ implements ObjectAdapterModel, UiHintContainer {
         /**
          * The new value (could be set to null; hasPending is used to distinguish).
          */
-        private ObjectAdapterMemento pending;
+        private ObjectMemento pending;
 
         @Override
-        public ObjectAdapterMemento getObject() {
+        public ObjectMemento getObject() {
             if (hasPending) {
                 return pending;
             }
@@ -495,7 +495,7 @@ implements ObjectAdapterModel, UiHintContainer {
         }
 
         @Override
-        public void setObject(final ObjectAdapterMemento adapterMemento) {
+        public void setObject(final ObjectMemento adapterMemento) {
             pending = adapterMemento;
             hasPending = true;
         }
@@ -514,11 +514,11 @@ implements ObjectAdapterModel, UiHintContainer {
             return hasPending ? getPendingAdapter() : entityModel.getObject();
         }
 
-        public ObjectAdapterMemento getPending() {
+        public ObjectMemento getPending() {
             return pending;
         }
 
-        public void setPending(ObjectAdapterMemento selectedAdapterMemento) {
+        public void setPending(ObjectMemento selectedAdapterMemento) {
             this.pending = selectedAdapterMemento;
             hasPending=true;
         }
@@ -533,11 +533,11 @@ implements ObjectAdapterModel, UiHintContainer {
         return pendingModel.getPendingAdapter();
     }
 
-    public ObjectAdapterMemento getPending() {
+    public ObjectMemento getPending() {
         return pendingModel.getPending();
     }
 
-    public void setPending(ObjectAdapterMemento selectedAdapterMemento) {
+    public void setPending(ObjectMemento selectedAdapterMemento) {
         pendingModel.setPending(selectedAdapterMemento);
     }
 
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java
index 4aafc86..bb3e966 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModelForReference.java
@@ -23,7 +23,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.isis.applib.services.hint.HintStore;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
 import static org.apache.isis.viewer.wicket.model.models.EntityModel.createPageParameters;
 
@@ -35,7 +35,7 @@ public class EntityModelForReference implements ObjectAdapterModel {
 
     private final ScalarModel scalarModel;
 
-    private ObjectAdapterMemento contextAdapterIfAny;
+    private ObjectMemento contextAdapterIfAny;
     private EntityModel.RenderingHint renderingHint;
 
 
@@ -59,12 +59,12 @@ public class EntityModelForReference implements ObjectAdapterModel {
     }
 
     @Override
-    public ObjectAdapterMemento getContextAdapterIfAny() {
+    public ObjectMemento getContextAdapterIfAny() {
         return contextAdapterIfAny;
     }
 
     @Override
-    public void setContextAdapterIfAny(ObjectAdapterMemento contextAdapterIfAny) {
+    public void setContextAdapterIfAny(ObjectMemento contextAdapterIfAny) {
         this.contextAdapterIfAny = contextAdapterIfAny;
     }
 
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
index e166c1a..6750f2d 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/HintPageParameterSerializer.java
@@ -25,7 +25,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.hint.HintStore;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.util.ComponentHintKey;
 
 import lombok.val;
@@ -48,7 +48,7 @@ class HintPageParameterSerializer implements Serializable {
 
     static void hintStoreToPageParameters(
             final PageParameters pageParameters,
-            final ObjectAdapterMemento objectAdapterMemento,
+            final ObjectMemento objectAdapterMemento,
             final HintStore hintStore) {
         
         if(objectAdapterMemento == null) {
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java
index 011fc1c..81683f5 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ObjectAdapterModel.java
@@ -23,12 +23,12 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
 public interface ObjectAdapterModel extends IModel<ManagedObject> {
 
-    ObjectAdapterMemento getContextAdapterIfAny();
-    void setContextAdapterIfAny(ObjectAdapterMemento contextAdapterIfAny);
+    ObjectMemento getContextAdapterIfAny();
+    void setContextAdapterIfAny(ObjectMemento contextAdapterIfAny);
 
     EntityModel.RenderingHint getRenderingHint();
     void setRenderingHint(EntityModel.RenderingHint renderingHint);
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index cbeee5c..59ed097 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -50,7 +50,7 @@ import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.spec.feature.ObjectActionParameter;
 import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.links.LinksProvider;
@@ -343,7 +343,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
 
             @Override
             public String getCssClass(final ScalarModel scalarModel) {
-                final ObjectAdapterMemento adapterMemento = scalarModel.getObjectAdapterMemento();
+                final ObjectMemento adapterMemento = scalarModel.getObjectAdapterMemento();
                 if (adapterMemento == null) {
                     // shouldn't happen
                     return null;
@@ -736,7 +736,7 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
     }
 
     private void getAndStore(final EntityModel parentEntityModel) {
-        final ObjectAdapterMemento parentAdapterMemento = parentEntityModel.getObjectAdapterMemento();
+        final ObjectMemento parentAdapterMemento = parentEntityModel.getObjectAdapterMemento();
         final OneToOneAssociation property = propertyMemento.getProperty(getSpecificationLoader());
         final ManagedObject parentAdapter = super.getCommonContext().reconstructObject(parentAdapterMemento); 
         setObjectFromPropertyIfVisible(ScalarModel.this, property, parentAdapter);
@@ -972,12 +972,12 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
             private static final long serialVersionUID = 1L;
 
             @Override
-            public ObjectAdapterMemento getPending() {
+            public ObjectMemento getPending() {
                 return ScalarModel.this.getPending();
             }
 
             @Override
-            public void setPending(ObjectAdapterMemento pending) {
+            public void setPending(ObjectMemento pending) {
                 ScalarModel.this.setPending(pending);
             }
 
@@ -997,16 +997,16 @@ implements LinksProvider, FormExecutorContext, ActionArgumentModel {
             private static final long serialVersionUID = 1L;
 
             @Override
-            public ArrayList<ObjectAdapterMemento> getMultiPending() {
-                ObjectAdapterMemento pendingMemento = ScalarModel.this.getPending();
-                return ObjectAdapterMemento.unwrapList(pendingMemento)
+            public ArrayList<ObjectMemento> getMultiPending() {
+                ObjectMemento pendingMemento = ScalarModel.this.getPending();
+                return ObjectMemento.unwrapList(pendingMemento)
                         .orElse(null);
             }
 
             @Override
-            public void setMultiPending(final ArrayList<ObjectAdapterMemento> pending) {
+            public void setMultiPending(final ArrayList<ObjectMemento> pending) {
                 ObjectSpecId specId = getScalarModel().getTypeOfSpecification().getSpecId();
-                ObjectAdapterMemento adapterMemento = ObjectAdapterMemento.wrapMementoList(pending, specId);
+                ObjectMemento adapterMemento = ObjectMemento.wrapMementoList(pending, specId);
                 ScalarModel.this.setPending(adapterMemento);
             }
 
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
index e143322..33c0d10 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
@@ -25,7 +25,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
@@ -37,26 +37,26 @@ import lombok.extern.log4j.Log4j2;
  */
 public interface ScalarModelWithMultiPending extends Serializable {
 
-    public ArrayList<ObjectAdapterMemento> getMultiPending();
-    public void setMultiPending(ArrayList<ObjectAdapterMemento> pending);
+    public ArrayList<ObjectMemento> getMultiPending();
+    public void setMultiPending(ArrayList<ObjectMemento> pending);
 
     public ScalarModel getScalarModel();
 
     @Log4j2
     static class Util {
 
-        public static IModel<ArrayList<ObjectAdapterMemento>> createModel(final ScalarModel model) {
+        public static IModel<ArrayList<ObjectMemento>> createModel(final ScalarModel model) {
             return createModel(model.asScalarModelWithMultiPending());
         }
 
-        public static Model<ArrayList<ObjectAdapterMemento>> createModel(final ScalarModelWithMultiPending owner) {
-            return new Model<ArrayList<ObjectAdapterMemento>>() {
+        public static Model<ArrayList<ObjectMemento>> createModel(final ScalarModelWithMultiPending owner) {
+            return new Model<ArrayList<ObjectMemento>>() {
 
                 private static final long serialVersionUID = 1L;
 
                 @Override
-                public ArrayList<ObjectAdapterMemento> getObject() {
-                    final ArrayList<ObjectAdapterMemento> pending = owner.getMultiPending();
+                public ArrayList<ObjectMemento> getObject() {
+                    final ArrayList<ObjectMemento> pending = owner.getMultiPending();
                     if (pending != null) {
                         log.debug("pending not null: {}", pending.toString());
                         return pending;
@@ -65,12 +65,12 @@ public interface ScalarModelWithMultiPending extends Serializable {
 
                     val scalarModel = owner.getScalarModel();
                     val objectAdapterMemento = scalarModel.getObjectAdapterMemento();
-                    return ObjectAdapterMemento.unwrapList(objectAdapterMemento)
+                    return ObjectMemento.unwrapList(objectAdapterMemento)
                             .orElse(null);
                 }
 
                 @Override
-                public void setObject(final ArrayList<ObjectAdapterMemento> adapterMemento) {
+                public void setObject(final ArrayList<ObjectMemento> adapterMemento) {
                     log.debug("setting to: {}", (adapterMemento != null ? adapterMemento.toString() : null));
                     owner.setMultiPending(adapterMemento);
 
@@ -79,12 +79,12 @@ public interface ScalarModelWithMultiPending extends Serializable {
                     if(adapterMemento == null) {
                         ownerScalarModel.setObject(null);
                     } else {
-                        final ArrayList<ObjectAdapterMemento> ownerPending = owner.getMultiPending();
+                        final ArrayList<ObjectMemento> ownerPending = owner.getMultiPending();
                         if (ownerPending != null) {
                             log.debug("setting to pending: {}", ownerPending.toString());
                             final ObjectSpecId objectSpecId = ownerScalarModel.getTypeOfSpecification().getSpecId();
                             ownerScalarModel.setObjectMemento(
-                                    ObjectAdapterMemento.wrapMementoList(adapterMemento, objectSpecId));
+                                    ObjectMemento.wrapMementoList(adapterMemento, objectSpecId));
                         }
                     }
                 }
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
index 342d269..5c011e0 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
@@ -23,7 +23,7 @@ import java.io.Serializable;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
 import lombok.extern.log4j.Log4j2;
 
@@ -34,39 +34,39 @@ import lombok.extern.log4j.Log4j2;
  */
 public interface ScalarModelWithPending extends Serializable {
 
-    public ObjectAdapterMemento getPending();
-    public void setPending(ObjectAdapterMemento pending);
+    public ObjectMemento getPending();
+    public void setPending(ObjectMemento pending);
 
     public ScalarModel getScalarModel();
 
     @Log4j2
     static class Util {
 
-        public static IModel<ObjectAdapterMemento> createModel(final ScalarModel model) {
+        public static IModel<ObjectMemento> createModel(final ScalarModel model) {
             return createModel(model.asScalarModelWithPending());
         }
 
-        public static Model<ObjectAdapterMemento> createModel(final ScalarModelWithPending owner) {
-            return new Model<ObjectAdapterMemento>() {
+        public static Model<ObjectMemento> createModel(final ScalarModelWithPending owner) {
+            return new Model<ObjectMemento>() {
 
                 private static final long serialVersionUID = 1L;
 
                 @Override
-                public ObjectAdapterMemento getObject() {
+                public ObjectMemento getObject() {
                     if (owner.getPending() != null) {
                         log.debug("pending not null: {}", owner.getPending().toString());
                         return owner.getPending();
                     }
                     log.debug("pending is null");
 
-                    final ObjectAdapterMemento objectAdapterMemento = owner.getScalarModel().getObjectAdapterMemento();
+                    final ObjectMemento objectAdapterMemento = owner.getScalarModel().getObjectAdapterMemento();
                     owner.setPending(objectAdapterMemento);
 
                     return objectAdapterMemento;
                 }
 
                 @Override
-                public void setObject(final ObjectAdapterMemento adapterMemento) {
+                public void setObject(final ObjectMemento adapterMemento) {
                     log.debug("setting to: {}", (adapterMemento!=null?adapterMemento.toString():null) );
                     owner.setPending(adapterMemento);
                     final ScalarModel ownerScalarModel = owner.getScalarModel();
@@ -74,7 +74,7 @@ public interface ScalarModelWithPending extends Serializable {
                         if(adapterMemento == null) {
                             ownerScalarModel.setObject(null);
                         } else {
-                            final ObjectAdapterMemento ownerPending = owner.getPending();
+                            final ObjectMemento ownerPending = owner.getPending();
                             if (ownerPending != null) {
                                 log.debug("setting to pending: {}", ownerPending.toString());
                                 ownerScalarModel.setObject(
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java
index 3ab984c..dbee2a0 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java
@@ -23,10 +23,10 @@ import java.io.Serializable;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 
 import org.apache.isis.commons.collections.Can;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
 public interface ToggledMementosProvider extends Serializable {
     
-    Can<ObjectAdapterMemento> getToggles();
+    Can<ObjectMemento> getToggles();
     void clearToggles(final AjaxRequestTarget target);
 }
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
index 63992cc..c5f7ed1 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ValueModel.java
@@ -21,7 +21,7 @@ package org.apache.isis.viewer.wicket.model.models;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
 /**
@@ -31,7 +31,7 @@ public class ValueModel extends ModelAbstract<ManagedObject> {
 
     private static final long serialVersionUID = 1L;
 
-    private final ObjectAdapterMemento adapterMemento;
+    private final ObjectMemento adapterMemento;
 
     public ValueModel(IsisWebAppCommonContext commonContext, ManagedObject adapter) {
         super(commonContext);
diff --git a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
index 5717803..730838f 100644
--- a/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
+++ b/core/viewers/wicket/model/src/test/java/org/apache/isis/viewer/wicket/model/models/ScalarModel_isScalarSubtypingAnyOf_Test.java
@@ -28,7 +28,7 @@ import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.MetaModelContext_forTesting;
 import org.apache.isis.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectAdapterMementoService;
+import org.apache.isis.runtime.memento.ObjectMementoService;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
@@ -45,7 +45,7 @@ public class ScalarModel_isScalarSubtypingAnyOf_Test {
 
     @Mock ObjectSpecification mockObjectSpecification;
     @Mock EntityModel mockEntityModel;
-    @Mock ObjectAdapterMementoService mockObjectAdapterMementoSupport;
+    @Mock ObjectMementoService mockObjectAdapterMementoSupport;
     @Mock ObjectManager mockObjectManager; 
     
     MetaModelContext metaModelContext;
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
index 5e07768..06abe68 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/CssMenuItem.java
@@ -38,7 +38,7 @@ import org.apache.isis.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.metamodel.facets.members.cssclassfa.CssClassFaPosition;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.runtime.system.context.IsisContext;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -343,7 +343,7 @@ class CssMenuItem implements Serializable {
     // //////////////////////////////////////////////////////////////
 
     /**
-     * Creates a {@link Builder} for a submenu item invoking an action on the provided {@link ObjectAdapterMemento
+     * Creates a {@link Builder} for a submenu item invoking an action on the provided {@link ObjectMemento
      * target adapter}.
      */
     Builder newSubMenuItem(ServiceAndAction serviceAndAction) {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
index 749c5b1..04c35f6 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/CollectionPanel.java
@@ -32,7 +32,7 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.common.OnSelectionHandler;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
@@ -187,7 +187,7 @@ implements CollectionSelectorProvider, BulkActionsProvider {
         }
 
         @Override
-        public Can<ObjectAdapterMemento> getToggles() {
+        public Can<ObjectMemento> getToggles() {
             return collectionModel.getToggleMementosList();
         }
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 0255fa0..c393e30 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -47,7 +47,7 @@ import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.Contributed;
 import org.apache.isis.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityCollectionModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.ui.components.collection.bulk.BulkActionsProvider;
@@ -135,7 +135,7 @@ implements CollectionCountProvider {
 
     private void addTitleColumn(
             final List<IColumn<ManagedObject, String>> columns,
-            final ObjectAdapterMemento parentAdapterMementoIfAny,
+            final ObjectMemento parentAdapterMementoIfAny,
             final int maxTitleParented,
             final int maxTitleStandalone) {
         
@@ -246,7 +246,7 @@ implements CollectionCountProvider {
 
         final Class<?> collectionType = getModel().getTypeOfSpecification().getCorrespondingClass();
 
-        final ObjectAdapterMemento parentObjectAdapterMemento = getModel().getParentObjectAdapterMemento();
+        final ObjectMemento parentObjectAdapterMemento = getModel().getParentObjectAdapterMemento();
         if(parentObjectAdapterMemento != null) {
             val parentObjectAdapter = getCommonContext().reconstructObject(parentObjectAdapterMemento);
             final Object parent = parentObjectAdapter.getPojo();
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
index 4a45cda..8fed490 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/columns/ObjectAdapterTitleColumn.java
@@ -25,7 +25,7 @@ import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ValueModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModel.RenderingHint;
@@ -38,9 +38,9 @@ import lombok.val;
 public class ObjectAdapterTitleColumn extends ColumnAbstract<ManagedObject> {
 
     private static final long serialVersionUID = 1L;
-    private final ObjectAdapterMemento parentAdapterMementoIfAny;
+    private final ObjectMemento parentAdapterMementoIfAny;
 
-    private static String columnName(final ObjectAdapterMemento parentAdapterMementoIfAny, final int maxTitleLength) {
+    private static String columnName(final ObjectMemento parentAdapterMementoIfAny, final int maxTitleLength) {
         if(maxTitleLength == 0) {
             return "";
         }
@@ -49,7 +49,7 @@ public class ObjectAdapterTitleColumn extends ColumnAbstract<ManagedObject> {
 
     public ObjectAdapterTitleColumn(
             IsisWebAppCommonContext commonContext, 
-            ObjectAdapterMemento parentAdapterMementoIfAny, 
+            ObjectMemento parentAdapterMementoIfAny, 
             int maxTitleLength) {
         
         super(commonContext, columnName(parentAdapterMementoIfAny, maxTitleLength)); // i18n
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index c7cea13..e39a822 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -31,7 +31,7 @@ import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.isis.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.metamodel.facets.object.projection.ProjectionFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.ObjectAdapterModel;
 import org.apache.isis.viewer.wicket.model.models.PageType;
@@ -221,7 +221,7 @@ public class EntityIconAndTitlePanel extends PanelAbstract<ObjectAdapterModel> {
 
     public ManagedObject getContextAdapterIfAny() {
         ObjectAdapterModel model = getModel();
-        ObjectAdapterMemento contextAdapterMementoIfAny = model.getContextAdapterIfAny();
+        ObjectMemento contextAdapterMementoIfAny = model.getContextAdapterIfAny();
         return getCommonContext().reconstructObject(contextAdapterMementoIfAny);
     }
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
index 79b81ae..0999ee4 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
@@ -33,7 +33,7 @@ import org.apache.wicket.validation.ValidationError;
 import org.wicketstuff.select2.ChoiceProvider;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ActionModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
@@ -114,7 +114,7 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
      */
     private void setProviderAndCurrAndPending(Select2 select2, ManagedObject[] argsIfAvailable) {
 
-        final ChoiceProvider<ObjectAdapterMemento> choiceProvider = buildChoiceProvider(argsIfAvailable);
+        final ChoiceProvider<ObjectMemento> choiceProvider = buildChoiceProvider(argsIfAvailable);
 
         select2.setProvider(choiceProvider);
         getModel().clearPending();
@@ -128,12 +128,12 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
     /**
      * Mandatory hook (is called by {@link #setProviderAndCurrAndPending(Select2, ManagedObject[])})
      */
-    protected abstract ChoiceProvider<ObjectAdapterMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable);
+    protected abstract ChoiceProvider<ObjectMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable);
 
     /**
      * Mandatory hook (is called by {@link #setProviderAndCurrAndPending(Select2, ManagedObject[])})
      */
-    protected abstract void syncIfNull(Select2 select2, List<ObjectAdapterMemento> choicesMementos);
+    protected abstract void syncIfNull(Select2 select2, List<ObjectMemento> choicesMementos);
 
 
     // //////////////////////////////////////
@@ -231,20 +231,20 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
         public void validate(final IValidatable<Object> validatable) {
             final Object proposedValueObj = validatable.getValue();
 
-            final ObjectAdapterMemento proposedValue;
+            final ObjectMemento proposedValue;
 
             if (proposedValueObj instanceof List) {
                 @SuppressWarnings("unchecked")
-                val proposedValueObjAsList = (List<ObjectAdapterMemento>) proposedValueObj;
+                val proposedValueObjAsList = (List<ObjectMemento>) proposedValueObj;
                 if (proposedValueObjAsList.isEmpty()) {
                     return;
                 }
                 val memento = proposedValueObjAsList.get(0);
                 val objectSpecId = memento.getObjectSpecId();
-                proposedValue = ObjectAdapterMemento
+                proposedValue = ObjectMemento
                         .wrapMementoList(proposedValueObjAsList, objectSpecId);
             } else {
-                proposedValue = (ObjectAdapterMemento) proposedValueObj;
+                proposedValue = (ObjectMemento) proposedValueObj;
             }
 
             val proposedAdapter = scalarModel.getCommonContext().reconstructObject(proposedValue); 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 5159429..83c6ae7 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -37,7 +37,7 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.viewer.wicket.model.models.EntityModelForReference;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -160,7 +160,7 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
 
     @Override
     protected IModel<String> obtainInlinePromptModel() {
-        final IModel<ObjectAdapterMemento> model = select2.getModel();
+        final IModel<ObjectMemento> model = select2.getModel();
         
         return new IModel<String>() {
             private static final long serialVersionUID = 1L;
@@ -338,10 +338,10 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
     // //////////////////////////////////////
 
     @Override
-    protected ChoiceProvider<ObjectAdapterMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable) {
+    protected ChoiceProvider<ObjectMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable) {
 
         if (getModel().hasChoices()) {
-            List<ObjectAdapterMemento> choiceMementos = obtainChoiceMementos(argsIfAvailable);
+            List<ObjectMemento> choiceMementos = obtainChoiceMementos(argsIfAvailable);
             return new ObjectAdapterMementoProviderForReferenceChoices(getModel(), choiceMementos);
         }
 
@@ -353,7 +353,7 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
     }
 
     // called by setProviderAndCurrAndPending
-    private List<ObjectAdapterMemento> obtainChoiceMementos(ManagedObject[] argsIfAvailable) {
+    private List<ObjectMemento> obtainChoiceMementos(ManagedObject[] argsIfAvailable) {
         
         val commonContext = super.getCommonContext();
         
@@ -366,8 +366,8 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
 
     // called by setProviderAndCurrAndPending
     @Override
-    protected void syncIfNull(final Select2 select2, final List<ObjectAdapterMemento> choiceMementos) {
-        final ObjectAdapterMemento curr = select2.getModelObject();
+    protected void syncIfNull(final Select2 select2, final List<ObjectMemento> choiceMementos) {
+        final ObjectMemento curr = select2.getModelObject();
 
         if(!getModel().isCollection()) {
 
@@ -403,7 +403,7 @@ public class ReferencePanel extends ScalarPanelSelect2Abstract {
         if(isEditableWithEitherAutoCompleteOrChoices()) {
 
             // flush changes to pending
-            ObjectAdapterMemento convertedInput = select2.getConvertedInput();
+            ObjectMemento convertedInput = select2.getConvertedInput();
 
             getModel().setPending(convertedInput);
             if(select2 != null) {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
index 9d2f223..0e8ea72 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/valuechoices/ValueChoicesSelect2Panel.java
@@ -34,7 +34,7 @@ import org.wicketstuff.select2.ChoiceProvider;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelSelect2Abstract;
@@ -76,7 +76,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract {
     }
 
 
-    private List<ObjectAdapterMemento> getChoiceMementos(final ManagedObject[] argumentsIfAvailable) {
+    private List<ObjectMemento> getChoiceMementos(final ManagedObject[] argumentsIfAvailable) {
         
         val commonContext = super.getCommonContext();
         
@@ -98,7 +98,7 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract {
 
     @Override
     protected IModel<String> obtainInlinePromptModel() {
-        ObjectAdapterMemento inlinePromptMemento = select2.getModelObject();
+        ObjectMemento inlinePromptMemento = select2.getModelObject();
         String inlinePrompt = inlinePromptMemento != null ? inlinePromptMemento.asString(): null;
         return Model.of(inlinePrompt);
     }
@@ -167,14 +167,14 @@ public class ValueChoicesSelect2Panel extends ScalarPanelSelect2Abstract {
     // in corresponding code in ReferencePanelFactory, these is a branch for different types of providers
     // (choice vs autoComplete).  Here though - because values don't currently support autoComplete - no branch is required
     @Override
-    protected ChoiceProvider<ObjectAdapterMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable) {
-        final List<ObjectAdapterMemento> choicesMementos = getChoiceMementos(argsIfAvailable);
+    protected ChoiceProvider<ObjectMemento> buildChoiceProvider(ManagedObject[] argsIfAvailable) {
+        final List<ObjectMemento> choicesMementos = getChoiceMementos(argsIfAvailable);
         return new ObjectAdapterMementoProviderForValueChoices(scalarModel, choicesMementos);
     }
 
     @Override
-    protected void syncIfNull(final Select2 select2, final List<ObjectAdapterMemento> choicesMementos) {
-        final ObjectAdapterMemento curr = getModel().getObjectAdapterMemento();
+    protected void syncIfNull(final Select2 select2, final List<ObjectMemento> choicesMementos) {
+        final ObjectMemento curr = getModel().getObjectAdapterMemento();
 
         if(curr == null) {
             select2.getModel().setObject(null);
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index 2e57f20..6177a34 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -42,7 +42,7 @@ import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.metamodel.specloader.specimpl.ObjectActionMixedIn;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettingsAccessor;
 import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -103,7 +103,7 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
 
                 if(toggledMementosProviderIfAny != null) {
 
-                    final Can<ObjectAdapterMemento> selectedMementos =
+                    final Can<ObjectMemento> selectedMementos =
                             toggledMementosProviderIfAny.getToggles();
 
                     final List<Object> selectedPojos = selectedMementos.stream()
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java
index 00e3582..1d9ca1c 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/ChoiceExt.java
@@ -24,7 +24,7 @@ import org.wicketstuff.select2.Select2MultiChoice;
 import org.wicketstuff.select2.Settings;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
 /**
  * Represents functionality that is common to both {@link Select2Choice} and {@link Select2MultiChoice}, but for
@@ -33,7 +33,7 @@ import org.apache.isis.runtime.memento.ObjectAdapterMemento;
  * Also holds extensions, notable {@link #getSpecId()}.
  */
 public interface ChoiceExt {
-    void setProvider(final ChoiceProvider<ObjectAdapterMemento> providerForChoices);
+    void setProvider(final ChoiceProvider<ObjectMemento> providerForChoices);
     Settings getSettings();
 
     ObjectSpecId getSpecId();
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
index 7fea3dc..cb9c3b9 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2.java
@@ -32,7 +32,7 @@ import org.wicketstuff.select2.Select2Choice;
 import org.wicketstuff.select2.Select2MultiChoice;
 import org.wicketstuff.select2.Settings;
 
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.model.models.ScalarModelWithMultiPending;
 import org.apache.isis.viewer.wicket.model.models.ScalarModelWithPending;
@@ -99,39 +99,39 @@ public class Select2 implements Serializable {
         return choiceExt().getSettings();
     }
 
-    public void setProvider(final ChoiceProvider<ObjectAdapterMemento> providerForChoices) {
+    public void setProvider(final ChoiceProvider<ObjectMemento> providerForChoices) {
         choiceExt().setProvider(providerForChoices);
     }
 
-    public ObjectAdapterMemento getModelObject() {
+    public ObjectMemento getModelObject() {
         if (select2Choice != null) {
             return select2Choice.getModelObject();
         } else {
-            final Collection<ObjectAdapterMemento> modelObject = select2MultiChoice.getModelObject();
+            final Collection<ObjectMemento> modelObject = select2MultiChoice.getModelObject();
 
-            return ObjectAdapterMemento.wrapMementoList(modelObject, select2MultiChoice.getSpecId());
+            return ObjectMemento.wrapMementoList(modelObject, select2MultiChoice.getSpecId());
         }
     }
 
-    public IModel<ObjectAdapterMemento> getModel() {
+    public IModel<ObjectMemento> getModel() {
         if (select2Choice != null) {
             return select2Choice.getModel();
         } else {
-            final IModel<Collection<ObjectAdapterMemento>> model = select2MultiChoice.getModel();
-            final Collection<ObjectAdapterMemento> modelObject = model.getObject();
+            final IModel<Collection<ObjectMemento>> model = select2MultiChoice.getModel();
+            final Collection<ObjectMemento> modelObject = model.getObject();
 
-            final ObjectAdapterMemento memento = ObjectAdapterMemento.wrapMementoList(modelObject, select2MultiChoice.getSpecId());
-            return new IModel<ObjectAdapterMemento>() {
+            final ObjectMemento memento = ObjectMemento.wrapMementoList(modelObject, select2MultiChoice.getSpecId());
+            return new IModel<ObjectMemento>() {
                 private static final long serialVersionUID = 1L;
 
                 @Override
-                public ObjectAdapterMemento getObject() {
+                public ObjectMemento getObject() {
                     return memento;
                 }
 
                 @Override
-                public void setObject(final ObjectAdapterMemento memento) {
-                    model.setObject(ObjectAdapterMemento.unwrapList(memento)
+                public void setObject(final ObjectMemento memento) {
+                    model.setObject(ObjectMemento.unwrapList(memento)
                             .orElse(null));
                 }
 
@@ -142,12 +142,12 @@ public class Select2 implements Serializable {
         }
     }
 
-    public ObjectAdapterMemento getConvertedInput() {
+    public ObjectMemento getConvertedInput() {
         if (select2Choice != null) {
             return select2Choice.getConvertedInput();
         } else {
-            final Collection<ObjectAdapterMemento> convertedInput = select2MultiChoice.getConvertedInput();
-            return ObjectAdapterMemento.wrapMementoList(convertedInput, select2MultiChoice.getSpecId());
+            final Collection<ObjectMemento> convertedInput = select2MultiChoice.getConvertedInput();
+            return ObjectMemento.wrapMementoList(convertedInput, select2MultiChoice.getSpecId());
         }
     }
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
index 1d5d45b..d50a856 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2ChoiceExt.java
@@ -22,17 +22,17 @@ import org.apache.wicket.model.IModel;
 import org.wicketstuff.select2.Select2Choice;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
 
-public class Select2ChoiceExt extends Select2Choice<ObjectAdapterMemento> implements ChoiceExt {
+public class Select2ChoiceExt extends Select2Choice<ObjectMemento> implements ChoiceExt {
     
     private static final long serialVersionUID = 1L;
 
     public static Select2ChoiceExt create(
             final String id,
-            final IModel<ObjectAdapterMemento> modelObject,
+            final IModel<ObjectMemento> modelObject,
             final ScalarModel scalarModel) {
         return new Select2ChoiceExt(id, modelObject, scalarModel);
     }
@@ -41,7 +41,7 @@ public class Select2ChoiceExt extends Select2Choice<ObjectAdapterMemento> implem
 
     private Select2ChoiceExt(
             final String id,
-            final IModel<ObjectAdapterMemento> model,
+            final IModel<ObjectMemento> model,
             final ScalarModel scalarModel) {
         super(id, model, EmptyChoiceProvider.INSTANCE);
         specId = scalarModel.getTypeOfSpecification().getSpecId();
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
index 6b9023b..51d1de0 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2MultiChoiceExt.java
@@ -25,23 +25,23 @@ import org.apache.wicket.model.IModel;
 import org.wicketstuff.select2.Select2MultiChoice;
 
 import org.apache.isis.metamodel.spec.ObjectSpecId;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.EmptyChoiceProvider;
 
 public class Select2MultiChoiceExt
-extends Select2MultiChoice<ObjectAdapterMemento>
+extends Select2MultiChoice<ObjectMemento>
 implements ChoiceExt {
 
     private static final long serialVersionUID = 1L;
 
     public static Select2MultiChoiceExt create(
             final String id,
-            final IModel<ArrayList<ObjectAdapterMemento>> modelObject,
+            final IModel<ArrayList<ObjectMemento>> modelObject,
             final ScalarModel scalarModel) {
 
         // TODO: naughty..
-        final IModel<Collection<ObjectAdapterMemento>> modelObjectColl = (IModel) modelObject;
+        final IModel<Collection<ObjectMemento>> modelObjectColl = (IModel) modelObject;
 
         return new Select2MultiChoiceExt(id, modelObjectColl, scalarModel);
     }
@@ -50,7 +50,7 @@ implements ChoiceExt {
 
     Select2MultiChoiceExt(
             final String id,
-            final IModel<Collection<ObjectAdapterMemento>> model,
+            final IModel<Collection<ObjectMemento>> model,
             final ScalarModel scalarModel) {
         super(id, model, EmptyChoiceProvider.INSTANCE);
         specId = scalarModel.getTypeOfSpecification().getSpecId();
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
index 6982952..d8135cb 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/EmptyChoiceProvider.java
@@ -23,29 +23,29 @@ import java.util.Collection;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Response;
 
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
-public class EmptyChoiceProvider extends ChoiceProvider<ObjectAdapterMemento> {
+public class EmptyChoiceProvider extends ChoiceProvider<ObjectMemento> {
     private static final long serialVersionUID = 1L;
 
     public static final EmptyChoiceProvider INSTANCE = new EmptyChoiceProvider();
 
     @Override
-    public String getDisplayValue(ObjectAdapterMemento object) {
+    public String getDisplayValue(ObjectMemento object) {
         return null;
     }
 
     @Override
-    public String getIdValue(ObjectAdapterMemento object) {
+    public String getIdValue(ObjectMemento object) {
         return null;
     }
 
     @Override
-    public void query(String term, int page, Response<ObjectAdapterMemento> response) {
+    public void query(String term, int page, Response<ObjectMemento> response) {
     }
 
     @Override
-    public Collection<ObjectAdapterMemento> toChoices(Collection<String> ids) {
+    public Collection<ObjectMemento> toChoices(Collection<String> ids) {
         return null;
     }
 }
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
index ff9a1d4..f1ec775 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderAbstract.java
@@ -31,7 +31,7 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.IsisConverterLocator;
@@ -40,7 +40,7 @@ import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 import lombok.Getter;
 import lombok.val;
 
-public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvider<ObjectAdapterMemento> {
+public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvider<ObjectMemento> {
 
     private static final long serialVersionUID = 1L;
 
@@ -59,7 +59,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
     }
 
     @Override
-    public String getDisplayValue(final ObjectAdapterMemento choice) {
+    public String getDisplayValue(final ObjectMemento choice) {
         if (choice == null) {
             return NULL_DISPLAY_TEXT;
         }
@@ -80,7 +80,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
     }
 
     @Override
-    public String getIdValue(final ObjectAdapterMemento choice) {
+    public String getIdValue(final ObjectMemento choice) {
         if (choice == null) {
             return NULL_PLACEHOLDER;
         }
@@ -97,9 +97,9 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
     }
 
     @Override
-    public void query(final String term, final int page, final org.wicketstuff.select2.Response<ObjectAdapterMemento> response) {
+    public void query(final String term, final int page, final org.wicketstuff.select2.Response<ObjectMemento> response) {
 
-        final List<ObjectAdapterMemento> mementos = _Lists.newArrayList(obtainMementos(term));
+        final List<ObjectMemento> mementos = _Lists.newArrayList(obtainMementos(term));
         // if not mandatory, and the list doesn't contain null already, then add it in.
         if(!scalarModel.isRequired() && !mementos.contains(null)) {
             mementos.add(0, null);
@@ -107,7 +107,7 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
         response.addAll(mementos);
     }
 
-    protected abstract List<ObjectAdapterMemento> obtainMementos(String term);
+    protected abstract List<ObjectMemento> obtainMementos(String term);
 
     /**
      * Filters all choices against a term by using their
@@ -117,12 +117,12 @@ public abstract class ObjectAdapterMementoProviderAbstract extends ChoiceProvide
      * @param choicesMementos The collections of choices to filter
      * @return A list of all matching choices
      */
-    protected final List<ObjectAdapterMemento> obtainMementos(String term, Collection<ObjectAdapterMemento> choicesMementos) {
-        List<ObjectAdapterMemento> matches = _Lists.newArrayList();
+    protected final List<ObjectMemento> obtainMementos(String term, Collection<ObjectMemento> choicesMementos) {
+        List<ObjectMemento> matches = _Lists.newArrayList();
         if (Strings.isEmpty(term)) {
             matches.addAll(choicesMementos);
         } else {
-            for (ObjectAdapterMemento candidate : choicesMementos) {
+            for (ObjectMemento candidate : choicesMementos) {
                 val objectAdapter = commonContext.reconstructObject(candidate); 
                 String title = objectAdapter.titleString(objectAdapter);
                 if (title.toLowerCase().contains(term.toLowerCase())) {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
index c463528..360048c 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForChoices.java
@@ -38,11 +38,11 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers;
 
 import java.util.List;
 
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 
 public interface ObjectAdapterMementoProviderForChoices {
 
-    List<ObjectAdapterMemento> getChoiceMementos();
+    List<ObjectMemento> getChoiceMementos();
 
 
 }
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
index 7ebb020..ce60425 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceChoices.java
@@ -43,7 +43,7 @@ import java.util.stream.Collectors;
 
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
 import lombok.val;
@@ -53,29 +53,29 @@ extends ObjectAdapterMementoProviderAbstract
 implements ObjectAdapterMementoProviderForChoices {
 
     private static final long serialVersionUID = 1L;
-    private final List<ObjectAdapterMemento> choiceMementos;
+    private final List<ObjectMemento> choiceMementos;
 
     public ObjectAdapterMementoProviderForReferenceChoices(
             ScalarModel model,
-            List<ObjectAdapterMemento> choiceMementos) {
+            List<ObjectMemento> choiceMementos) {
         
         super(model);
         this.choiceMementos = choiceMementos;
     }
 
     @Override
-    protected List<ObjectAdapterMemento> obtainMementos(String term) {
+    protected List<ObjectMemento> obtainMementos(String term) {
         return obtainMementos(term, choiceMementos);
     }
 
     @Override
-    public List<ObjectAdapterMemento> getChoiceMementos() {
+    public List<ObjectMemento> getChoiceMementos() {
         return choiceMementos;
     }
 
     @Override
-    public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
-        final Function<String, ObjectAdapterMemento> function = (final String input) -> {
+    public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
+        final Function<String, ObjectMemento> function = (final String input) -> {
             if(NULL_PLACEHOLDER.equals(input)) {
                 return null;
             }
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
index e732667..557e555 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceObjectAutoComplete.java
@@ -47,7 +47,7 @@ import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
 import lombok.val;
@@ -62,7 +62,7 @@ extends ObjectAdapterMementoProviderAbstract {
     }
 
     @Override
-    protected List<ObjectAdapterMemento> obtainMementos(String term) {
+    protected List<ObjectMemento> obtainMementos(String term) {
         final ObjectSpecification typeOfSpecification = getScalarModel().getTypeOfSpecification();
         final AutoCompleteFacet autoCompleteFacet = typeOfSpecification.getFacet(AutoCompleteFacet.class);
         final List<ManagedObject> autoCompleteAdapters =
@@ -74,7 +74,7 @@ extends ObjectAdapterMementoProviderAbstract {
     }
 
     @Override
-    public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
+    public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
         
         val commonContext = super.getCommonContext();
 
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
index 13b417e..935b0c8 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForReferenceParamOrPropertyAutoComplete.java
@@ -45,7 +45,7 @@ import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
 import lombok.val;
@@ -60,7 +60,7 @@ extends ObjectAdapterMementoProviderAbstract {
     }
 
     @Override
-    protected List<ObjectAdapterMemento> obtainMementos(String term) {
+    protected List<ObjectMemento> obtainMementos(String term) {
         
         val commonContext = super.getCommonContext();
         
@@ -76,10 +76,10 @@ extends ObjectAdapterMementoProviderAbstract {
     }
 
     @Override
-    public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
+    public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
         val commonContext = super.getCommonContext();
         
-        final Function<String, ObjectAdapterMemento> function = (final String input)->{
+        final Function<String, ObjectMemento> function = (final String input)->{
             if(NULL_PLACEHOLDER.equals(input)) {
                 return null;
             }
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
index f05d587..7909e2a 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/providers/ObjectAdapterMementoProviderForValueChoices.java
@@ -41,40 +41,40 @@ import java.util.List;
 import java.util.function.Predicate;
 
 import org.apache.isis.commons.internal.collections._Lists;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 
 public class ObjectAdapterMementoProviderForValueChoices
 extends ObjectAdapterMementoProviderAbstract implements ObjectAdapterMementoProviderForChoices {
 
     private static final long serialVersionUID = 1L;
-    private final List<ObjectAdapterMemento> choicesMementos;
+    private final List<ObjectMemento> choicesMementos;
 
     public ObjectAdapterMementoProviderForValueChoices(
             ScalarModel scalarModel,
-            List<ObjectAdapterMemento> choicesMementos) {
+            List<ObjectMemento> choicesMementos) {
         
         super(scalarModel);
         this.choicesMementos = choicesMementos;
     }
 
     @Override
-    protected List<ObjectAdapterMemento> obtainMementos(String term) {
+    protected List<ObjectMemento> obtainMementos(String term) {
         return obtainMementos(term, choicesMementos);
     }
 
     @Override
-    public List<ObjectAdapterMemento> getChoiceMementos() {
+    public List<ObjectMemento> getChoiceMementos() {
         return choicesMementos;
     }
 
     @Override
-    public Collection<ObjectAdapterMemento> toChoices(final Collection<String> ids) {
-        final List<ObjectAdapterMemento> mementos = obtainMementos(null);
+    public Collection<ObjectMemento> toChoices(final Collection<String> ids) {
+        final List<ObjectMemento> mementos = obtainMementos(null);
 
-        final Predicate<ObjectAdapterMemento> lookupOam = new Predicate<ObjectAdapterMemento>() {
+        final Predicate<ObjectMemento> lookupOam = new Predicate<ObjectMemento>() {
             @Override
-            public boolean test(ObjectAdapterMemento input) {
+            public boolean test(ObjectMemento input) {
                 final String id = getIdValue(input);
                 return ids.contains(id);
             }
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index c165004..fb27400 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -48,7 +48,7 @@ import org.apache.isis.metamodel.facets.actions.redirect.RedirectFacet;
 import org.apache.isis.metamodel.facets.properties.renderunchanged.UnchangingFacet;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.runtime.system.session.IsisRequestCycle;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
@@ -284,15 +284,15 @@ implements FormExecutor {
             final ManagedObject targetAdapter,
             final ManagedObject resultAdapter) {
 
-        final ObjectAdapterMemento targetOam = getCommonContext().mementoFor(targetAdapter);
-        final ObjectAdapterMemento resultOam = getCommonContext().mementoFor(resultAdapter);
+        final ObjectMemento targetOam = getCommonContext().mementoFor(targetAdapter);
+        final ObjectMemento resultOam = getCommonContext().mementoFor(resultAdapter);
 
         return differs(targetOam, resultOam);
     }
 
     private static boolean differs(
-            final ObjectAdapterMemento targetOam,
-            final ObjectAdapterMemento resultOam) {
+            final ObjectMemento targetOam,
+            final ObjectMemento resultOam) {
 
         final Bookmark resultBookmark = resultOam != null ? resultOam.asHintingBookmarkIfSupported() : null;
         final Bookmark targetBookmark = targetOam != null ? targetOam.asHintingBookmarkIfSupported() : null;
diff --git a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
index 65ca5bc..607bf5f 100644
--- a/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
+++ b/core/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/widgets/valuechoices/ObjectAdapterMementoProviderForValueChoicesTest.java
@@ -33,7 +33,7 @@ import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.metamodel.spec.ObjectSpecId;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
@@ -47,10 +47,10 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
     @Rule public JUnitRuleMockery2 context = 
             JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
 
-    private List<ObjectAdapterMemento> mementos;
+    private List<ObjectMemento> mementos;
 
-    private ObjectAdapterMemento mockMemento1;
-    private ObjectAdapterMemento mockMemento2;
+    private ObjectMemento mockMemento1;
+    private ObjectMemento mockMemento2;
     private ObjectAdapterMementoProviderForValueChoices provider;
 
     @Mock private SpecificationLoader mockSpecificationLoader;
@@ -94,15 +94,15 @@ public class ObjectAdapterMementoProviderForValueChoicesTest {
 
     @Test
     public void whenInList() throws Exception {
-        final Collection<ObjectAdapterMemento> mementos = provider.toChoices(Collections.singletonList("FAKE:mockMemento1"));
+        final Collection<ObjectMemento> mementos = provider.toChoices(Collections.singletonList("FAKE:mockMemento1"));
         Assert.assertThat(mementos.size(), is(1));
         Assert.assertThat(mementos.iterator().next(), is(mockMemento1));
     }
 
-    private ObjectAdapterMemento mock(
+    private ObjectMemento mock(
             final ObjectSpecId specId,
             final String id) {
-        final ObjectAdapterMemento mock = context.mock(ObjectAdapterMemento.class, id);
+        final ObjectMemento mock = context.mock(ObjectMemento.class, id);
         context.checking(new Expectations() {{
             allowing(mock).getObjectSpecId();
             will(returnValue(specId));
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
index 490355f..651e532 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/ConverterForObjectAdapterMemento.java
@@ -27,7 +27,7 @@ import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.metamodel.adapter.oid.Oid;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
 
 import lombok.RequiredArgsConstructor;
@@ -35,11 +35,11 @@ import lombok.val;
 
 /**
  * Implementation of a Wicket {@link IConverter} for
- * {@link ObjectAdapterMemento}s, converting to-and-from their {@link Oid}'s
+ * {@link ObjectMemento}s, converting to-and-from their {@link Oid}'s
  * string representation.
  */
 @RequiredArgsConstructor
-public class ConverterForObjectAdapterMemento implements IConverter<ObjectAdapterMemento> {
+public class ConverterForObjectAdapterMemento implements IConverter<ObjectMemento> {
 
     private static final long serialVersionUID = 1L;
     
@@ -47,10 +47,10 @@ public class ConverterForObjectAdapterMemento implements IConverter<ObjectAdapte
 
     /**
      * Converts string representation of {@link Oid} to
-     * {@link ObjectAdapterMemento}.
+     * {@link ObjectMemento}.
      */
     @Override
-    public ObjectAdapterMemento convertToObject(final String value, final Locale locale) {
+    public ObjectMemento convertToObject(final String value, final Locale locale) {
         if (_Strings.isNullOrEmpty(value)) {
             return null;
         }
@@ -59,11 +59,11 @@ public class ConverterForObjectAdapterMemento implements IConverter<ObjectAdapte
     }
 
     /**
-     * Converts {@link ObjectAdapterMemento} to string representation of
+     * Converts {@link ObjectMemento} to string representation of
      * {@link RootOid}.
      */
     @Override
-    public String convertToString(final ObjectAdapterMemento memento, final Locale locale) {
+    public String convertToString(final ObjectMemento memento, final Locale locale) {
         if (memento == null) {
             return null;
         }
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
index 75c34d5..f069dbe 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
@@ -69,7 +69,7 @@ import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
 import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettingsAccessor;
 import org.apache.isis.viewer.wicket.model.models.PageType;
@@ -573,7 +573,7 @@ IsisWebAppCommonContext.Provider {
     protected IConverterLocator newConverterLocator() {
         final ConverterLocator converterLocator = new ConverterLocator();
         converterLocator.set(ManagedObject.class, new ConverterForObjectAdapter());
-        converterLocator.set(ObjectAdapterMemento.class, new ConverterForObjectAdapterMemento(commonContext));
+        converterLocator.set(ObjectMemento.class, new ConverterForObjectAdapterMemento(commonContext));
         return converterLocator;
     }
 
diff --git a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
index 7387d9e..f4596c2 100644
--- a/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
+++ b/core/viewers/wicket/viewer/src/test/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication_Defaults.java
@@ -29,7 +29,7 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.isis.metamodel.spec.ManagedObject;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
+import org.apache.isis.runtime.memento.ObjectMemento;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 import org.apache.isis.viewer.wicket.viewer.integration.AuthenticatedWebSessionForIsis;
@@ -74,7 +74,7 @@ public class IsisWicketApplication_Defaults {
     public void providesConverterLocatorRegistersIsisSpecificConverters() {
         final IConverterLocator converterLocator = application.newConverterLocator();
         assertThat(converterLocator.getConverter(ManagedObject.class), is(not(nullValue())));
-        assertThat(converterLocator.getConverter(ObjectAdapterMemento.class), is(not(nullValue())));
+        assertThat(converterLocator.getConverter(ObjectMemento.class), is(not(nullValue())));
     }
 
 }
diff --git a/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java b/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
index 73856cb..206895d 100644
--- a/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/context/IsisWebAppCommonContext.java
@@ -32,8 +32,8 @@ import org.apache.isis.metamodel.context.MetaModelContext;
 import org.apache.isis.metamodel.adapter.oid.RootOid;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.runtime.memento.ObjectAdapterMemento;
-import org.apache.isis.runtime.memento.ObjectAdapterMementoService;
+import org.apache.isis.runtime.memento.ObjectMemento;
+import org.apache.isis.runtime.memento.ObjectMementoService;
 import org.apache.isis.runtime.system.session.IsisSession;
 
 import lombok.AccessLevel;
@@ -63,7 +63,7 @@ public class IsisWebAppCommonContext implements MetaModelContext.Delegating {
     private final MenuBarsService menuBarsService = lookupServiceElseFail(MenuBarsService.class);
     
     @Getter(lazy = true, value = AccessLevel.PRIVATE)
-    private final ObjectAdapterMementoService mementoService = lookupServiceElseFail(ObjectAdapterMementoService.class);
+    private final ObjectMementoService mementoService = lookupServiceElseFail(ObjectMementoService.class);
     
     @Getter(lazy = true)
     private final Function<Object, ManagedObject> pojoToAdapter = metaModelContext.getObjectManager()::adapt;
@@ -92,15 +92,15 @@ public class IsisWebAppCommonContext implements MetaModelContext.Delegating {
         return new TransactionTemplate(txMan);
     }
     
-    public ObjectAdapterMemento mementoFor(ManagedObject adapter) {
+    public ObjectMemento mementoFor(ManagedObject adapter) {
         return getMementoService().mementoForAdapter(adapter);
     }
     
-    public ObjectAdapterMemento mementoFor(RootOid rootOid) {
+    public ObjectMemento mementoFor(RootOid rootOid) {
         return getMementoService().mementoForRootOid(rootOid);
     }
     
-    public ManagedObject reconstructObject(ObjectAdapterMemento memento) {
+    public ManagedObject reconstructObject(ObjectMemento memento) {
         return getMementoService().reconstructObject(memento);
     }
     
@@ -128,7 +128,7 @@ public class IsisWebAppCommonContext implements MetaModelContext.Delegating {
             return getCommonContext().getSpecificationLoader();
         }
         
-        default ObjectAdapterMementoService getMementoService() {
+        default ObjectMementoService getMementoService() {
             return getCommonContext().getMementoService();
         }