diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java
index e7f8bee..e7a8749 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/dataflow/MapKmerPositionToReadOperator.java
@@ -79,6 +79,7 @@
         private ArrayBackedValueStorage posListEntry;
         private ArrayBackedValueStorage zeroPositionCollection;
         private ArrayBackedValueStorage noneZeroPositionCollection;
+        private PositionListWritable plistEntry;
 
         public MapKmerPositionToReadNodePushable(IHyracksTaskContext ctx, RecordDescriptor inputRecDesc,
                 RecordDescriptor outputRecDesc) {
@@ -89,6 +90,7 @@
             this.posListEntry = new ArrayBackedValueStorage();
             this.zeroPositionCollection = new ArrayBackedValueStorage();
             this.noneZeroPositionCollection = new ArrayBackedValueStorage();
+            this.plistEntry = new PositionListWritable();
         }
 
         @Override
@@ -189,9 +191,10 @@
         private void writePosToFieldAndSkipSameReadID(PositionReference pos, DataOutput ds,
                 ArrayBackedValueStorage posList2) throws HyracksDataException {
 
-            PositionListWritable plist = new PositionListWritable(PositionListWritable.getCountByDataLength(posList2
+            plistEntry.setNewReference(PositionListWritable.getCountByDataLength(posList2
                     .getLength()), posList2.getByteArray(), posList2.getStartOffset());
-            for (PositionWritable p : plist) {
+            for (int i = 0;i < plistEntry.getCountOfPosition(); i++) {
+                PositionWritable p = plistEntry.getPosition(i);
                 if (!pos.isSameReadID(p)) {
                     try {
                         ds.write(p.getByteArray(), p.getStartOffset(), p.getLength());
