You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2022/12/24 00:56:15 UTC

[datasketches-memory] branch IntegrateJava17_v2 updated: Class Renaming and error and warning rewordings

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

leerho pushed a commit to branch IntegrateJava17_v2
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git


The following commit(s) were added to refs/heads/IntegrateJava17_v2 by this push:
     new 44a822f  Class Renaming and error and warning rewordings
44a822f is described below

commit 44a822f103488d9b57850486fc68fa43e9d4ca50
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Fri Dec 23 16:56:02 2022 -0800

    Class Renaming and error and warning rewordings
---
 .../org/apache/datasketches/memory/Buffer.java     |  4 +--
 .../org/apache/datasketches/memory/Memory.java     | 22 ++++++------
 .../apache/datasketches/memory/WritableBuffer.java |  4 +--
 .../apache/datasketches/memory/WritableMemory.java | 24 ++++++-------
 .../memory/internal/AllocateDirectMap.java         |  4 +--
 ...ableBufferImpl.java => BaseWritableBuffer.java} | 18 +++++-----
 ...ableMemoryImpl.java => BaseWritableMemory.java} | 34 +++++++++---------
 ...mpl.java => LeafBBNonNativeWritableBuffer.java} | 22 ++++++------
 ...mpl.java => LeafBBNonNativeWritableMemory.java} | 16 ++++-----
 ...leBufferImpl.java => LeafBBWritableBuffer.java} | 22 ++++++------
 ...leMemoryImpl.java => LeafBBWritableMemory.java} | 16 ++++-----
 ...java => LeafDirectNonNativeWritableBuffer.java} | 22 ++++++------
 ...java => LeafDirectNonNativeWritableMemory.java} | 16 ++++-----
 ...fferImpl.java => LeafDirectWritableBuffer.java} | 22 ++++++------
 ...moryImpl.java => LeafDirectWritableMemory.java} | 16 ++++-----
 ...l.java => LeafHeapNonNativeWritableBuffer.java} | 22 ++++++------
 ...l.java => LeafHeapNonNativeWritableMemory.java} | 16 ++++-----
 ...pl.java => LeafMapNonNativeWritableBuffer.java} | 40 ++++++++++++----------
 ...pl.java => LeafMapNonNativeWritableMemory.java} | 30 ++++++++--------
 ...eBufferImpl.java => LeafMapWritableBuffer.java} | 40 ++++++++++++----------
 ...eMemoryImpl.java => LeafMapWritableMemory.java} | 30 ++++++++--------
 ...ableBufferImpl.java => LeafWritableBuffer.java} | 22 ++++++------
 ...ableMemoryImpl.java => LeafWritableMemory.java} | 16 ++++-----
 .../memory/internal/MapHandleImpl.java             |  4 +--
 ...leBufferImpl.java => NativeWritableBuffer.java} |  4 +--
 ...leMemoryImpl.java => NativeWritableMemory.java} |  4 +--
 ...ufferImpl.java => NonNativeWritableBuffer.java} |  4 +--
 ...emoryImpl.java => NonNativeWritableMemory.java} |  4 +--
 .../memory/internal/WritableDirectHandleImpl.java  |  4 +--
 .../memory/internal/WritableMapHandleImpl.java     |  2 +-
 30 files changed, 255 insertions(+), 249 deletions(-)

diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java
index 9c75edb..b8cf34b 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java
@@ -25,7 +25,7 @@ import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.util.Objects;
 
