diff --git a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index 3245422..c073503 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -124,19 +124,19 @@
     @Override public RemoteData.Builder serialize() {
         RemoteData.Builder remoteBuilder = RemoteData.newBuilder();
 <#list serializeFields.stringFields as field>
-        remoteBuilder.setDataStrings(${field?index}, ${field.getter}());
+        remoteBuilder.addDataStrings(${field.getter}());
 </#list>
 
 <#list serializeFields.longFields as field>
-        remoteBuilder.setDataLongs(${field?index}, ${field.getter}());
+        remoteBuilder.addDataLongs(${field.getter}());
 </#list>
 
 <#list serializeFields.doubleFields as field>
-        remoteBuilder.setDataDoubles(${field?index}, ${field.getter}());
+        remoteBuilder.addDataDoubles(${field.getter}());
 </#list>
 
 <#list serializeFields.intFields as field>
-        remoteBuilder.setDataIntegers(${field?index}, ${field.getter}());
+        remoteBuilder.addDataIntegers(${field.getter}());
 </#list>
 <#list serializeFields.intLongValuePairListFields as field>
         ${field.getter}().forEach(element -> remoteBuilder.addDataIntLongPairList(element.serialize()));
diff --git a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
index b4554c4..febba5a 100644
--- a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
+++ b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
@@ -82,15 +82,15 @@
 
     @Override public RemoteData.Builder serialize() {
         RemoteData.Builder remoteBuilder = RemoteData.newBuilder();
-        remoteBuilder.setDataStrings(0, getEntityId());
-        remoteBuilder.setDataStrings(1, getStringField());
+        remoteBuilder.addDataStrings(getEntityId());
+        remoteBuilder.addDataStrings(getStringField());
 
-        remoteBuilder.setDataLongs(0, getSummation());
-        remoteBuilder.setDataLongs(1, getValue());
-        remoteBuilder.setDataLongs(2, getTimeBucket());
+        remoteBuilder.addDataLongs(getSummation());
+        remoteBuilder.addDataLongs(getValue());
+        remoteBuilder.addDataLongs(getTimeBucket());
 
 
-        remoteBuilder.setDataIntegers(0, getCount());
+        remoteBuilder.addDataIntegers(getCount());
 
         return remoteBuilder;
     }
