diff --git a/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkBase.java b/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkBase.java
index b53ad87..31199dc 100644
--- a/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkBase.java
+++ b/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkBase.java
@@ -45,9 +45,7 @@
 import static org.apache.flink.state.benchmark.StateBenchmarkConstants.setupKeyCount;
 import static org.apache.flink.state.benchmark.StateBenchmarkConstants.setupKeys;
 
-/**
- * Base implementation of the state benchmarks.
- */
+/** Base implementation of the state benchmarks. */
 public class StateBenchmarkBase extends BenchmarkBase {
     KeyedStateBackend<Long> keyedStateBackend;
 
@@ -61,6 +59,7 @@
         cleanUp(keyedStateBackend);
     }
 
+    // TODO: why AtomicInteger?
     static AtomicInteger keyIndex;
 
     private static int getCurrentIndex() {
@@ -81,7 +80,11 @@
             mapKey = mapKeys.get(currentIndex % mapKeyCount);
             mapValue = mapValues.get(currentIndex % mapKeyCount);
             value = randomValues.get(currentIndex % randomValueCount);
-            listValue = Collections.singletonList(randomValues.get(currentIndex % randomValueCount));
+            // TODO: singletonList is taking 25% of time in mapAdd benchmark... This shouldn't be
+            // initiated if benchmark is not using it and for the benchmarks that are using it,
+            // this should also be probably somehow avoided.
+            listValue =
+                    Collections.singletonList(randomValues.get(currentIndex % randomValueCount));
         }
 
         @TearDown(Level.Invocation)
diff --git a/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkConstants.java b/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkConstants.java
index 6068e01..890ec7d 100644
--- a/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkConstants.java
+++ b/src/main/java/org/apache/flink/state/benchmark/StateBenchmarkConstants.java
@@ -27,6 +27,7 @@
  * possible affect of using {@link Random#nextLong()}
  */
 class StateBenchmarkConstants {
+    // TODO: why all of those static fields? Those should be inside a context class
     static final int mapKeyCount = 10;
     static final int listValueCount = 100;
     static final int setupKeyCount = 500_000;