-import org.apache.datasketches.memory.internal.BaseWritableBufferImpl;
+import org.apache.datasketches.memory.internal.BaseWritableBuffer;
 
 /**
  * Defines the read-only API for relative positional access to a resource.
@@ -57,7 +57,7 @@ public interface Buffer extends BaseBuffer {
     Objects.requireNonNull(byteBuffer, "byteBuffer must not be null");
     Objects.requireNonNull(byteOrder, "byteOrder must not be null");
     negativeCheck(byteBuffer.capacity(), "byteBuffer");
-    return BaseWritableBufferImpl.wrapByteBuffer(byteBuffer, true, byteOrder, null);
+    return BaseWritableBuffer.wrapByteBuffer(byteBuffer, true, byteOrder, null);
   }
 
   //DUPLICATES
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java
index 9237e4e..8b2efbe 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java
@@ -30,7 +30,7 @@ import java.nio.ByteOrder;
 import java.nio.channels.WritableByteChannel;
 import java.util.Objects;
 
-import org.apache.datasketches.memory.internal.BaseWritableMemoryImpl;
+import org.apache.datasketches.memory.internal.BaseWritableMemory;
 import org.apache.datasketches.memory.internal.Prim;
 
 /**
@@ -63,7 +63,7 @@ public interface Memory extends Resource {
     Objects.requireNonNull(byteBuffer, "byteBuffer must not be null");
     Objects.requireNonNull(byteOrder, "byteOrder must not be null");
     negativeCheck(byteBuffer.capacity(), "byteBuffer");
-    return BaseWritableMemoryImpl.wrapByteBuffer(byteBuffer, true, byteOrder, null);
+    return BaseWritableMemory.wrapByteBuffer(byteBuffer, true, byteOrder, null);
   }
 
   //MAP
@@ -94,7 +94,7 @@ public interface Memory extends Resource {
     if (!file.canRead()) { throw new IllegalArgumentException("file must be readable."); }
     negativeCheck(fileOffsetBytes, "fileOffsetBytes");
     negativeCheck(capacityBytes, "capacityBytes");
-    return (MapHandle) BaseWritableMemoryImpl.wrapMap(file, fileOffsetBytes, capacityBytes, true, byteOrder);
+    return (MapHandle) BaseWritableMemory.wrapMap(file, fileOffsetBytes, capacityBytes, true, byteOrder);
   }
 
   //REGIONS
@@ -196,7 +196,7 @@ public interface Memory extends Resource {
     negativeCheck(offsetBytes, "offsetBytes");
     negativeCheck(lengthBytes, "lengthBytes");
     checkBounds(offsetBytes, lengthBytes, array.length);
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -207,7 +207,7 @@ public interface Memory extends Resource {
   static Memory wrap(boolean[] array) {
     Objects.requireNonNull(array, "array must be non-null");
     final long lengthBytes = array.length << Prim.BOOLEAN.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -218,7 +218,7 @@ public interface Memory extends Resource {
   static Memory wrap(char[] array) {
     Objects.requireNonNull(array, "array must be non-null");
     final long lengthBytes = array.length << Prim.CHAR.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -229,7 +229,7 @@ public interface Memory extends Resource {
   static Memory wrap(short[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.SHORT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -240,7 +240,7 @@ public interface Memory extends Resource {
   static Memory wrap(int[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.INT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -251,7 +251,7 @@ public interface Memory extends Resource {
   static Memory wrap(long[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.LONG.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -262,7 +262,7 @@ public interface Memory extends Resource {
   static Memory wrap(float[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.FLOAT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -273,7 +273,7 @@ public interface Memory extends Resource {
   static Memory wrap(double[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.DOUBLE.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, true, NATIVE_BYTE_ORDER, null);
   }
 
   //PRIMITIVE getX() and getXArray()
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
index c631637..669555e 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
@@ -25,7 +25,7 @@ import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.util.Objects;
 
-import org.apache.datasketches.memory.internal.BaseWritableBufferImpl;
+import org.apache.datasketches.memory.internal.BaseWritableBuffer;
 import org.apache.datasketches.memory.internal.Util;
 
 /**
@@ -63,7 +63,7 @@ public interface WritableBuffer extends Buffer {
     if (byteBuf.isReadOnly()) {
       throw new ReadOnlyException("Cannot create a WritableBuffer from a ReadOnly ByteBuffer.");
     }
-    return BaseWritableBufferImpl.wrapByteBuffer(byteBuf, false, byteOrder, memReqSvr);
+    return BaseWritableBuffer.wrapByteBuffer(byteBuf, false, byteOrder, memReqSvr);
   }
 
   // NO MAP
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
index 2cc22d4..80ead1a 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
@@ -28,7 +28,7 @@ import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.util.Objects;
 
-import org.apache.datasketches.memory.internal.BaseWritableMemoryImpl;
+import org.apache.datasketches.memory.internal.BaseWritableMemory;
 import org.apache.datasketches.memory.internal.Prim;
 
 /**
@@ -76,7 +76,7 @@ public interface WritableMemory extends Memory {
     Objects.requireNonNull(byteOrder, "byteOrder must be non-null");
     negativeCheck(byteBuffer.capacity(), "byteBuffer");
     if (byteBuffer.isReadOnly()) { throw new ReadOnlyException("byteBuffer must be writable."); }
-    return BaseWritableMemoryImpl.wrapByteBuffer(byteBuffer, false, byteOrder, memReqSvr);
+    return BaseWritableMemory.wrapByteBuffer(byteBuffer, false, byteOrder, memReqSvr);
   }
 
   //MAP
@@ -111,7 +111,7 @@ public interface WritableMemory extends Memory {
     negativeCheck(file.length(), "file.length()");
     negativeCheck(fileOffsetBytes, "fileOffsetBytes");
     negativeCheck(capacityBytes, "capacityBytes");
-    return BaseWritableMemoryImpl.wrapMap(file, fileOffsetBytes, capacityBytes, false, byteOrder);
+    return BaseWritableMemory.wrapMap(file, fileOffsetBytes, capacityBytes, false, byteOrder);
   }
 
   //ALLOCATE DIRECT
@@ -150,7 +150,7 @@ public interface WritableMemory extends Memory {
   static WritableHandle allocateDirect(long capacityBytes, ByteOrder byteOrder, MemoryRequestServer memReqSvr) {
     Objects.requireNonNull(byteOrder, "byteOrder must be non-null");
     negativeCheck(capacityBytes, "capacityBytes");
-    return BaseWritableMemoryImpl.wrapDirect(capacityBytes, byteOrder, memReqSvr);
+    return BaseWritableMemory.wrapDirect(capacityBytes, byteOrder, memReqSvr);
   }
 
   //REGIONS
@@ -319,7 +319,7 @@ public interface WritableMemory extends Memory {
     negativeCheck(offsetBytes, "offsetBytes");
     negativeCheck(lengthBytes, "lengthBytes");
     checkBounds(offsetBytes, lengthBytes, array.length);
-    return BaseWritableMemoryImpl.wrapHeapArray(array, offsetBytes, lengthBytes, false, byteOrder, memReqSvr);
+    return BaseWritableMemory.wrapHeapArray(array, offsetBytes, lengthBytes, false, byteOrder, memReqSvr);
   }
 
   /**
@@ -330,7 +330,7 @@ public interface WritableMemory extends Memory {
   static WritableMemory writableWrap(boolean[] array) {
     Objects.requireNonNull(array, "array must be non-null");
     final long lengthBytes = array.length << Prim.BOOLEAN.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0, lengthBytes, false, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0, lengthBytes, false, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -341,7 +341,7 @@ public interface WritableMemory extends Memory {
   static WritableMemory writableWrap(char[] array) {
     Objects.requireNonNull(array, "array must be non-null");
     final long lengthBytes = array.length << Prim.CHAR.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -352,7 +352,7 @@ public interface WritableMemory extends Memory {
   static WritableMemory writableWrap(short[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.SHORT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, false,NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, false,NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -363,7 +363,7 @@ public interface WritableMemory extends Memory {
   static WritableMemory writableWrap(int[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.INT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -374,7 +374,7 @@ public interface WritableMemory extends Memory {
   static WritableMemory writableWrap(long[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.LONG.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -385,7 +385,7 @@ public interface WritableMemory extends Memory {
   static WritableMemory writableWrap(float[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.FLOAT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
   }
 
   /**
@@ -396,7 +396,7 @@ public interface WritableMemory extends Memory {
   static WritableMemory writableWrap(double[] array) {
     Objects.requireNonNull(array, "arr must be non-null");
     final long lengthBytes = array.length << Prim.DOUBLE.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
+    return BaseWritableMemory.wrapHeapArray(array, 0L, lengthBytes, false, NATIVE_BYTE_ORDER, null);
   }
   //END OF CONSTRUCTOR-TYPE METHODS
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectMap.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectMap.java
index af76bff..35d5acc 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectMap.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectMap.java
@@ -156,7 +156,7 @@ class AllocateDirectMap implements Map {
 
   @Override
   public void close() {
-    doClose("AllocateDirectMap");
+    doClose("Memory-mapped file via AllocateDirectMap");
   }
 
   boolean doClose(final String resource) {
@@ -284,7 +284,7 @@ class AllocateDirectMap implements Map {
       if (valid.change()) {
         if (calledFromCleaner) {
           // Warn about non-deterministic resource cleanup.
-          LOG.warning("A WritableMapHandleImpl was not closed manually");
+          LOG.warning("A memory-mapped resource was not closed manually");
         }
         unmap();
         return true;
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBuffer.java
similarity index 96%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBuffer.java
index 81eab18..a47254f 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBuffer.java
@@ -45,10 +45,10 @@ import org.apache.datasketches.memory.WritableMemory;
  * Contains methods which are agnostic to the byte order.
  */
 @SuppressWarnings("restriction")
-public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements WritableBuffer {
+public abstract class BaseWritableBuffer extends BaseBufferImpl implements WritableBuffer {
 
   //Pass-through constructor
-  BaseWritableBufferImpl(final Object unsafeObj, final long nativeBaseOffset,
+  BaseWritableBuffer(final Object unsafeObj, final long nativeBaseOffset,
       final long regionOffset, final long capacityBytes) {
     super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
   }
@@ -61,15 +61,15 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
    * @param memReqSvr the requested MemoryRequestServer, which may be null.
    * @return this class constructed via the leaf node.
    */
-  public static BaseWritableBufferImpl wrapByteBuffer(
+  public static BaseWritableBuffer wrapByteBuffer(
       final ByteBuffer byteBuf, final boolean localReadOnly, final ByteOrder byteOrder,
       final MemoryRequestServer memReqSvr) {
     final AccessByteBuffer abb = new AccessByteBuffer(byteBuf);
     final int typeId = (abb.resourceReadOnly || localReadOnly) ? READONLY : 0;
-    final BaseWritableBufferImpl bwbi = Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableBufferImpl(abb.unsafeObj, abb.nativeBaseOffset,
+    final BaseWritableBuffer bwbi = Util.isNativeByteOrder(byteOrder)
+        ? new LeafBBWritableBuffer(abb.unsafeObj, abb.nativeBaseOffset,
             abb.regionOffset, abb.capacityBytes, typeId, byteBuf, memReqSvr)
-        : new BBNonNativeWritableBufferImpl(abb.unsafeObj, abb.nativeBaseOffset,
+        : new LeafBBNonNativeWritableBuffer(abb.unsafeObj, abb.nativeBaseOffset,
             abb.regionOffset, abb.capacityBytes,  typeId, byteBuf, memReqSvr);
     bwbi.setAndCheckStartPositionEnd(0, byteBuf.position(), byteBuf.limit());
     return bwbi;
@@ -113,7 +113,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
     return wbuf;
   }
 
-  abstract BaseWritableBufferImpl toWritableRegion(
+  abstract BaseWritableBuffer toWritableRegion(
       long offsetBytes, long capcityBytes, boolean readOnly, ByteOrder byteOrder);
 
   //DUPLICATES
@@ -147,7 +147,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
     return wbuf;
   }
 
-  abstract BaseWritableBufferImpl toDuplicate(boolean readOnly, ByteOrder byteOrder);
+  abstract BaseWritableBuffer toDuplicate(boolean readOnly, ByteOrder byteOrder);
 
   //AS MEMORY
   @Override
@@ -171,7 +171,7 @@ public abstract class BaseWritableBufferImpl extends BaseBufferImpl implements W
     return wmem;
   }
 
-  abstract BaseWritableMemoryImpl toWritableMemory(boolean readOnly, ByteOrder byteOrder);
+  abstract BaseWritableMemory toWritableMemory(boolean readOnly, ByteOrder byteOrder);
 
   //PRIMITIVE getX() and getXArray()
   @Override
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemory.java
similarity index 93%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemory.java
index 70b3702..ea5e3f3 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemory.java
@@ -51,7 +51,7 @@ import org.apache.datasketches.memory.WritableMemory;
  * Contains methods which are agnostic to the byte order.
  */
 @SuppressWarnings("restriction")
-public abstract class BaseWritableMemoryImpl extends ResourceImpl implements WritableMemory {
+public abstract class BaseWritableMemory extends ResourceImpl implements WritableMemory {
 
   //1KB of empty bytes for speedy clear()
   private final static byte[] EMPTY_BYTES;
@@ -61,7 +61,7 @@ public abstract class BaseWritableMemoryImpl extends ResourceImpl implements Wri
   }
 
   //Pass-through constructor
-  BaseWritableMemoryImpl(final Object unsafeObj, final long nativeBaseOffset,
+  BaseWritableMemory(final Object unsafeObj, final long nativeBaseOffset,
       final long regionOffset, final long capacityBytes) {
     super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
   }
@@ -76,12 +76,12 @@ public abstract class BaseWritableMemoryImpl extends ResourceImpl implements Wri
    * @param memReqSvr the requested MemoryRequestServer, which may be null.
    * @return this class constructed via the leaf node.
    */
-  public static BaseWritableMemoryImpl wrapHeapArray(final Object arr, final long offsetBytes, final long lengthBytes,
+  public static BaseWritableMemory wrapHeapArray(final Object arr, final long offsetBytes, final long lengthBytes,
       final boolean localReadOnly, final ByteOrder byteOrder, final MemoryRequestServer memReqSvr) {
     final int typeId = localReadOnly ? READONLY : 0;
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableMemoryImpl(arr, offsetBytes, lengthBytes, typeId, memReqSvr)
-        : new HeapNonNativeWritableMemoryImpl(arr, offsetBytes, lengthBytes, typeId, memReqSvr);
+        ? new LeafWritableMemory(arr, offsetBytes, lengthBytes, typeId, memReqSvr)
+        : new LeafHeapNonNativeWritableMemory(arr, offsetBytes, lengthBytes, typeId, memReqSvr);
   }
 
   /**
@@ -92,15 +92,15 @@ public abstract class BaseWritableMemoryImpl extends ResourceImpl implements Wri
    * @param memReqSvr the requested MemoryRequestServer, which may be null.
    * @return this class constructed via the leaf node.
    */
-  public static BaseWritableMemoryImpl wrapByteBuffer(
+  public static BaseWritableMemory wrapByteBuffer(
       final ByteBuffer byteBuf, final boolean localReadOnly, final ByteOrder byteOrder,
       final MemoryRequestServer memReqSvr) {
     final AccessByteBuffer abb = new AccessByteBuffer(byteBuf);
     final int typeId = (abb.resourceReadOnly || localReadOnly) ? READONLY : 0;
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
+        ? new LeafBBWritableMemory(abb.unsafeObj, abb.nativeBaseOffset,
             abb.regionOffset, abb.capacityBytes, typeId, byteBuf, memReqSvr)
-        : new BBNonNativeWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
+        : new LeafBBNonNativeWritableMemory(abb.unsafeObj, abb.nativeBaseOffset,
             abb.regionOffset, abb.capacityBytes,  typeId, byteBuf, memReqSvr);
   }
 
@@ -118,11 +118,9 @@ public abstract class BaseWritableMemoryImpl extends ResourceImpl implements Wri
     final AllocateDirectWritableMap dirWMap =
         new AllocateDirectWritableMap(file, fileOffsetBytes, capacityBytes, localReadOnly);
     final int typeId = (dirWMap.resourceReadOnly || localReadOnly) ? READONLY : 0;
-    final BaseWritableMemoryImpl wmem = Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableMemoryImpl(dirWMap.nativeBaseOffset, 0L, capacityBytes,
-            typeId, dirWMap.getValid())
-        : new MapNonNativeWritableMemoryImpl(dirWMap.nativeBaseOffset, 0L, capacityBytes,
-            typeId, dirWMap.getValid());
+    final BaseWritableMemory wmem = Util.isNativeByteOrder(byteOrder)
+        ? new LeafMapWritableMemory(dirWMap.nativeBaseOffset, 0L, capacityBytes, typeId, dirWMap)
+        : new LeafMapNonNativeWritableMemory(dirWMap.nativeBaseOffset, 0L, capacityBytes, typeId, dirWMap);
     return new WritableMapHandleImpl(dirWMap, wmem);
   }
 
@@ -137,10 +135,10 @@ public abstract class BaseWritableMemoryImpl extends ResourceImpl implements Wri
       final ByteOrder byteOrder, final MemoryRequestServer memReqSvr) {
     final AllocateDirect direct = new AllocateDirect(capacityBytes);
     final int typeId = 0; //direct is never read-only on construction
-    final BaseWritableMemoryImpl wmem = Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableMemoryImpl(direct.getNativeBaseOffset(), 0L, capacityBytes,
+    final BaseWritableMemory wmem = Util.isNativeByteOrder(byteOrder)
+        ? new LeafDirectWritableMemory(direct.getNativeBaseOffset(), 0L, capacityBytes,
             typeId, direct.getValid(), memReqSvr)
-        : new DirectNonNativeWritableMemoryImpl(direct.getNativeBaseOffset(), 0L, capacityBytes,
+        : new LeafDirectNonNativeWritableMemory(direct.getNativeBaseOffset(), 0L, capacityBytes,
             typeId, direct.getValid(), memReqSvr);
 
     final WritableHandle handle = new WritableDirectHandleImpl(direct, wmem);
@@ -172,7 +170,7 @@ public abstract class BaseWritableMemoryImpl extends ResourceImpl implements Wri
     return toWritableRegion(offsetBytes, capacityBytes, readOnly, byteOrder);
   }
 
-  abstract BaseWritableMemoryImpl toWritableRegion(
+  abstract BaseWritableMemory toWritableRegion(
       long offsetBytes, long capcityBytes, boolean readOnly, ByteOrder byteOrder);
 
   //AS BUFFER
@@ -198,7 +196,7 @@ public abstract class BaseWritableMemoryImpl extends ResourceImpl implements Wri
     return wbuf;
   }
 
-  abstract BaseWritableBufferImpl toWritableBuffer(boolean readOnly, ByteOrder byteOrder);
+  abstract BaseWritableBuffer toWritableBuffer(boolean readOnly, ByteOrder byteOrder);
 
   //PRIMITIVE getX() and getXArray()
   @Override
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBNonNativeWritableBuffer.java
similarity index 84%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBNonNativeWritableBuffer.java
index d8b596b..92f4fa9 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBNonNativeWritableBuffer.java
@@ -31,7 +31,7 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
+final class LeafBBNonNativeWritableBuffer extends NonNativeWritableBuffer {
   private static final int id = BUFFER | NONNATIVE | BYTEBUF;
   private final Object unsafeObj;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
@@ -39,7 +39,7 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  BBNonNativeWritableBufferImpl(
+  LeafBBNonNativeWritableBuffer(
       final Object unsafeObj,
       final long nativeBaseOffset,
       final long regionOffset,
@@ -56,33 +56,33 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableBufferImpl(
+        ? new LeafBBWritableBuffer(
           unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableBufferImpl(
+        : new LeafBBNonNativeWritableBuffer(
           unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, byteBuf, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableBufferImpl(
+        ? new LeafBBWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableBufferImpl(
+        : new LeafBBNonNativeWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableMemoryImpl(
+        ? new LeafBBWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableMemoryImpl(
+        : new LeafBBNonNativeWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBNonNativeWritableMemory.java
similarity index 87%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBNonNativeWritableMemory.java
index a5d8c0e..a89b009 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBNonNativeWritableMemory.java
@@ -31,7 +31,7 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
+final class LeafBBNonNativeWritableMemory extends NonNativeWritableMemory {
   private static final int id = MEMORY | NONNATIVE | BYTEBUF;
   private final Object unsafeObj;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
@@ -39,7 +39,7 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  BBNonNativeWritableMemoryImpl(
+  LeafBBNonNativeWritableMemory(
       final Object unsafeObj,
       final long nativeBaseOffset,
       final long regionOffset,
@@ -56,23 +56,23 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableMemoryImpl(
+        ? new LeafBBWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, getByteBuffer(), memReqSvr)
-        : new BBNonNativeWritableMemoryImpl(
+        : new LeafBBNonNativeWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, getByteBuffer(), memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableBufferImpl(
+        ? new LeafBBWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableBufferImpl(
+        : new LeafBBNonNativeWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBWritableBuffer.java
similarity index 85%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBWritableBuffer.java
index e7da0b0..a39cfaf 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBWritableBuffer.java
@@ -31,7 +31,7 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class BBWritableBufferImpl extends NativeWritableBufferImpl {
+final class LeafBBWritableBuffer extends NativeWritableBuffer {
   private static final int id = BUFFER | NATIVE | BYTEBUF;
   private final Object unsafeObj;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
@@ -39,7 +39,7 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  BBWritableBufferImpl(
+  LeafBBWritableBuffer(
       final Object unsafeObj,
       final long nativeBaseOffset,
       final long regionOffset,
@@ -56,33 +56,33 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableBufferImpl(
+        ? new LeafBBWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableBufferImpl(
+        : new LeafBBNonNativeWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, byteBuf, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableBufferImpl(
+        ? new LeafBBWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableBufferImpl(
+        : new LeafBBNonNativeWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableMemoryImpl(
+        ? new LeafBBWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableMemoryImpl(
+        : new LeafBBNonNativeWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBWritableMemory.java
similarity index 87%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBWritableMemory.java
index 45fd2d6..bed0d57 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafBBWritableMemory.java
@@ -31,7 +31,7 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
+final class LeafBBWritableMemory extends NativeWritableMemory {
   private static final int id = MEMORY | NATIVE | BYTEBUF;
   private final Object unsafeObj;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
@@ -39,7 +39,7 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  BBWritableMemoryImpl(
+  LeafBBWritableMemory(
       final Object unsafeObj,
       final long nativeBaseOffset,
       final long regionOffset,
@@ -56,23 +56,23 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableMemoryImpl(
+        ? new LeafBBWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, getByteBuffer(), memReqSvr)
-        : new BBNonNativeWritableMemoryImpl(
+        : new LeafBBNonNativeWritableMemory(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, getByteBuffer(), memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new BBWritableBufferImpl(
+        ? new LeafBBWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr)
-        : new BBNonNativeWritableBufferImpl(
+        : new LeafBBNonNativeWritableBuffer(
             unsafeObj, nativeBaseOffset, getRegionOffset(0), getCapacity(), type, byteBuf, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectNonNativeWritableBuffer.java
similarity index 82%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectNonNativeWritableBuffer.java
index ed69483..00aa613 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectNonNativeWritableBuffer.java
@@ -30,14 +30,14 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
+final class LeafDirectNonNativeWritableBuffer extends NonNativeWritableBuffer {
   private static final int id = BUFFER | NONNATIVE | DIRECT;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  DirectNonNativeWritableBufferImpl(
+  LeafDirectNonNativeWritableBuffer(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
@@ -52,33 +52,33 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableBufferImpl(
+        ? new LeafDirectWritableBuffer(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr)
-        : new DirectNonNativeWritableBufferImpl(
+        : new LeafDirectNonNativeWritableBuffer(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableBufferImpl(
+        ? new LeafDirectWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr)
-        : new DirectNonNativeWritableBufferImpl(
+        : new LeafDirectNonNativeWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableMemoryImpl(
+        ? new LeafDirectWritableMemory(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr)
-        : new DirectNonNativeWritableMemoryImpl(
+        : new LeafDirectNonNativeWritableMemory(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectNonNativeWritableMemory.java
similarity index 85%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectNonNativeWritableMemory.java
index 90d182a..87434f2 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectNonNativeWritableMemory.java
@@ -30,14 +30,14 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
+final class LeafDirectNonNativeWritableMemory extends NonNativeWritableMemory {
   private static final int id = MEMORY | NONNATIVE | DIRECT;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  DirectNonNativeWritableMemoryImpl(
+  LeafDirectNonNativeWritableMemory(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
@@ -52,23 +52,23 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableMemoryImpl(
+        ? new LeafDirectWritableMemory(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr)
-        : new DirectNonNativeWritableMemoryImpl(
+        : new LeafDirectNonNativeWritableMemory(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableBufferImpl(
+        ? new LeafDirectWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr)
-        : new DirectNonNativeWritableBufferImpl(
+        : new LeafDirectNonNativeWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectWritableBuffer.java
similarity index 82%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectWritableBuffer.java
index 669e663..17d03de 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectWritableBuffer.java
@@ -30,14 +30,14 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
+final class LeafDirectWritableBuffer extends NativeWritableBuffer {
   private static final int id = BUFFER | NATIVE | DIRECT;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  DirectWritableBufferImpl(
+  LeafDirectWritableBuffer(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
@@ -52,33 +52,33 @@ final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableBufferImpl(
+        ? new LeafDirectWritableBuffer(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr)
-        : new DirectNonNativeWritableBufferImpl(
+        : new LeafDirectNonNativeWritableBuffer(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableBufferImpl(
+        ? new LeafDirectWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr)
-        : new DirectNonNativeWritableBufferImpl(
+        : new LeafDirectNonNativeWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableMemoryImpl(
+        ? new LeafDirectWritableMemory(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr)
-        : new DirectNonNativeWritableMemoryImpl(
+        : new LeafDirectNonNativeWritableMemory(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectWritableMemory.java
similarity index 85%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectWritableMemory.java
index bd97d1c..ef16bd3 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafDirectWritableMemory.java
@@ -30,14 +30,14 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class DirectWritableMemoryImpl extends NativeWritableMemoryImpl {
+final class LeafDirectWritableMemory extends NativeWritableMemory {
   private static final int id = MEMORY | NATIVE | DIRECT;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  DirectWritableMemoryImpl(
+  LeafDirectWritableMemory(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
@@ -52,23 +52,23 @@ final class DirectWritableMemoryImpl extends NativeWritableMemoryImpl {
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableMemoryImpl(
+        ? new LeafDirectWritableMemory(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr)
-        : new DirectNonNativeWritableMemoryImpl(
+        : new LeafDirectNonNativeWritableMemory(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new DirectWritableBufferImpl(
+        ? new LeafDirectWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr)
-        : new DirectNonNativeWritableBufferImpl(
+        : new LeafDirectNonNativeWritableBuffer(
             nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafHeapNonNativeWritableBuffer.java
similarity index 81%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafHeapNonNativeWritableBuffer.java
index 5ace2ae..fb28705 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafHeapNonNativeWritableBuffer.java
@@ -30,13 +30,13 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
+final class LeafHeapNonNativeWritableBuffer extends NonNativeWritableBuffer {
   private static final int id = BUFFER | NONNATIVE | HEAP;
   private final Object unsafeObj;
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  HeapNonNativeWritableBufferImpl(
+  LeafHeapNonNativeWritableBuffer(
       final Object unsafeObj,
       final long regionOffset,
       final long capacityBytes,
@@ -49,33 +49,33 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableBufferImpl(
+        ? new LeafWritableBuffer(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr)
-        : new HeapNonNativeWritableBufferImpl(
+        : new LeafHeapNonNativeWritableBuffer(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableBufferImpl(
+        ? new LeafWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr)
-        : new HeapNonNativeWritableBufferImpl(
+        : new LeafHeapNonNativeWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableMemoryImpl(
+        ? new LeafWritableMemory(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr)
-        : new HeapNonNativeWritableMemoryImpl(
+        : new LeafHeapNonNativeWritableMemory(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafHeapNonNativeWritableMemory.java
similarity index 84%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafHeapNonNativeWritableMemory.java
index 2723574..e515e34 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafHeapNonNativeWritableMemory.java
@@ -30,13 +30,13 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
+final class LeafHeapNonNativeWritableMemory extends NonNativeWritableMemory {
   private static final int id = MEMORY | NONNATIVE | HEAP;
   private final Object unsafeObj;
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  HeapNonNativeWritableMemoryImpl(
+  LeafHeapNonNativeWritableMemory(
       final Object unsafeObj,
       final long regionOffset,
       final long capacityBytes,
@@ -49,23 +49,23 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableMemoryImpl(
+        ? new LeafWritableMemory(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr)
-        : new HeapNonNativeWritableMemoryImpl(
+        : new LeafHeapNonNativeWritableMemory(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableBufferImpl(
+        ? new LeafWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr)
-        : new HeapNonNativeWritableBufferImpl(
+        : new LeafHeapNonNativeWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapNonNativeWritableBuffer.java
similarity index 75%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapNonNativeWritableBuffer.java
index 2008d65..f0d39b7 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapNonNativeWritableBuffer.java
@@ -30,53 +30,55 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
+final class LeafMapNonNativeWritableBuffer extends NonNativeWritableBuffer {
   private static final int id = BUFFER | NONNATIVE | MAP;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
+  private final AllocateDirectWritableMap dirWMap;
   private final byte typeId;
 
-  MapNonNativeWritableBufferImpl(
+  LeafMapNonNativeWritableBuffer(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
       final int typeId,
-      final StepBoolean valid) {
+      final AllocateDirectWritableMap dirWMap) {
     super(null, nativeBaseOffset, regionOffset, capacityBytes);
     this.nativeBaseOffset = nativeBaseOffset;
-    this.valid = valid;
+    this.dirWMap = dirWMap;
+    this.valid = dirWMap.getValid();
     this.typeId = (byte) (id | (typeId & 0x7));
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid)
-        : new MapNonNativeWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid);
+        ? new LeafMapWritableBuffer(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap)
+        : new LeafMapNonNativeWritableBuffer(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid)
-        : new MapNonNativeWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid);
+        ? new LeafMapWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap)
+        : new LeafMapNonNativeWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid)
-        : new MapNonNativeWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid);
+        ? new LeafMapWritableMemory(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap)
+        : new LeafMapNonNativeWritableMemory(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap);
   }
 
   @Override
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapNonNativeWritableMemory.java
similarity index 77%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapNonNativeWritableMemory.java
index 6a6faaf..66c5706 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapNonNativeWritableMemory.java
@@ -30,43 +30,45 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
+final class LeafMapNonNativeWritableMemory extends NonNativeWritableMemory {
   private static final int id = MEMORY | NONNATIVE | MAP;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
+  private final AllocateDirectWritableMap dirWMap;
   private final byte typeId;
 
-  MapNonNativeWritableMemoryImpl(
+  LeafMapNonNativeWritableMemory(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
       final int typeId,
-      final StepBoolean valid) {
+      final AllocateDirectWritableMap dirWMap) {
     super(null, nativeBaseOffset, regionOffset, capacityBytes);
     this.nativeBaseOffset = nativeBaseOffset;
-    this.valid = valid;
+    this.dirWMap = dirWMap;
+    this.valid = dirWMap.getValid();
     this.typeId = (byte) (id | (typeId & 0x7));
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid)
-        : new MapNonNativeWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid);
+        ? new LeafMapWritableMemory(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap)
+        : new LeafMapNonNativeWritableMemory(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid)
-        : new MapNonNativeWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid);
+        ? new LeafMapWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap)
+        : new LeafMapNonNativeWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap);
   }
 
   @Override
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapWritableBuffer.java
similarity index 75%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapWritableBuffer.java
index f87ab5c..8dd7935 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapWritableBuffer.java
@@ -30,53 +30,55 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class MapWritableBufferImpl extends NativeWritableBufferImpl {
+final class LeafMapWritableBuffer extends NativeWritableBuffer {
   private static final int id = BUFFER | NATIVE | MAP;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
+  private final AllocateDirectWritableMap dirWMap;
   private final byte typeId;
 
-  MapWritableBufferImpl(
+  LeafMapWritableBuffer(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
       final int typeId,
-      final StepBoolean valid) {
+      final AllocateDirectWritableMap dirWMap) {
     super(null, nativeBaseOffset, regionOffset, capacityBytes);
     this.nativeBaseOffset = nativeBaseOffset;
-    this.valid = valid;
+    this.dirWMap = dirWMap;
+    this.valid = dirWMap.getValid();
     this.typeId = (byte) (id | (typeId & 0x7));
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid)
-        : new MapNonNativeWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid);
+        ? new LeafMapWritableBuffer(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap)
+        : new LeafMapNonNativeWritableBuffer(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid)
-        : new MapNonNativeWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid);
+        ? new LeafMapWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap)
+        : new LeafMapNonNativeWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid)
-        : new MapNonNativeWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid);
+        ? new LeafMapWritableMemory(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap)
+        : new LeafMapNonNativeWritableMemory(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap);
   }
 
   @Override
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapWritableMemory.java
similarity index 78%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapWritableMemory.java
index 2b8501d..6eee13c 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafMapWritableMemory.java
@@ -30,43 +30,45 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
+final class LeafMapWritableMemory extends NativeWritableMemory {
   private static final int id = MEMORY | NATIVE | MAP;
   private final long nativeBaseOffset; //used to compute cumBaseOffset
   private final StepBoolean valid; //a reference only
+  private final AllocateDirectWritableMap dirWMap;
   private final byte typeId;
 
-  MapWritableMemoryImpl(
+  LeafMapWritableMemory(
       final long nativeBaseOffset,
       final long regionOffset,
       final long capacityBytes,
       final int typeId,
-      final StepBoolean valid) {
+      final AllocateDirectWritableMap dirWMap) {
     super(null, nativeBaseOffset, regionOffset, capacityBytes);
     this.nativeBaseOffset = nativeBaseOffset;
-    this.valid = valid;
+    this.dirWMap = dirWMap;
+    this.valid = dirWMap.getValid();
     this.typeId = (byte) (id | (typeId & 0x7));
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid)
-        : new MapNonNativeWritableMemoryImpl(
-            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, valid);
+        ? new LeafMapWritableMemory(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap)
+        : new LeafMapNonNativeWritableMemory(
+            nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes, type, dirWMap);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new MapWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid)
-        : new MapNonNativeWritableBufferImpl(
-            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, valid);
+        ? new LeafMapWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap)
+        : new LeafMapNonNativeWritableBuffer(
+            nativeBaseOffset, getRegionOffset(0), getCapacity(), type, dirWMap);
   }
 
   @Override
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafWritableBuffer.java
similarity index 81%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafWritableBuffer.java
index 439d0e4..d4cfea4 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafWritableBuffer.java
@@ -30,13 +30,13 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
+final class LeafWritableBuffer extends NativeWritableBuffer {
   private static final int id = BUFFER | NATIVE | HEAP;
   private final Object unsafeObj;
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  HeapWritableBufferImpl(
+  LeafWritableBuffer(
       final Object unsafeObj,
       final long regionOffset,
       final long capacityBytes,
@@ -49,33 +49,33 @@ final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
   }
 
   @Override
-  BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableBuffer toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableBufferImpl(
+        ? new LeafWritableBuffer(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr)
-        : new HeapNonNativeWritableBufferImpl(
+        : new LeafHeapNonNativeWritableBuffer(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | DUPLICATE;
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableBufferImpl(
+        ? new LeafWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr)
-        : new HeapNonNativeWritableBufferImpl(
+        : new LeafHeapNonNativeWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr);
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableMemory toWritableMemory(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableMemoryImpl(
+        ? new LeafWritableMemory(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr)
-        : new HeapNonNativeWritableMemoryImpl(
+        : new LeafHeapNonNativeWritableMemory(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafWritableMemory.java
similarity index 84%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafWritableMemory.java
index ce56fde..0899ba4 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/LeafWritableMemory.java
@@ -30,13 +30,13 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Roman Leventov
  * @author Lee Rhodes
  */
-final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
+final class LeafWritableMemory extends NativeWritableMemory {
   private static final int id = MEMORY | NATIVE | HEAP;
   private final Object unsafeObj;
   private final MemoryRequestServer memReqSvr;
   private final byte typeId;
 
-  HeapWritableMemoryImpl(
+  LeafWritableMemory(
       final Object unsafeObj,
       final long regionOffset,
       final long capacityBytes,
@@ -49,23 +49,23 @@ final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
   }
 
   @Override
-  BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
+  BaseWritableMemory toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly) | REGION;
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableMemoryImpl(
+        ? new LeafWritableMemory(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr)
-        : new HeapNonNativeWritableMemoryImpl(
+        : new LeafHeapNonNativeWritableMemory(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes, type, memReqSvr);
   }
 
   @Override
-  BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
+  BaseWritableBuffer toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = setReadOnlyType(typeId, readOnly);
     return Util.isNativeByteOrder(byteOrder)
-        ? new HeapWritableBufferImpl(
+        ? new LeafWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr)
-        : new HeapNonNativeWritableBufferImpl(
+        : new LeafHeapNonNativeWritableBuffer(
             unsafeObj, getRegionOffset(0), getCapacity(), type, memReqSvr);
   }
 
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapHandleImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapHandleImpl.java
index 6351478..9752d56 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapHandleImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapHandleImpl.java
@@ -25,9 +25,9 @@ import org.apache.datasketches.memory.Memory;
 class MapHandleImpl implements MapHandle {
 
   final AllocateDirectMap dirMap;
-  BaseWritableMemoryImpl wMem;
+  BaseWritableMemory wMem;
 
-  MapHandleImpl(final AllocateDirectMap dirMap, final BaseWritableMemoryImpl wMem) {
+  MapHandleImpl(final AllocateDirectMap dirMap, final BaseWritableMemory wMem) {
     this.dirMap = dirMap;
     this.wMem = wMem;
   }
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBuffer.java
similarity index 98%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBuffer.java
index 8b83e51..38a984e 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBuffer.java
@@ -37,10 +37,10 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Lee Rhodes
  */
 @SuppressWarnings("restriction")
-abstract class NativeWritableBufferImpl extends BaseWritableBufferImpl {
+abstract class NativeWritableBuffer extends BaseWritableBuffer {
 
   //Pass-through constructor
-  NativeWritableBufferImpl(final Object unsafeObj, final long nativeBaseOffset, final long regionOffset,
+  NativeWritableBuffer(final Object unsafeObj, final long nativeBaseOffset, final long regionOffset,
       final long capacityBytes) {
     super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
   }
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemory.java
similarity index 98%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemory.java
index 44f9113..c7780bb 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemory.java
@@ -38,10 +38,10 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Lee Rhodes
  */
 @SuppressWarnings("restriction")
-abstract class NativeWritableMemoryImpl extends BaseWritableMemoryImpl {
+abstract class NativeWritableMemory extends BaseWritableMemory {
 
   //Pass-through constructor
-  NativeWritableMemoryImpl(final Object unsafeObj, final long nativeBaseOffset,
+  NativeWritableMemory(final Object unsafeObj, final long nativeBaseOffset,
       final long regionOffset, final long capacityBytes) {
     super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
   }
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBuffer.java
similarity index 98%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBuffer.java
index fd5b1c1..e52e951 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBuffer.java
@@ -31,10 +31,10 @@ import org.apache.datasketches.memory.WritableBuffer;
  * @author Lee Rhodes
  */
 @SuppressWarnings("restriction")
-abstract class NonNativeWritableBufferImpl extends BaseWritableBufferImpl {
+abstract class NonNativeWritableBuffer extends BaseWritableBuffer {
 
   //Pass-through ctor
-  NonNativeWritableBufferImpl(final Object unsafeObj, final long nativeBaseOffset, final long regionOffset,
+  NonNativeWritableBuffer(final Object unsafeObj, final long nativeBaseOffset, final long regionOffset,
       final long capacityBytes) {
     super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
   }
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemory.java
similarity index 98%
rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
rename to datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemory.java
index 7e15cbb..4897398 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemory.java
@@ -32,10 +32,10 @@ import org.apache.datasketches.memory.WritableMemory;
  * @author Lee Rhodes
  */
 @SuppressWarnings("restriction")
-abstract class NonNativeWritableMemoryImpl extends BaseWritableMemoryImpl {
+abstract class NonNativeWritableMemory extends BaseWritableMemory {
 
   //Pass-through constructor
-  NonNativeWritableMemoryImpl(final Object unsafeObj, final long nativeBaseOffset,
+  NonNativeWritableMemory(final Object unsafeObj, final long nativeBaseOffset,
       final long regionOffset, final long capacityBytes) {
     super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
   }
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableDirectHandleImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableDirectHandleImpl.java
index 76882ca..693ff16 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableDirectHandleImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableDirectHandleImpl.java
@@ -38,9 +38,9 @@ public final class WritableDirectHandleImpl implements WritableHandle {
    * Having at least one final field makes this class safe for concurrent publication.
    */
   final AllocateDirect direct;
-  private BaseWritableMemoryImpl wMem;
+  private BaseWritableMemory wMem;
 
-  WritableDirectHandleImpl(final AllocateDirect allocatedDirect, final BaseWritableMemoryImpl wMem) {
+  WritableDirectHandleImpl(final AllocateDirect allocatedDirect, final BaseWritableMemory wMem) {
     direct = allocatedDirect;
     this.wMem = wMem;
   }
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMapHandleImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMapHandleImpl.java
index 7683bf7..2d50c38 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMapHandleImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMapHandleImpl.java
@@ -36,7 +36,7 @@ public final class WritableMapHandleImpl extends MapHandleImpl
 
   WritableMapHandleImpl(
       final AllocateDirectWritableMap dirWmap,
-      final BaseWritableMemoryImpl wMem) {
+      final BaseWritableMemory wMem) {
     super(dirWmap, wMem);
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org