Fixed the PLC4C build after the latest changes
diff --git a/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java b/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
index 02453f2..aca13e4 100644
--- a/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
+++ b/build-utils/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
@@ -18,12 +18,10 @@
 */
 package org.apache.plc4x.language.c;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.BaseFreemarkerLanguageTemplateHelper;
 import org.apache.plc4x.plugins.codegenerator.protocol.freemarker.FreemarkerException;
 import org.apache.plc4x.plugins.codegenerator.types.definitions.*;
-import org.apache.plc4x.plugins.codegenerator.types.enums.EnumValue;
 import org.apache.plc4x.plugins.codegenerator.types.fields.*;
 import org.apache.plc4x.plugins.codegenerator.types.references.*;
 import org.apache.plc4x.plugins.codegenerator.types.terms.*;
@@ -184,6 +182,8 @@
             switch (simpleTypeReference.getBaseType()) {
                 case BIT:
                     return "bool";
+                case BYTE:
+                    return "char";
                 case UINT: {
                     IntegerTypeReference integerTypeReference = (IntegerTypeReference) simpleTypeReference;
                     if (integerTypeReference.getSizeInBits() <= 8) {
@@ -271,6 +271,8 @@
             switch (simpleTypeReference.getBaseType()) {
                 case BIT:
                     return " : 1";
+                case BYTE:
+                    return " : 8";
                 case UINT:
                 case INT:
                     // If the bit-size is exactly one of the built-in tpye-sizes, omit the suffix.
@@ -348,48 +350,50 @@
     public String getReadBufferReadMethodCall(SimpleTypeReference simpleTypeReference, String valueString, TypedField field) {
         switch (simpleTypeReference.getBaseType()) {
             case BIT:
-                return "plc4c_spi_read_bit(io, (bool*) " + valueString + ")";
+                return "plc4c_spi_read_bit(readBuffer, (bool*) " + valueString + ")";
+            case BYTE:
+                return "plc4c_spi_read_char(readBuffer, (char*) " + valueString + ")";
             case UINT:
                 IntegerTypeReference unsignedIntegerTypeReference = (IntegerTypeReference) simpleTypeReference;
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 8) {
-                    return "plc4c_spi_read_unsigned_byte(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint8_t*) " + valueString + ")";
+                    return "plc4c_spi_read_unsigned_byte(readBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint8_t*) " + valueString + ")";
                 }
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 16) {
-                    return "plc4c_spi_read_unsigned_short(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint16_t*) " + valueString + ")";
+                    return "plc4c_spi_read_unsigned_short(readBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint16_t*) " + valueString + ")";
                 }
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 32) {
-                    return "plc4c_spi_read_unsigned_int(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint32_t*) " + valueString + ")";
+                    return "plc4c_spi_read_unsigned_int(readBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint32_t*) " + valueString + ")";
                 }
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 64) {
-                    return "plc4c_spi_read_unsigned_long(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint64_t*) " + valueString + ")";
+                    return "plc4c_spi_read_unsigned_long(readBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", (uint64_t*) " + valueString + ")";
                 }
                 throw new FreemarkerException("Unsupported unsigned integer type with " + unsignedIntegerTypeReference.getSizeInBits() + " bits");
             case INT:
                 IntegerTypeReference integerTypeReference = (IntegerTypeReference) simpleTypeReference;
                 if (integerTypeReference.getSizeInBits() <= 8) {
-                    return "plc4c_spi_read_signed_byte(io, " + integerTypeReference.getSizeInBits() + ", (int8_t*) " + valueString + ")";
+                    return "plc4c_spi_read_signed_byte(readBuffer, " + integerTypeReference.getSizeInBits() + ", (int8_t*) " + valueString + ")";
                 }
                 if (integerTypeReference.getSizeInBits() <= 16) {
-                    return "plc4c_spi_read_signed_short(io, " + integerTypeReference.getSizeInBits() + ", (int16_t*) " + valueString + ")";
+                    return "plc4c_spi_read_signed_short(readBuffer, " + integerTypeReference.getSizeInBits() + ", (int16_t*) " + valueString + ")";
                 }
                 if (integerTypeReference.getSizeInBits() <= 32) {
-                    return "plc4c_spi_read_signed_int(io, " + integerTypeReference.getSizeInBits() + ", (int32_t*) " + valueString + ")";
+                    return "plc4c_spi_read_signed_int(readBuffer, " + integerTypeReference.getSizeInBits() + ", (int32_t*) " + valueString + ")";
                 }
                 if (integerTypeReference.getSizeInBits() <= 64) {
-                    return "plc4c_spi_read_signed_long(io, " + integerTypeReference.getSizeInBits() + ", (int64_t*) " + valueString + ")";
+                    return "plc4c_spi_read_signed_long(readBuffer, " + integerTypeReference.getSizeInBits() + ", (int64_t*) " + valueString + ")";
                 }
                 throw new FreemarkerException("Unsupported signed integer type with " + integerTypeReference.getSizeInBits() + " bits");
             case FLOAT:
                 FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
                 if (floatTypeReference.getSizeInBits() <= 32) {
-                    return "plc4c_spi_read_float(io, " + floatTypeReference.getSizeInBits() + ", (float*) " + valueString + ")";
+                    return "plc4c_spi_read_float(readBuffer, " + floatTypeReference.getSizeInBits() + ", (float*) " + valueString + ")";
                 } else if(floatTypeReference.getSizeInBits() <= 64) {
-                    return "plc4c_spi_read_double(io, " + floatTypeReference.getSizeInBits() + ", (double*) " + valueString + ")";
+                    return "plc4c_spi_read_double(readBuffer, " + floatTypeReference.getSizeInBits() + ", (double*) " + valueString + ")";
                 }
                 throw new FreemarkerException("Unsupported float type with " + floatTypeReference.getSizeInBits() + " bits");
             case STRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
-                return "plc4c_spi_read_string(io, " + toParseExpression(getThisTypeDefinition(), field, stringTypeReference.getLengthExpression(), null) + ", \"" +
+                return "plc4c_spi_read_string(readBuffer, " + toParseExpression(getThisTypeDefinition(), field, stringTypeReference.getLengthExpression(), null) + ", \"" +
                     stringTypeReference.getEncoding() + "\"" + ", (char**) " + valueString + ")";
             default:
                 throw new FreemarkerException("Unsupported type " + simpleTypeReference.getBaseType().name());
@@ -400,48 +404,50 @@
     public String getWriteBufferWriteMethodCall(SimpleTypeReference simpleTypeReference, String fieldName, TypedField field) {
         switch (simpleTypeReference.getBaseType()) {
             case BIT:
-                return "plc4c_spi_write_bit(io, " + fieldName + ")";
+                return "plc4c_spi_write_bit(writeBuffer, " + fieldName + ")";
+            case BYTE:
+                return "plc4c_spi_write_char(writeBuffer, " + fieldName + ")";
             case UINT:
                 IntegerTypeReference unsignedIntegerTypeReference = (IntegerTypeReference) simpleTypeReference;
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 8) {
-                    return "plc4c_spi_write_unsigned_byte(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_unsigned_byte(writeBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 16) {
-                    return "plc4c_spi_write_unsigned_short(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_unsigned_short(writeBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 32) {
-                    return "plc4c_spi_write_unsigned_int(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_unsigned_int(writeBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 if (unsignedIntegerTypeReference.getSizeInBits() <= 64) {
-                    return "plc4c_spi_write_unsigned_long(io, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_unsigned_long(writeBuffer, " + unsignedIntegerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 throw new FreemarkerException("Unsupported unsigned integer type with " + unsignedIntegerTypeReference.getSizeInBits() + " bits");
             case INT:
                 IntegerTypeReference integerTypeReference = (IntegerTypeReference) simpleTypeReference;
                 if (integerTypeReference.getSizeInBits() <= 8) {
-                    return "plc4c_spi_write_signed_byte(io, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_signed_byte(writeBuffer, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 if (integerTypeReference.getSizeInBits() <= 16) {
-                    return "plc4c_spi_write_signed_short(io, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_signed_short(writeBuffer, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 if (integerTypeReference.getSizeInBits() <= 32) {
-                    return "plc4c_spi_write_signed_int(io, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_signed_int(writeBuffer, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 if (integerTypeReference.getSizeInBits() <= 64) {
-                    return "plc4c_spi_write_signed_long(io, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_signed_long(writeBuffer, " + integerTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 throw new FreemarkerException("Unsupported signed integer type with " + integerTypeReference.getSizeInBits() + " bits");
             case FLOAT:
                 FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
                 if (floatTypeReference.getSizeInBits() <= 32) {
-                    return "plc4c_spi_write_float(io, " + floatTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_float(writeBuffer, " + floatTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 } else if(floatTypeReference.getSizeInBits() <= 64) {
-                    return "plc4c_spi_write_double(io, " + floatTypeReference.getSizeInBits() + ", " + fieldName + ")";
+                    return "plc4c_spi_write_double(writeBuffer, " + floatTypeReference.getSizeInBits() + ", " + fieldName + ")";
                 }
                 throw new FreemarkerException("Unsupported float type with " + floatTypeReference.getSizeInBits() + " bits");
             case STRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
-                return "plc4c_spi_write_string(io, " + toSerializationExpression(getThisTypeDefinition(), field, stringTypeReference.getLengthExpression(), null) + ", \"" +
+                return "plc4c_spi_write_string(writeBuffer, " + toSerializationExpression(getThisTypeDefinition(), field, stringTypeReference.getLengthExpression(), null) + ", \"" +
                     stringTypeReference.getEncoding() + "\", " + fieldName + ")";
             default:
                 throw new FreemarkerException("Unsupported type " + simpleTypeReference.getBaseType().name());
@@ -455,6 +461,8 @@
             switch (simpleTypeReference.getBaseType()) {
                 case BIT:
                     return "false";
+                case BYTE:
+                    return "0";
                 case UINT:
                 case INT:
                     return "0";
@@ -655,8 +663,15 @@
                 appendVariableExpressionRest(sb, baseType, vl.getChild());
             }
             return sb.toString();
-        } else if("io".equals(vl.getName())) {
-            StringBuilder sb = new StringBuilder("io");
+        } else if("readBuffer".equals(vl.getName())) {
+            StringBuilder sb = new StringBuilder("readBuffer");
+            if(vl.getChild() != null) {
+                sb.append(".");
+                appendVariableExpressionRest(sb, baseType, vl.getChild());
+            }
+            return sb.toString();
+        } else if("writeBuffer".equals(vl.getName())) {
+            StringBuilder sb = new StringBuilder("writeBuffer");
             if(vl.getChild() != null) {
                 sb.append(".");
                 appendVariableExpressionRest(sb, baseType, vl.getChild());
diff --git a/build-utils/language-c/src/main/resources/templates/c/data-io-template.c.ftlh b/build-utils/language-c/src/main/resources/templates/c/data-io-template.c.ftlh
index f6ee3e4..6a68705 100644
--- a/build-utils/language-c/src/main/resources/templates/c/data-io-template.c.ftlh
+++ b/build-utils/language-c/src/main/resources/templates/c/data-io-template.c.ftlh
@@ -73,8 +73,8 @@
 // Code generated by build-utils. DO NOT EDIT.
 
 // Parse function.
-plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* io, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type) && !helper.isEnumTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>plc4c_data** data_item) {
-    uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* readBuffer, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type) && !helper.isEnumTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>plc4c_data** data_item) {
+    uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
     uint16_t curPos;
     plc4c_return_code _res = OK;
 
@@ -89,7 +89,7 @@
         // Array field (${field.name})
                 <#-- Only update curPos if the length expression uses it -->
                     <#if field.loopExpression.contains("curPos")>
-        curPos = io.getPos() - startPos;
+        curPos = readBuffer.getPos() - startPos;
                     </#if>
                 <#-- If this is a count array, we can directly initialize an array with the given size -->
                     <#if helper.isCountArrayField(field)>
@@ -99,7 +99,7 @@
         int itemCount = (int) ${helper.toParseExpression(type, field, field.loopExpression, type.parserArguments)};
         for(int curItem = 0; curItem < itemCount; curItem++) {
             ${helper.getLanguageTypeNameForTypeReference(field.type)}* _val = malloc(sizeof(${helper.getLanguageTypeNameForTypeReference(field.type)}) * 1);
-            _res = <#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type, "_val", field)}<#else>${field.type.name}IO.staticParse(io<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(type, field, parserArgument, type.parserArguments)})<#sep>, </#sep></#list></#if>)</#if>;
+            _res = <#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type, "_val", field)}<#else>${field.type.name}IO.staticParse(readBuffer<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(type, field, parserArgument, type.parserArguments)})<#sep>, </#sep></#list></#if>)</#if>;
             if(_res != OK) {
                 return _res;
             }
@@ -113,12 +113,12 @@
         // Length array
         int _${field.name}Length = ${helper.toParseExpression(type, field, field.loopExpression, type.parserArguments)};
         List<${helper.getLanguageTypeNameForField(field)}> _${field.name}List = new LinkedList<>();
-        int ${field.name}EndPos = io.getPos() + _${field.name}Length;
-        while(io.getPos() < ${field.name}EndPos) {
-            _${field.name}List.add(<#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type, null, field)}<#else>${field.type.name}IO.staticParse(io<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(type, field, parserArgument, type.parserArguments)})<#sep>, </#sep></#list></#if>)</#if>);
+        int ${field.name}EndPos = readBuffer.getPos() + _${field.name}Length;
+        while(readBuffer.getPos() < ${field.name}EndPos) {
+            _${field.name}List.add(<#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type, null, field)}<#else>${field.type.name}IO.staticParse(readBuffer<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(type, field, parserArgument, type.parserArguments)})<#sep>, </#sep></#list></#if>)</#if>);
                         <#-- After parsing, update the current position, but only if it's needed -->
                             <#if field.loopExpression.contains("curPos")>
-            curPos = io.getPos() - startPos;
+            curPos = readBuffer.getPos() - startPos;
                             </#if>
         }
                         <#-- A terminated array keeps on reading data as long as the termination expression evaluates to false -->
@@ -126,11 +126,11 @@
         // Terminated array
         List<${helper.getLanguageTypeNameForField(field)}> _${field.name}List = new LinkedList<>();
         while(!((boolean) (${helper.toParseExpression(type, field, field.loopExpression, type.parserArguments)}))) {
-            _${field.name}List.add(<#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type)}<#else>${field.type.name}IO.staticParse(io<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(type, field, parserArgument, type.parserArguments)})<#sep>, </#sep></#list></#if>)</#if>);
+            _${field.name}List.add(<#if helper.isSimpleTypeReference(field.type)>${helper.getReadBufferReadMethodCall(field.type)}<#else>${field.type.name}IO.staticParse(readBuffer<#if field.params?has_content>, <#list field.params as parserArgument>(${helper.getLanguageTypeNameForTypeReference(helper.getArgumentType(field.type, parserArgument?index), true)}) (${helper.toParseExpression(type, field, parserArgument, type.parserArguments)})<#sep>, </#sep></#list></#if>)</#if>);
 
                         <#-- After parsing, update the current position, but only if it's needed -->
                             <#if field.loopExpression.contains("curPos")>
-            curPos = io.getPos() - startPos;
+            curPos = readBuffer.getPos() - startPos;
                             </#if>
         }
                         </#if>
@@ -215,7 +215,7 @@
                 <#else>
                 <#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
                 ${helper.getLanguageTypeNameForField(field)}* ${field.name};
-                _res = ${helper.getCTypeName(field.type.name)}_parse(io<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &${field.name});
+                _res = ${helper.getCTypeName(field.type.name)}_parse(readBuffer<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &${field.name});
                 </#if>
                 if(_res != OK) {
                     return _res;
@@ -236,7 +236,7 @@
   return OK;
 }
 
-plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* io, plc4c_data** data_item<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>) {
+plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_data** data_item<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>) {
   plc4c_return_code _res = OK;
 
   return OK;
diff --git a/build-utils/language-c/src/main/resources/templates/c/data-io-template.h.ftlh b/build-utils/language-c/src/main/resources/templates/c/data-io-template.h.ftlh
index 3c78645..6e7f8dc 100644
--- a/build-utils/language-c/src/main/resources/templates/c/data-io-template.h.ftlh
+++ b/build-utils/language-c/src/main/resources/templates/c/data-io-template.h.ftlh
@@ -71,12 +71,12 @@
 <#--
     Define the parse-method for elements of this tpye
 -->
-plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* buf, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type) && !helper.isEnumTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>plc4c_data** data_item);
+plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* readBuffer, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type) && !helper.isEnumTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>plc4c_data** data_item);
 
 <#--
     Define the serialize-method for elements of this tpye
 -->
-plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* buf, plc4c_data** data_item<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>);
+plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_data** data_item<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>);
 
 uint16_t ${helper.getCTypeName(type.name)}_length_in_bytes(plc4c_data* data_item);
 
diff --git a/build-utils/language-c/src/main/resources/templates/c/pojo-template.c.ftlh b/build-utils/language-c/src/main/resources/templates/c/pojo-template.c.ftlh
index 99c0acc..c63878b 100644
--- a/build-utils/language-c/src/main/resources/templates/c/pojo-template.c.ftlh
+++ b/build-utils/language-c/src/main/resources/templates/c/pojo-template.c.ftlh
@@ -115,8 +115,8 @@
 </#if>
 
 // Parse function.
-plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* io, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>${helper.getCTypeName(type.name)}** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* readBuffer, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>${helper.getCTypeName(type.name)}** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -134,7 +134,7 @@
 <#if indentContent>  </#if>  // Array field (${arrayField.name})
             <#-- Only update curPos if the length expression uses it -->
             <#if arrayField.loopExpression.contains("curPos")>
-<#if indentContent>  </#if>  curPos = plc4c_spi_read_get_pos(io) - startPos;
+<#if indentContent>  </#if>  curPos = plc4c_spi_read_get_pos(readBuffer) - startPos;
             </#if>
             <#-- In all other cases do we have to work with a list, that is later converted to an array -->
 <#if indentContent>  </#if>  plc4c_list* ${arrayField.name} = NULL;
@@ -159,7 +159,7 @@
 <#else>
       <#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
 <#if indentContent>  </#if>      ${helper.getCTypeName(arrayField.type.name)}* _value = NULL;
-<#if indentContent>  </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_parse(io<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
+<#if indentContent>  </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_parse(readBuffer<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
 <#if indentContent>  </#if>      if(_res != OK) {
 <#if indentContent>  </#if>        return _res;
 <#if indentContent>  </#if>      }
@@ -170,8 +170,8 @@
             <#elseif helper.isLengthArrayField(field)>
 <#if indentContent>  </#if>    // Length array
 <#if indentContent>  </#if>    uint8_t _${arrayField.name}Length = ${helper.toParseExpression(baseType, arrayField, arrayField.loopExpression, baseType.parserArguments)};
-<#if indentContent>  </#if>    uint8_t ${arrayField.name}EndPos = plc4c_spi_read_get_pos(io) + _${arrayField.name}Length;
-<#if indentContent>  </#if>    while(plc4c_spi_read_get_pos(io) < ${arrayField.name}EndPos) {
+<#if indentContent>  </#if>    uint8_t ${arrayField.name}EndPos = plc4c_spi_read_get_pos(readBuffer) + _${arrayField.name}Length;
+<#if indentContent>  </#if>    while(plc4c_spi_read_get_pos(readBuffer) < ${arrayField.name}EndPos) {
                 <#-- Inizialize a local variable with the simple type (Intentionally keeping the java-style names so they can be used in expressions) -->
 <#if helper.isSimpleTypeReference(arrayField.type)>
 <#if indentContent>  </#if>      ${helper.getLanguageTypeNameForTypeReference(arrayField.type)} _value = ${helper.getNullValueForTypeReference(arrayField.type)};
@@ -183,7 +183,7 @@
 <#else>
                 <#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
 <#if indentContent>  </#if>      ${helper.getCTypeName(arrayField.type.name)}* _value = NULL;
-<#if indentContent>  </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_parse(io<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
+<#if indentContent>  </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_parse(readBuffer<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
 <#if indentContent>  </#if>      if(_res != OK) {
 <#if indentContent>  </#if>        return _res;
 <#if indentContent>  </#if>      }
@@ -191,7 +191,7 @@
 </#if>
                 <#-- After parsing, update the current position, but only if it's needed -->
                 <#if arrayField.loopExpression.contains("curPos")>
-<#if indentContent>  </#if>      curPos = plc4c_spi_read_get_pos(io) - startPos;
+<#if indentContent>  </#if>      curPos = plc4c_spi_read_get_pos(readBuffer) - startPos;
                 </#if>
 <#if indentContent>  </#if>    }
             <#-- A terminated array keeps on reading data as long as the termination expression evaluates to false -->
@@ -209,7 +209,7 @@
 <#else>
                 <#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
 <#if indentContent>  </#if>      ${helper.getCTypeName(arrayField.type.name)}* _value = NULL;
-<#if indentContent>  </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_parse(io<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
+<#if indentContent>  </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_parse(readBuffer<#if field.params?has_content>, <#list field.params as parserTerm>${helper.toParseExpression(baseType, field, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &_value);
 <#if indentContent>  </#if>      if(_res != OK) {
 <#if indentContent>  </#if>        return _res;
 <#if indentContent>  </#if>      }
@@ -217,7 +217,7 @@
 </#if>
               <#-- After parsing, update the current position, but only if it's needed -->
               <#if arrayField.loopExpression.contains("curPos")>
-<#if indentContent>  </#if>      curPos = plc4c_spi_read_get_pos(io) - startPos;
+<#if indentContent>  </#if>      curPos = plc4c_spi_read_get_pos(readBuffer) - startPos;
               </#if>
 <#if indentContent>  </#if>    }
             </#if>
@@ -231,7 +231,7 @@
 <#if indentContent>  </#if>  // Checksum Field (${checksumField.name})
 <#if indentContent>  </#if>  {
 <#if indentContent>  </#if>    // Create an array of all the bytes read in this message element so far.
-<#if indentContent>  </#if>    unsigned char checksumRawData[] = plc4c_spi_read_get_bytes(io, startPos, plc4c_spi_read_get_pos(io));
+<#if indentContent>  </#if>    unsigned char checksumRawData[] = plc4c_spi_read_get_bytes(readBuffer, startPos, plc4c_spi_read_get_pos(readBuffer));
 <#if indentContent>  </#if>    ${helper.getLanguageTypeNameForField(field)} _checksumRef = ${helper.getNullValueForTypeReference(checksumField.type)};
 <#if indentContent>  </#if>    _res = ${helper.getReadBufferReadMethodCall(checksumField.type, "&_checksumRef", field)};
 <#if indentContent>  </#if>    if(_res != OK) {
@@ -327,7 +327,7 @@
 
 <#if indentContent>  </#if>  // Optional Field (${optionalField.name}) (Can be skipped, if a given expression evaluates to false)
             <#if optionalField.conditionExpression.contains("curPos")>
-<#if indentContent>  </#if>  curPos = plc4c_spi_read_get_pos(io) - startPos;
+<#if indentContent>  </#if>  curPos = plc4c_spi_read_get_pos(readBuffer) - startPos;
             </#if>
 <#if indentContent>  </#if>  ${helper.getLanguageTypeNameForField(field)}* ${optionalField.name} = NULL;
 <#if indentContent>  </#if>  if(${helper.toParseExpression(baseType, field, optionalField.conditionExpression, baseType.parserArguments)}) {
@@ -339,7 +339,7 @@
 <#if indentContent>  </#if>    *${optionalField.name} = ${helper.getNullValueForTypeReference(optionalField.type)};
 <#if indentContent>  </#if>    _res = ${helper.getReadBufferReadMethodCall(optionalField.type, optionalField.name, field)};
         <#else>
-<#if indentContent>  </#if>    _res = ${helper.getCTypeName(optionalField.type.name)}_parse(io<#if optionalField.params?has_content>, <#list optionalField.params as parserTerm>${helper.toParseExpression(baseType, optionalField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, &${optionalField.name});
+<#if indentContent>  </#if>    _res = ${helper.getCTypeName(optionalField.type.name)}_parse(readBuffer<#if optionalField.params?has_content>, <#list optionalField.params as parserTerm>${helper.toParseExpression(baseType, optionalField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, &${optionalField.name});
         </#if>
 <#if indentContent>  </#if>    if(_res != OK) {
 <#if indentContent>  </#if>      return _res;
@@ -355,7 +355,7 @@
 
 <#if indentContent>  </#if>  // Padding Field (padding)
 <#if indentContent>  </#if>  {
-<#if indentContent>  </#if>    int _timesPadding = (int) ((plc4c_spi_read_has_more(io, ${helper.getNumBits(paddingField.type)})) && (${helper.toParseExpression(baseType, paddingField, paddingField.paddingCondition, baseType.parserArguments)}));
+<#if indentContent>  </#if>    int _timesPadding = (int) ((plc4c_spi_read_has_more(readBuffer, ${helper.getNumBits(paddingField.type)})) && (${helper.toParseExpression(baseType, paddingField, paddingField.paddingCondition, baseType.parserArguments)}));
 <#if indentContent>  </#if>    while (_timesPadding-- > 0) {
 <#if indentContent>  </#if>      // Just read the padding data and ignore it
 <#if indentContent>  </#if>      ${helper.getLanguageTypeNameForField(field)} _paddingValue = ${helper.getNullValueForTypeReference(paddingField.type)};
@@ -393,7 +393,7 @@
             <#else>
             <#-- Inizialize a local variable with the complex type (Intentionally keeping the java-style names so they can be used in expressions) -->
 <#if indentContent>  </#if>  ${helper.getLanguageTypeNameForField(field)}* ${simpleField.name};
-<#if indentContent>  </#if>  _res = ${helper.getCTypeName(simpleField.type.name)}_parse(io<#if simpleField.params?has_content>, <#list simpleField.params as parserTerm>${helper.toParseExpression(baseType, simpleField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &${simpleField.name});
+<#if indentContent>  </#if>  _res = ${helper.getCTypeName(simpleField.type.name)}_parse(readBuffer<#if simpleField.params?has_content>, <#list simpleField.params as parserTerm>${helper.toParseExpression(baseType, simpleField, parserTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>, (void*) &${simpleField.name});
             </#if>
 <#if indentContent>  </#if>  if(_res != OK) {
 <#if indentContent>  </#if>    return _res;
@@ -441,7 +441,7 @@
   return OK;
 }
 
-plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* io, ${helper.getCTypeName(type.name)}* _message<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>) {
+plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* writeBuffer, ${helper.getCTypeName(type.name)}* _message<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>) {
   plc4c_return_code _res = OK;
 <#macro fieldSerializer baseType field indentContent>
     <#switch field.typeName>
@@ -458,7 +458,7 @@
             <#if helper.isSimpleTypeReference(arrayField.type)>
 <#if indentContent>    </#if>      ${helper.getWriteBufferWriteMethodCall(arrayField.type, "*_value", field)};
             <#else>
-<#if indentContent>    </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_serialize(io, (void*) _value<#if helper.getSerializerTerms(field.params)?has_content>, <#list helper.getSerializerTerms(field.params) as serializerTerm>${helper.toSerializationExpression(baseType, field, serializerTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>);
+<#if indentContent>    </#if>      _res = ${helper.getCTypeName(arrayField.type.name)}_serialize(writeBuffer, (void*) _value<#if helper.getSerializerTerms(field.params)?has_content>, <#list helper.getSerializerTerms(field.params) as serializerTerm>${helper.toSerializationExpression(baseType, field, serializerTerm, baseType.parserArguments)}<#sep>, </#sep></#list></#if>);
 <#if indentContent>    </#if>      if(_res != OK) {
 <#if indentContent>    </#if>        return _res;
 <#if indentContent>    </#if>      }
@@ -473,7 +473,7 @@
 <#if indentContent>    </#if>  // Checksum Field (${checksumField.name})
 <#if indentContent>    </#if>  {
 <#if indentContent>    </#if>    // Create an array of all the bytes read in this message element so far.
-<#if indentContent>    </#if>    unsigned char checksumRawData[] = plc4c_spi_read_get_bytes(io, startPos, plc4c_spi_read_get_pos(io));
+<#if indentContent>    </#if>    unsigned char checksumRawData[] = plc4c_spi_read_get_bytes(writeBuffer, startPos, plc4c_spi_read_get_pos(writeBuffer));
 <#if indentContent>    </#if>    ${helper.getLanguageTypeNameForField(field)} _checksumRef = ${helper.getReadBufferReadMethodCall(checksumField.type, field)};
 <#if indentContent>    </#if>    ${helper.getLanguageTypeNameForField(field)} _checksum = (${helper.getLanguageTypeNameForField(field)}) (${helper.toParseExpression(baseType, checksumField, checksumField.checksumExpression, baseType.parserArguments)});
 <#if indentContent>    </#if>    if(_checksum != _checksumRef) {
@@ -540,7 +540,7 @@
             <#if helper.isSimpleTypeReference(manualField.type)>
 <#if indentContent>    </#if>  _res = ${helper.getWriteBufferWriteMethodCall(manualField.type, "(${helper.getLanguageTypeNameForTypeReference(arrayField.type)}*) plc4c_utils_list_get_value(_message->" + helper.getFieldName(baseType, arrayField), field)};
             <#else>
-<#if indentContent>    </#if>  _res = ${helper.getCTypeName(manualField.type.name)}_serialize(io, (void*) &_value);
+<#if indentContent>    </#if>  _res = ${helper.getCTypeName(manualField.type.name)}_serialize(writeBuffer, (void*) &_value);
             </#if>
 <#if indentContent>    </#if>  if(_res != OK) {
 <#if indentContent>    </#if>    return _res;
@@ -554,7 +554,7 @@
             <#if helper.isSimpleTypeReference(optionalField.type)>
 <#if indentContent>    </#if>    _res = ${helper.getWriteBufferWriteMethodCall(optionalField.type, "*_message->" + helper.getFieldName(baseType, optionalField), field)};
             <#else>
-<#if indentContent>    </#if>    _res = ${helper.getCTypeName(optionalField.type.name)}_serialize(io, _message-><@fieldName baseType=baseType field=optionalField/>);
+<#if indentContent>    </#if>    _res = ${helper.getCTypeName(optionalField.type.name)}_serialize(writeBuffer, _message-><@fieldName baseType=baseType field=optionalField/>);
             </#if>
 <#if indentContent>    </#if>    if(_res != OK) {
 <#if indentContent>    </#if>      return _res;
@@ -595,7 +595,7 @@
             <#if helper.isSimpleTypeReference(simpleField.type)>
 <#if indentContent>    </#if>  _res = ${helper.getWriteBufferWriteMethodCall(simpleField.type, "_message->" + helper.getFieldName(baseType, simpleField), field)};
             <#else>
-<#if indentContent>    </#if>  _res = ${helper.getCTypeName(simpleField.type.name)}_serialize(io, _message-><@fieldName baseType=baseType field=simpleField/>);
+<#if indentContent>    </#if>  _res = ${helper.getCTypeName(simpleField.type.name)}_serialize(writeBuffer, _message-><@fieldName baseType=baseType field=simpleField/>);
             </#if>
 <#if indentContent>    </#if>  if(_res != OK) {
 <#if indentContent>    </#if>    return _res;
diff --git a/build-utils/language-c/src/main/resources/templates/c/pojo-template.h.ftlh b/build-utils/language-c/src/main/resources/templates/c/pojo-template.h.ftlh
index 482fb1d..17abd90 100644
--- a/build-utils/language-c/src/main/resources/templates/c/pojo-template.h.ftlh
+++ b/build-utils/language-c/src/main/resources/templates/c/pojo-template.h.ftlh
@@ -165,12 +165,12 @@
 <#--
     Define the parse-method for elements of this tpye
 -->
-plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* io, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>${helper.getCTypeName(type.name)}** message);
+plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer* readBuffer, <#if type.parserArguments?has_content><#list type.parserArguments as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#if !helper.isSimpleTypeReference(parserArgument.type)>*</#if> ${parserArgument.name}<#sep>, </#list>, </#if>${helper.getCTypeName(type.name)}** message);
 
 <#--
     Define the serialize-method for elements of this tpye
 -->
-plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* io, ${helper.getCTypeName(type.name)}* message<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>);
+plc4c_return_code ${helper.getCTypeName(type.name)}_serialize(plc4c_spi_write_buffer* writeBuffer, ${helper.getCTypeName(type.name)}* message<#if helper.getSerializerArguments(type.parserArguments)?has_content>, <#list helper.getSerializerArguments(type.parserArguments) as parserArgument>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)} ${parserArgument.name}<#sep>, </#sep></#list></#if>);
 
 uint16_t ${helper.getCTypeName(type.name)}_length_in_bytes(${helper.getCTypeName(type.name)}* message);
 
diff --git a/build-utils/protocol-test/src/main/resources/protocols/test/test.mspec b/build-utils/protocol-test/src/main/resources/protocols/test/test.mspec
index d727906..0c4589a 100644
--- a/build-utils/protocol-test/src/main/resources/protocols/test/test.mspec
+++ b/build-utils/protocol-test/src/main/resources/protocols/test/test.mspec
@@ -71,6 +71,7 @@
 
 [type 'SimpleTypeTest'
     [simple bit 'bitField']
+    [simple byte 'byteField']
     [simple int 8 'intField']
     [simple uint 8 'uintField']
     [simple float 8.23 'floatField']
diff --git a/sandbox/plc4c/generated-sources/modbus/include/data_item.h b/sandbox/plc4c/generated-sources/modbus/include/data_item.h
index 7d710a5..a54b3d6 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/data_item.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/data_item.h
@@ -32,9 +32,9 @@
 extern "C" {
 #endif
 
-plc4c_return_code plc4c_modbus_read_write_data_item_parse(plc4c_spi_read_buffer* buf, plc4c_modbus_read_write_modbus_data_type dataType, uint16_t numberOfValues, plc4c_data** data_item);
+plc4c_return_code plc4c_modbus_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_data_type dataType, uint16_t numberOfValues, plc4c_data** data_item);
 
-plc4c_return_code plc4c_modbus_read_write_data_item_serialize(plc4c_spi_write_buffer* buf, plc4c_data** data_item);
+plc4c_return_code plc4c_modbus_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_data** data_item);
 
 uint16_t plc4c_modbus_read_write_data_item_length_in_bytes(plc4c_data* data_item);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_constants.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_constants.h
index 90e60d0..f0c0960 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_constants.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_constants.h
@@ -44,9 +44,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_constants plc4c_modbus_read_write_modbus_constants_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_constants_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_constants** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_constants_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_constants** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_constants_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_constants* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_constants_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_constants* message);
 
 uint16_t plc4c_modbus_read_write_modbus_constants_length_in_bytes(plc4c_modbus_read_write_modbus_constants* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu.h
index d7c7360..da84733 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu.h
@@ -231,9 +231,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_pdu plc4c_modbus_read_write_modbus_pdu_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer* io, bool response, plc4c_modbus_read_write_modbus_pdu** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer* readBuffer, bool response, plc4c_modbus_read_write_modbus_pdu** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu* message);
 
 uint16_t plc4c_modbus_read_write_modbus_pdu_length_in_bytes(plc4c_modbus_read_write_modbus_pdu* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_request_item.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_request_item.h
index 9d4fe02..70931ec 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_request_item.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_request_item.h
@@ -44,9 +44,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* message);
 
 uint16_t plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_length_in_bytes(plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_response_item.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_response_item.h
index 7611915..7daf840 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_response_item.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_read_file_record_response_item.h
@@ -42,9 +42,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* message);
 
 uint16_t plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_length_in_bytes(plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_request_item.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_request_item.h
index f56314c..e99433d 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_request_item.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_request_item.h
@@ -44,9 +44,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* message);
 
 uint16_t plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_length_in_bytes(plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_response_item.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_response_item.h
index 4642dc5..f3513a5 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_response_item.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_pdu_write_file_record_response_item.h
@@ -44,9 +44,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* message);
 
 uint16_t plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_length_in_bytes(plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_serial_adu.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_serial_adu.h
index d71bd35..e021032 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_serial_adu.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_serial_adu.h
@@ -45,9 +45,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_serial_adu plc4c_modbus_read_write_modbus_serial_adu_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_parse(plc4c_spi_read_buffer* io, bool response, plc4c_modbus_read_write_modbus_serial_adu** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_parse(plc4c_spi_read_buffer* readBuffer, bool response, plc4c_modbus_read_write_modbus_serial_adu** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_serial_adu* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_serial_adu* message);
 
 uint16_t plc4c_modbus_read_write_modbus_serial_adu_length_in_bytes(plc4c_modbus_read_write_modbus_serial_adu* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/include/modbus_tcp_adu.h b/sandbox/plc4c/generated-sources/modbus/include/modbus_tcp_adu.h
index 8aa4551..c45c5e5 100644
--- a/sandbox/plc4c/generated-sources/modbus/include/modbus_tcp_adu.h
+++ b/sandbox/plc4c/generated-sources/modbus/include/modbus_tcp_adu.h
@@ -48,9 +48,9 @@
 // Create an empty NULL-struct
 plc4c_modbus_read_write_modbus_tcp_adu plc4c_modbus_read_write_modbus_tcp_adu_null();
 
-plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_parse(plc4c_spi_read_buffer* io, bool response, plc4c_modbus_read_write_modbus_tcp_adu** message);
+plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_parse(plc4c_spi_read_buffer* readBuffer, bool response, plc4c_modbus_read_write_modbus_tcp_adu** message);
 
-plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_tcp_adu* message);
+plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_tcp_adu* message);
 
 uint16_t plc4c_modbus_read_write_modbus_tcp_adu_length_in_bytes(plc4c_modbus_read_write_modbus_tcp_adu* message);
 
diff --git a/sandbox/plc4c/generated-sources/modbus/src/data_item.c b/sandbox/plc4c/generated-sources/modbus/src/data_item.c
index 711a9c6..da208ab 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/data_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/data_item.c
@@ -29,8 +29,8 @@
 // Code generated by build-utils. DO NOT EDIT.
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_data_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_data_type dataType, uint16_t numberOfValues, plc4c_data** data_item) {
-    uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_data_type dataType, uint16_t numberOfValues, plc4c_data** data_item) {
+    uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
     uint16_t curPos;
     plc4c_return_code _res = OK;
 
@@ -39,7 +39,7 @@
                 // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
                 {
                     uint8_t _reserved = 0;
-                    _res = plc4c_spi_read_unsigned_byte(io, 7, (uint8_t*) &_reserved);
+                    _res = plc4c_spi_read_unsigned_byte(readBuffer, 7, (uint8_t*) &_reserved);
                     if(_res != OK) {
                         return _res;
                     }
@@ -50,7 +50,7 @@
 
                 // Simple Field (value)
                 bool value = false;
-                _res = plc4c_spi_read_bit(io, (bool*) &value);
+                _res = plc4c_spi_read_bit(readBuffer, (bool*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -67,7 +67,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             bool* _val = malloc(sizeof(bool) * 1);
-            _res = plc4c_spi_read_bit(io, (bool*) _val);
+            _res = plc4c_spi_read_bit(readBuffer, (bool*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -80,7 +80,7 @@
 
                 // Simple Field (value)
                 uint8_t value = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &value);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -96,7 +96,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint8_t* _val = malloc(sizeof(uint8_t) * 1);
-            _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) _val);
+            _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -109,7 +109,7 @@
 
                 // Simple Field (value)
                 uint16_t value = 0;
-                _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+                _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -125,7 +125,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint16_t* _val = malloc(sizeof(uint16_t) * 1);
-            _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) _val);
+            _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -138,7 +138,7 @@
 
                 // Simple Field (value)
                 uint32_t value = 0;
-                _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) &value);
+                _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -154,7 +154,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint32_t* _val = malloc(sizeof(uint32_t) * 1);
-            _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) _val);
+            _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -167,7 +167,7 @@
 
                 // Simple Field (value)
                 uint64_t value = 0;
-                _res = plc4c_spi_read_unsigned_long(io, 64, (uint64_t*) &value);
+                _res = plc4c_spi_read_unsigned_long(readBuffer, 64, (uint64_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -183,7 +183,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint64_t* _val = malloc(sizeof(uint64_t) * 1);
-            _res = plc4c_spi_read_unsigned_long(io, 64, (uint64_t*) _val);
+            _res = plc4c_spi_read_unsigned_long(readBuffer, 64, (uint64_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -196,7 +196,7 @@
 
                 // Simple Field (value)
                 int8_t value = 0;
-                _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &value);
+                _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -213,7 +213,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             int8_t* _val = malloc(sizeof(int8_t) * 1);
-            _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _val);
+            _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -226,7 +226,7 @@
 
                 // Simple Field (value)
                 int16_t value = 0;
-                _res = plc4c_spi_read_signed_short(io, 16, (int16_t*) &value);
+                _res = plc4c_spi_read_signed_short(readBuffer, 16, (int16_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -243,7 +243,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             int16_t* _val = malloc(sizeof(int16_t) * 1);
-            _res = plc4c_spi_read_signed_short(io, 16, (int16_t*) _val);
+            _res = plc4c_spi_read_signed_short(readBuffer, 16, (int16_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -256,7 +256,7 @@
 
                 // Simple Field (value)
                 int32_t value = 0;
-                _res = plc4c_spi_read_signed_int(io, 32, (int32_t*) &value);
+                _res = plc4c_spi_read_signed_int(readBuffer, 32, (int32_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -273,7 +273,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             int32_t* _val = malloc(sizeof(int32_t) * 1);
-            _res = plc4c_spi_read_signed_int(io, 32, (int32_t*) _val);
+            _res = plc4c_spi_read_signed_int(readBuffer, 32, (int32_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -286,7 +286,7 @@
 
                 // Simple Field (value)
                 int64_t value = 0;
-                _res = plc4c_spi_read_signed_long(io, 64, (int64_t*) &value);
+                _res = plc4c_spi_read_signed_long(readBuffer, 64, (int64_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -303,7 +303,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             int64_t* _val = malloc(sizeof(int64_t) * 1);
-            _res = plc4c_spi_read_signed_long(io, 64, (int64_t*) _val);
+            _res = plc4c_spi_read_signed_long(readBuffer, 64, (int64_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -316,7 +316,7 @@
 
                 // Simple Field (value)
                 uint8_t value = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &value);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -333,7 +333,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint8_t* _val = malloc(sizeof(uint8_t) * 1);
-            _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) _val);
+            _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -346,7 +346,7 @@
 
                 // Simple Field (value)
                 uint16_t value = 0;
-                _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+                _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -363,7 +363,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint16_t* _val = malloc(sizeof(uint16_t) * 1);
-            _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) _val);
+            _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -376,7 +376,7 @@
 
                 // Simple Field (value)
                 uint32_t value = 0;
-                _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) &value);
+                _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -393,7 +393,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint32_t* _val = malloc(sizeof(uint32_t) * 1);
-            _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) _val);
+            _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -406,7 +406,7 @@
 
                 // Simple Field (value)
                 uint64_t value = 0;
-                _res = plc4c_spi_read_unsigned_long(io, 64, (uint64_t*) &value);
+                _res = plc4c_spi_read_unsigned_long(readBuffer, 64, (uint64_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -423,7 +423,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint64_t* _val = malloc(sizeof(uint64_t) * 1);
-            _res = plc4c_spi_read_unsigned_long(io, 64, (uint64_t*) _val);
+            _res = plc4c_spi_read_unsigned_long(readBuffer, 64, (uint64_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -436,7 +436,7 @@
 
                 // Simple Field (value)
                 float value = 0.0f;
-                _res = plc4c_spi_read_float(io, 32, (float*) &value);
+                _res = plc4c_spi_read_float(readBuffer, 32, (float*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -453,7 +453,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             float* _val = malloc(sizeof(float) * 1);
-            _res = plc4c_spi_read_float(io, 32, (float*) _val);
+            _res = plc4c_spi_read_float(readBuffer, 32, (float*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -466,7 +466,7 @@
 
                 // Simple Field (value)
                 double value = 0.0f;
-                _res = plc4c_spi_read_double(io, 64, (double*) &value);
+                _res = plc4c_spi_read_double(readBuffer, 64, (double*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -483,7 +483,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             double* _val = malloc(sizeof(double) * 1);
-            _res = plc4c_spi_read_double(io, 64, (double*) _val);
+            _res = plc4c_spi_read_double(readBuffer, 64, (double*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -496,7 +496,7 @@
 
                 // Simple Field (value)
                 uint8_t value = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &value);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -513,7 +513,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint8_t* _val = malloc(sizeof(uint8_t) * 1);
-            _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) _val);
+            _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -526,7 +526,7 @@
 
                 // Simple Field (value)
                 uint16_t value = 0;
-                _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+                _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -543,7 +543,7 @@
         int itemCount = (int) numberOfValues;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             uint16_t* _val = malloc(sizeof(uint16_t) * 1);
-            _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) _val);
+            _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -557,7 +557,7 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_data** data_item) {
+plc4c_return_code plc4c_modbus_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_data** data_item) {
   plc4c_return_code _res = OK;
 
   return OK;
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c
index bec94e6..212b89a 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_constants.c
@@ -31,8 +31,8 @@
 }
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_constants_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_constants** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_constants_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_constants** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -44,7 +44,7 @@
 
   // Const Field (modbusTcpDefaultPort)
   uint16_t modbusTcpDefaultPort = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &modbusTcpDefaultPort);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &modbusTcpDefaultPort);
   if(_res != OK) {
     return _res;
   }
@@ -56,11 +56,11 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_constants_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_constants* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_constants_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_constants* _message) {
   plc4c_return_code _res = OK;
 
   // Const Field (modbusTcpDefaultPort)
-  plc4c_spi_write_unsigned_short(io, 16, PLC4C_MODBUS_READ_WRITE_MODBUS_CONSTANTS_MODBUS_TCP_DEFAULT_PORT());
+  plc4c_spi_write_unsigned_short(writeBuffer, 16, PLC4C_MODBUS_READ_WRITE_MODBUS_CONSTANTS_MODBUS_TCP_DEFAULT_PORT());
 
   return OK;
 }
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c
index 9c2fe9f..3b9239c 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu.c
@@ -122,8 +122,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer* io, bool response, plc4c_modbus_read_write_modbus_pdu** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_parse(plc4c_spi_read_buffer* readBuffer, bool response, plc4c_modbus_read_write_modbus_pdu** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -136,7 +136,7 @@
 
   // Discriminator Field (errorFlag) (Used as input to a switch field)
   bool errorFlag = false;
-  _res = plc4c_spi_read_bit(io, (bool*) &errorFlag);
+  _res = plc4c_spi_read_bit(readBuffer, (bool*) &errorFlag);
   if(_res != OK) {
     return _res;
   }
@@ -144,7 +144,7 @@
 
   // Discriminator Field (functionFlag) (Used as input to a switch field)
   uint8_t functionFlag = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 7, (uint8_t*) &functionFlag);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 7, (uint8_t*) &functionFlag);
   if(_res != OK) {
     return _res;
   }
@@ -155,7 +155,7 @@
                     
     // Enum field (exceptionCode)
     plc4c_modbus_read_write_modbus_error_code exceptionCode = plc4c_modbus_read_write_modbus_error_code_null();
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &exceptionCode);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &exceptionCode);
     if(_res != OK) {
       return _res;
     }
@@ -167,7 +167,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -177,7 +177,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -189,7 +189,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -208,7 +208,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -223,7 +223,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -233,7 +233,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -245,7 +245,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -264,7 +264,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -279,7 +279,7 @@
                     
     // Simple Field (address)
     uint16_t address = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &address);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &address);
     if(_res != OK) {
       return _res;
     }
@@ -289,7 +289,7 @@
                     
     // Simple Field (value)
     uint16_t value = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
     if(_res != OK) {
       return _res;
     }
@@ -301,7 +301,7 @@
                     
     // Simple Field (address)
     uint16_t address = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &address);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &address);
     if(_res != OK) {
       return _res;
     }
@@ -311,7 +311,7 @@
                     
     // Simple Field (value)
     uint16_t value = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
     if(_res != OK) {
       return _res;
     }
@@ -323,7 +323,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -333,7 +333,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -343,7 +343,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -362,7 +362,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -377,7 +377,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -387,7 +387,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -399,7 +399,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -409,7 +409,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -421,7 +421,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -440,7 +440,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -455,7 +455,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -465,7 +465,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -477,7 +477,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -496,7 +496,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -511,7 +511,7 @@
                     
     // Simple Field (address)
     uint16_t address = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &address);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &address);
     if(_res != OK) {
       return _res;
     }
@@ -521,7 +521,7 @@
                     
     // Simple Field (value)
     uint16_t value = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
     if(_res != OK) {
       return _res;
     }
@@ -533,7 +533,7 @@
                     
     // Simple Field (address)
     uint16_t address = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &address);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &address);
     if(_res != OK) {
       return _res;
     }
@@ -543,7 +543,7 @@
                     
     // Simple Field (value)
     uint16_t value = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
     if(_res != OK) {
       return _res;
     }
@@ -555,7 +555,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -565,7 +565,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -575,7 +575,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -594,7 +594,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -609,7 +609,7 @@
                     
     // Simple Field (startingAddress)
     uint16_t startingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &startingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &startingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -619,7 +619,7 @@
                     
     // Simple Field (quantity)
     uint16_t quantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &quantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &quantity);
     if(_res != OK) {
       return _res;
     }
@@ -631,7 +631,7 @@
                     
     // Simple Field (readStartingAddress)
     uint16_t readStartingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &readStartingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &readStartingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -641,7 +641,7 @@
                     
     // Simple Field (readQuantity)
     uint16_t readQuantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &readQuantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &readQuantity);
     if(_res != OK) {
       return _res;
     }
@@ -651,7 +651,7 @@
                     
     // Simple Field (writeStartingAddress)
     uint16_t writeStartingAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &writeStartingAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &writeStartingAddress);
     if(_res != OK) {
       return _res;
     }
@@ -661,7 +661,7 @@
                     
     // Simple Field (writeQuantity)
     uint16_t writeQuantity = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &writeQuantity);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &writeQuantity);
     if(_res != OK) {
       return _res;
     }
@@ -671,7 +671,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -690,7 +690,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -705,7 +705,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -724,7 +724,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -739,7 +739,7 @@
                     
     // Simple Field (referenceAddress)
     uint16_t referenceAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &referenceAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &referenceAddress);
     if(_res != OK) {
       return _res;
     }
@@ -749,7 +749,7 @@
                     
     // Simple Field (andMask)
     uint16_t andMask = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &andMask);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &andMask);
     if(_res != OK) {
       return _res;
     }
@@ -759,7 +759,7 @@
                     
     // Simple Field (orMask)
     uint16_t orMask = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &orMask);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &orMask);
     if(_res != OK) {
       return _res;
     }
@@ -771,7 +771,7 @@
                     
     // Simple Field (referenceAddress)
     uint16_t referenceAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &referenceAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &referenceAddress);
     if(_res != OK) {
       return _res;
     }
@@ -781,7 +781,7 @@
                     
     // Simple Field (andMask)
     uint16_t andMask = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &andMask);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &andMask);
     if(_res != OK) {
       return _res;
     }
@@ -791,7 +791,7 @@
                     
     // Simple Field (orMask)
     uint16_t orMask = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &orMask);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &orMask);
     if(_res != OK) {
       return _res;
     }
@@ -803,7 +803,7 @@
                     
     // Simple Field (fifoPointerAddress)
     uint16_t fifoPointerAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &fifoPointerAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &fifoPointerAddress);
     if(_res != OK) {
       return _res;
     }
@@ -815,7 +815,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint16_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -824,7 +824,7 @@
                     
     // Implicit Field (fifoCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint16_t fifoCount = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &fifoCount);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &fifoCount);
     if(_res != OK) {
       return _res;
     }
@@ -843,7 +843,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         uint16_t* _value = malloc(sizeof(uint16_t));
-        _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) _value);
+        _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -858,7 +858,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -874,10 +874,10 @@
     {
       // Length array
       uint8_t _itemsLength = byteCount;
-      uint8_t itemsEndPos = plc4c_spi_read_get_pos(io) + _itemsLength;
-      while(plc4c_spi_read_get_pos(io) < itemsEndPos) {
+      uint8_t itemsEndPos = plc4c_spi_read_get_pos(readBuffer) + _itemsLength;
+      while(plc4c_spi_read_get_pos(readBuffer) < itemsEndPos) {
         plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* _value = NULL;
-        _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(io, (void*) &_value);
+        _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -892,7 +892,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -908,10 +908,10 @@
     {
       // Length array
       uint8_t _itemsLength = byteCount;
-      uint8_t itemsEndPos = plc4c_spi_read_get_pos(io) + _itemsLength;
-      while(plc4c_spi_read_get_pos(io) < itemsEndPos) {
+      uint8_t itemsEndPos = plc4c_spi_read_get_pos(readBuffer) + _itemsLength;
+      while(plc4c_spi_read_get_pos(readBuffer) < itemsEndPos) {
         plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* _value = NULL;
-        _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(io, (void*) &_value);
+        _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -926,7 +926,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -942,10 +942,10 @@
     {
       // Length array
       uint8_t _itemsLength = byteCount;
-      uint8_t itemsEndPos = plc4c_spi_read_get_pos(io) + _itemsLength;
-      while(plc4c_spi_read_get_pos(io) < itemsEndPos) {
+      uint8_t itemsEndPos = plc4c_spi_read_get_pos(readBuffer) + _itemsLength;
+      while(plc4c_spi_read_get_pos(readBuffer) < itemsEndPos) {
         plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* _value = NULL;
-        _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(io, (void*) &_value);
+        _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -960,7 +960,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -976,10 +976,10 @@
     {
       // Length array
       uint8_t _itemsLength = byteCount;
-      uint8_t itemsEndPos = plc4c_spi_read_get_pos(io) + _itemsLength;
-      while(plc4c_spi_read_get_pos(io) < itemsEndPos) {
+      uint8_t itemsEndPos = plc4c_spi_read_get_pos(readBuffer) + _itemsLength;
+      while(plc4c_spi_read_get_pos(readBuffer) < itemsEndPos) {
         plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* _value = NULL;
-        _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(io, (void*) &_value);
+        _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -997,7 +997,7 @@
                     
     // Simple Field (value)
     uint8_t value = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &value);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
     if(_res != OK) {
       return _res;
     }
@@ -1009,7 +1009,7 @@
                     
     // Simple Field (subFunction)
     uint16_t subFunction = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &subFunction);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &subFunction);
     if(_res != OK) {
       return _res;
     }
@@ -1019,7 +1019,7 @@
                     
     // Simple Field (data)
     uint16_t data = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &data);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &data);
     if(_res != OK) {
       return _res;
     }
@@ -1031,7 +1031,7 @@
                     
     // Simple Field (subFunction)
     uint16_t subFunction = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &subFunction);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &subFunction);
     if(_res != OK) {
       return _res;
     }
@@ -1041,7 +1041,7 @@
                     
     // Simple Field (data)
     uint16_t data = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &data);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &data);
     if(_res != OK) {
       return _res;
     }
@@ -1056,7 +1056,7 @@
                     
     // Simple Field (status)
     uint16_t status = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &status);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &status);
     if(_res != OK) {
       return _res;
     }
@@ -1066,7 +1066,7 @@
                     
     // Simple Field (eventCount)
     uint16_t eventCount = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &eventCount);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &eventCount);
     if(_res != OK) {
       return _res;
     }
@@ -1081,7 +1081,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -1090,7 +1090,7 @@
                     
     // Simple Field (status)
     uint16_t status = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &status);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &status);
     if(_res != OK) {
       return _res;
     }
@@ -1100,7 +1100,7 @@
                     
     // Simple Field (eventCount)
     uint16_t eventCount = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &eventCount);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &eventCount);
     if(_res != OK) {
       return _res;
     }
@@ -1110,7 +1110,7 @@
                     
     // Simple Field (messageCount)
     uint16_t messageCount = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &messageCount);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &messageCount);
     if(_res != OK) {
       return _res;
     }
@@ -1130,7 +1130,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -1148,7 +1148,7 @@
                     
     // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t byteCount = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &byteCount);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &byteCount);
     if(_res != OK) {
       return _res;
     }
@@ -1167,7 +1167,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
         int8_t* _value = malloc(sizeof(int8_t));
-        _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+        _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -1187,21 +1187,21 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu* _message) {
   plc4c_return_code _res = OK;
 
   // Discriminator Field (errorFlag)
-  plc4c_spi_write_bit(io, plc4c_modbus_read_write_modbus_pdu_get_discriminator(_message->_type).errorFlag);
+  plc4c_spi_write_bit(writeBuffer, plc4c_modbus_read_write_modbus_pdu_get_discriminator(_message->_type).errorFlag);
 
   // Discriminator Field (functionFlag)
-  plc4c_spi_write_unsigned_byte(io, 7, plc4c_modbus_read_write_modbus_pdu_get_discriminator(_message->_type).functionFlag);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 7, plc4c_modbus_read_write_modbus_pdu_get_discriminator(_message->_type).functionFlag);
 
   // Switch Field (Depending of the current type, serialize the sub-type elements)
   switch(_message->_type) {
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_error: {
 
       // Enum field (exceptionCode)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->modbus_pdu_error_exception_code);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->modbus_pdu_error_exception_code);
       if(_res != OK) {
         return _res;
       }
@@ -1211,13 +1211,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_discrete_inputs_request: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_discrete_inputs_request_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_discrete_inputs_request_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_discrete_inputs_request_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_discrete_inputs_request_quantity);
       if(_res != OK) {
         return _res;
       }
@@ -1227,7 +1227,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_discrete_inputs_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_discrete_inputs_response_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_discrete_inputs_response_value));
       if(_res != OK) {
         return _res;
       }
@@ -1238,7 +1238,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_read_discrete_inputs_response_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1247,13 +1247,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_coils_request: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_coils_request_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_coils_request_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_coils_request_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_coils_request_quantity);
       if(_res != OK) {
         return _res;
       }
@@ -1263,7 +1263,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_coils_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_coils_response_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_coils_response_value));
       if(_res != OK) {
         return _res;
       }
@@ -1274,7 +1274,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_read_coils_response_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1283,13 +1283,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_single_coil_request: {
 
       // Simple Field (address)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_coil_request_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_coil_request_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (value)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_coil_request_value);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_coil_request_value);
       if(_res != OK) {
         return _res;
       }
@@ -1299,13 +1299,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_single_coil_response: {
 
       // Simple Field (address)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_coil_response_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_coil_response_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (value)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_coil_response_value);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_coil_response_value);
       if(_res != OK) {
         return _res;
       }
@@ -1315,19 +1315,19 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_coils_request: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_coils_request_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_coils_request_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_coils_request_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_coils_request_quantity);
       if(_res != OK) {
         return _res;
       }
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_coils_request_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_coils_request_value));
       if(_res != OK) {
         return _res;
       }
@@ -1338,7 +1338,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_write_multiple_coils_request_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1347,13 +1347,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_coils_response: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_coils_response_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_coils_response_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_coils_response_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_coils_response_quantity);
       if(_res != OK) {
         return _res;
       }
@@ -1363,13 +1363,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_input_registers_request: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_input_registers_request_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_input_registers_request_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_input_registers_request_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_input_registers_request_quantity);
       if(_res != OK) {
         return _res;
       }
@@ -1379,7 +1379,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_input_registers_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_input_registers_response_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_input_registers_response_value));
       if(_res != OK) {
         return _res;
       }
@@ -1390,7 +1390,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_read_input_registers_response_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1399,13 +1399,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_holding_registers_request: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_holding_registers_request_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_holding_registers_request_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_holding_registers_request_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_holding_registers_request_quantity);
       if(_res != OK) {
         return _res;
       }
@@ -1415,7 +1415,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_holding_registers_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_holding_registers_response_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_holding_registers_response_value));
       if(_res != OK) {
         return _res;
       }
@@ -1426,7 +1426,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_read_holding_registers_response_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1435,13 +1435,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_single_register_request: {
 
       // Simple Field (address)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_register_request_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_register_request_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (value)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_register_request_value);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_register_request_value);
       if(_res != OK) {
         return _res;
       }
@@ -1451,13 +1451,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_single_register_response: {
 
       // Simple Field (address)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_register_response_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_register_response_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (value)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_single_register_response_value);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_single_register_response_value);
       if(_res != OK) {
         return _res;
       }
@@ -1467,19 +1467,19 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_holding_registers_request: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_holding_registers_request_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_holding_registers_request_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_holding_registers_request_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_holding_registers_request_quantity);
       if(_res != OK) {
         return _res;
       }
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_holding_registers_request_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_write_multiple_holding_registers_request_value));
       if(_res != OK) {
         return _res;
       }
@@ -1490,7 +1490,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_write_multiple_holding_registers_request_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1499,13 +1499,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_multiple_holding_registers_response: {
 
       // Simple Field (startingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_holding_registers_response_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_holding_registers_response_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (quantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_write_multiple_holding_registers_response_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_write_multiple_holding_registers_response_quantity);
       if(_res != OK) {
         return _res;
       }
@@ -1515,31 +1515,31 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_write_multiple_holding_registers_request: {
 
       // Simple Field (readStartingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_read_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_read_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (readQuantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_read_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_read_quantity);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (writeStartingAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_write_starting_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_write_starting_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (writeQuantity)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_write_quantity);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_write_multiple_holding_registers_request_write_quantity);
       if(_res != OK) {
         return _res;
       }
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_request_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_request_value));
       if(_res != OK) {
         return _res;
       }
@@ -1550,7 +1550,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_read_write_multiple_holding_registers_request_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1559,7 +1559,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_write_multiple_holding_registers_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_response_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_write_multiple_holding_registers_response_value));
       if(_res != OK) {
         return _res;
       }
@@ -1570,7 +1570,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_read_write_multiple_holding_registers_response_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1579,19 +1579,19 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_mask_write_holding_register_request: {
 
       // Simple Field (referenceAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_mask_write_holding_register_request_reference_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_mask_write_holding_register_request_reference_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (andMask)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_mask_write_holding_register_request_and_mask);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_mask_write_holding_register_request_and_mask);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (orMask)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_mask_write_holding_register_request_or_mask);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_mask_write_holding_register_request_or_mask);
       if(_res != OK) {
         return _res;
       }
@@ -1601,19 +1601,19 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_mask_write_holding_register_response: {
 
       // Simple Field (referenceAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_mask_write_holding_register_response_reference_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_mask_write_holding_register_response_reference_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (andMask)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_mask_write_holding_register_response_and_mask);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_mask_write_holding_register_response_and_mask);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (orMask)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_mask_write_holding_register_response_or_mask);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_mask_write_holding_register_response_or_mask);
       if(_res != OK) {
         return _res;
       }
@@ -1623,7 +1623,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_fifo_queue_request: {
 
       // Simple Field (fifoPointerAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_read_fifo_queue_request_fifo_pointer_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_read_fifo_queue_request_fifo_pointer_address);
       if(_res != OK) {
         return _res;
       }
@@ -1633,13 +1633,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_fifo_queue_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_short(io, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) + (2));
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) + (2));
       if(_res != OK) {
         return _res;
       }
 
       // Implicit Field (fifoCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_short(io, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) / (2));
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (((plc4c_spi_evaluation_helper_count(_message->modbus_pdu_read_fifo_queue_response_fifo_value)) * (2))) / (2));
       if(_res != OK) {
         return _res;
       }
@@ -1650,7 +1650,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           uint16_t* _value = (uint16_t*) plc4c_utils_list_get_value(_message->modbus_pdu_read_fifo_queue_response_fifo_value, curItem);
-          plc4c_spi_write_unsigned_short(io, 16, *_value);
+          plc4c_spi_write_unsigned_short(writeBuffer, 16, *_value);
         }
       }
 
@@ -1659,7 +1659,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_file_record_request: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_request_items));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_request_items));
       if(_res != OK) {
         return _res;
       }
@@ -1670,7 +1670,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* _value = (plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item*) plc4c_utils_list_get_value(_message->modbus_pdu_read_file_record_request_items, curItem);
-          _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_serialize(io, (void*) _value);
+          _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
@@ -1682,7 +1682,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_file_record_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_response_items));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_read_file_record_response_items));
       if(_res != OK) {
         return _res;
       }
@@ -1693,7 +1693,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* _value = (plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item*) plc4c_utils_list_get_value(_message->modbus_pdu_read_file_record_response_items, curItem);
-          _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_serialize(io, (void*) _value);
+          _res = plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
@@ -1705,7 +1705,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_file_record_request: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_request_items));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_request_items));
       if(_res != OK) {
         return _res;
       }
@@ -1716,7 +1716,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* _value = (plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item*) plc4c_utils_list_get_value(_message->modbus_pdu_write_file_record_request_items, curItem);
-          _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_serialize(io, (void*) _value);
+          _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
@@ -1728,7 +1728,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_write_file_record_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_response_items));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_array_size_in_bytes(_message->modbus_pdu_write_file_record_response_items));
       if(_res != OK) {
         return _res;
       }
@@ -1739,7 +1739,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* _value = (plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item*) plc4c_utils_list_get_value(_message->modbus_pdu_write_file_record_response_items, curItem);
-          _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_serialize(io, (void*) _value);
+          _res = plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
@@ -1755,7 +1755,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_read_exception_status_response: {
 
       // Simple Field (value)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->modbus_pdu_read_exception_status_response_value);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->modbus_pdu_read_exception_status_response_value);
       if(_res != OK) {
         return _res;
       }
@@ -1765,13 +1765,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_diagnostic_request: {
 
       // Simple Field (subFunction)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_diagnostic_request_sub_function);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_diagnostic_request_sub_function);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (data)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_diagnostic_request_data);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_diagnostic_request_data);
       if(_res != OK) {
         return _res;
       }
@@ -1781,13 +1781,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_diagnostic_response: {
 
       // Simple Field (subFunction)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_diagnostic_response_sub_function);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_diagnostic_response_sub_function);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (data)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_diagnostic_response_data);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_diagnostic_response_data);
       if(_res != OK) {
         return _res;
       }
@@ -1801,13 +1801,13 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_get_com_event_counter_response: {
 
       // Simple Field (status)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_get_com_event_counter_response_status);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_get_com_event_counter_response_status);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (eventCount)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_get_com_event_counter_response_event_count);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_get_com_event_counter_response_event_count);
       if(_res != OK) {
         return _res;
       }
@@ -1821,25 +1821,25 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_get_com_event_log_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, (plc4c_spi_evaluation_helper_count(_message->modbus_pdu_get_com_event_log_response_events)) + (6));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, (plc4c_spi_evaluation_helper_count(_message->modbus_pdu_get_com_event_log_response_events)) + (6));
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (status)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_get_com_event_log_response_status);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_get_com_event_log_response_status);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (eventCount)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_get_com_event_log_response_event_count);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_get_com_event_log_response_event_count);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (messageCount)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->modbus_pdu_get_com_event_log_response_message_count);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->modbus_pdu_get_com_event_log_response_message_count);
       if(_res != OK) {
         return _res;
       }
@@ -1850,7 +1850,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_get_com_event_log_response_events, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
@@ -1863,7 +1863,7 @@
     case plc4c_modbus_read_write_modbus_pdu_type_plc4c_modbus_read_write_modbus_pdu_report_server_id_response: {
 
       // Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_report_server_id_response_value));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->modbus_pdu_report_server_id_response_value));
       if(_res != OK) {
         return _res;
       }
@@ -1874,7 +1874,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
           int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->modbus_pdu_report_server_id_response_value, curItem);
-          plc4c_spi_write_signed_byte(io, 8, *_value);
+          plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
         }
       }
 
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c
index 6ed43f9..e33e989 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_request_item.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Simple Field (referenceType)
   uint8_t referenceType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &referenceType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &referenceType);
   if(_res != OK) {
     return _res;
   }
@@ -46,7 +46,7 @@
 
   // Simple Field (fileNumber)
   uint16_t fileNumber = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &fileNumber);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &fileNumber);
   if(_res != OK) {
     return _res;
   }
@@ -54,7 +54,7 @@
 
   // Simple Field (recordNumber)
   uint16_t recordNumber = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &recordNumber);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &recordNumber);
   if(_res != OK) {
     return _res;
   }
@@ -62,7 +62,7 @@
 
   // Simple Field (recordLength)
   uint16_t recordLength = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &recordLength);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &recordLength);
   if(_res != OK) {
     return _res;
   }
@@ -71,29 +71,29 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_request_item* _message) {
   plc4c_return_code _res = OK;
 
   // Simple Field (referenceType)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->reference_type);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->reference_type);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (fileNumber)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->file_number);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->file_number);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (recordNumber)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->record_number);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->record_number);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (recordLength)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->record_length);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->record_length);
   if(_res != OK) {
     return _res;
   }
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c
index 2666467..0b569c4 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_read_file_record_response_item.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,14 +38,14 @@
 
   // Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint8_t dataLength = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &dataLength);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &dataLength);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (referenceType)
   uint8_t referenceType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &referenceType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &referenceType);
   if(_res != OK) {
     return _res;
   }
@@ -60,10 +60,10 @@
   {
     // Length array
     uint8_t _dataLength = (dataLength) - (1);
-    uint8_t dataEndPos = plc4c_spi_read_get_pos(io) + _dataLength;
-    while(plc4c_spi_read_get_pos(io) < dataEndPos) {
+    uint8_t dataEndPos = plc4c_spi_read_get_pos(readBuffer) + _dataLength;
+    while(plc4c_spi_read_get_pos(readBuffer) < dataEndPos) {
       int8_t _value = 0;
-      _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &_value);
+      _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &_value);
       if(_res != OK) {
         return _res;
       }
@@ -75,17 +75,17 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_read_file_record_response_item* _message) {
   plc4c_return_code _res = OK;
 
   // Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, (plc4c_spi_evaluation_helper_count(_message->data)) + (1));
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, (plc4c_spi_evaluation_helper_count(_message->data)) + (1));
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (referenceType)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->reference_type);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->reference_type);
   if(_res != OK) {
     return _res;
   }
@@ -96,7 +96,7 @@
     for(int curItem = 0; curItem < itemCount; curItem++) {
 
       int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->data, curItem);
-      plc4c_spi_write_signed_byte(io, 8, *_value);
+      plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
     }
   }
 
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c
index fc8d2bd..4d47953 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_request_item.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Simple Field (referenceType)
   uint8_t referenceType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &referenceType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &referenceType);
   if(_res != OK) {
     return _res;
   }
@@ -46,7 +46,7 @@
 
   // Simple Field (fileNumber)
   uint16_t fileNumber = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &fileNumber);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &fileNumber);
   if(_res != OK) {
     return _res;
   }
@@ -54,7 +54,7 @@
 
   // Simple Field (recordNumber)
   uint16_t recordNumber = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &recordNumber);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &recordNumber);
   if(_res != OK) {
     return _res;
   }
@@ -62,7 +62,7 @@
 
   // Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t recordLength = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &recordLength);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &recordLength);
   if(_res != OK) {
     return _res;
   }
@@ -76,10 +76,10 @@
   {
     // Length array
     uint8_t _recordDataLength = (recordLength) * (2);
-    uint8_t recordDataEndPos = plc4c_spi_read_get_pos(io) + _recordDataLength;
-    while(plc4c_spi_read_get_pos(io) < recordDataEndPos) {
+    uint8_t recordDataEndPos = plc4c_spi_read_get_pos(readBuffer) + _recordDataLength;
+    while(plc4c_spi_read_get_pos(readBuffer) < recordDataEndPos) {
       int8_t _value = 0;
-      _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &_value);
+      _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &_value);
       if(_res != OK) {
         return _res;
       }
@@ -91,29 +91,29 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_request_item* _message) {
   plc4c_return_code _res = OK;
 
   // Simple Field (referenceType)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->reference_type);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->reference_type);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (fileNumber)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->file_number);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->file_number);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (recordNumber)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->record_number);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->record_number);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (plc4c_spi_evaluation_helper_count(_message->record_data)) / (2));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (plc4c_spi_evaluation_helper_count(_message->record_data)) / (2));
   if(_res != OK) {
     return _res;
   }
@@ -124,7 +124,7 @@
     for(int curItem = 0; curItem < itemCount; curItem++) {
 
       int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->record_data, curItem);
-      plc4c_spi_write_signed_byte(io, 8, *_value);
+      plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
     }
   }
 
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c
index 3541fd9..2d31ba1 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_pdu_write_file_record_response_item.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(plc4c_spi_read_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Simple Field (referenceType)
   uint8_t referenceType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &referenceType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &referenceType);
   if(_res != OK) {
     return _res;
   }
@@ -46,7 +46,7 @@
 
   // Simple Field (fileNumber)
   uint16_t fileNumber = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &fileNumber);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &fileNumber);
   if(_res != OK) {
     return _res;
   }
@@ -54,7 +54,7 @@
 
   // Simple Field (recordNumber)
   uint16_t recordNumber = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &recordNumber);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &recordNumber);
   if(_res != OK) {
     return _res;
   }
@@ -62,7 +62,7 @@
 
   // Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t recordLength = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &recordLength);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &recordLength);
   if(_res != OK) {
     return _res;
   }
@@ -76,10 +76,10 @@
   {
     // Length array
     uint8_t _recordDataLength = recordLength;
-    uint8_t recordDataEndPos = plc4c_spi_read_get_pos(io) + _recordDataLength;
-    while(plc4c_spi_read_get_pos(io) < recordDataEndPos) {
+    uint8_t recordDataEndPos = plc4c_spi_read_get_pos(readBuffer) + _recordDataLength;
+    while(plc4c_spi_read_get_pos(readBuffer) < recordDataEndPos) {
       int8_t _value = 0;
-      _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &_value);
+      _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &_value);
       if(_res != OK) {
         return _res;
       }
@@ -91,29 +91,29 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_pdu_write_file_record_response_item* _message) {
   plc4c_return_code _res = OK;
 
   // Simple Field (referenceType)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->reference_type);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->reference_type);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (fileNumber)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->file_number);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->file_number);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (recordNumber)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->record_number);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->record_number);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (recordLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (plc4c_spi_evaluation_helper_count(_message->record_data)) / (2));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (plc4c_spi_evaluation_helper_count(_message->record_data)) / (2));
   if(_res != OK) {
     return _res;
   }
@@ -124,7 +124,7 @@
     for(int curItem = 0; curItem < itemCount; curItem++) {
 
       int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->record_data, curItem);
-      plc4c_spi_write_signed_byte(io, 8, *_value);
+      plc4c_spi_write_signed_byte(writeBuffer, 8, *_value);
     }
   }
 
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c
index 7a215c3..07981e7 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_serial_adu.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_parse(plc4c_spi_read_buffer* io, bool response, plc4c_modbus_read_write_modbus_serial_adu** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_parse(plc4c_spi_read_buffer* readBuffer, bool response, plc4c_modbus_read_write_modbus_serial_adu** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Simple Field (transactionId)
   uint16_t transactionId = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &transactionId);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &transactionId);
   if(_res != OK) {
     return _res;
   }
@@ -47,7 +47,7 @@
   // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
   {
     uint16_t _reserved = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &_reserved);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &_reserved);
     if(_res != OK) {
       return _res;
     }
@@ -58,7 +58,7 @@
 
   // Simple Field (length)
   uint16_t length = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &length);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &length);
   if(_res != OK) {
     return _res;
   }
@@ -66,7 +66,7 @@
 
   // Simple Field (address)
   uint8_t address = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &address);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &address);
   if(_res != OK) {
     return _res;
   }
@@ -74,7 +74,7 @@
 
   // Simple Field (pdu)
   plc4c_modbus_read_write_modbus_pdu* pdu;
-  _res = plc4c_modbus_read_write_modbus_pdu_parse(io, response, (void*) &pdu);
+  _res = plc4c_modbus_read_write_modbus_pdu_parse(readBuffer, response, (void*) &pdu);
   if(_res != OK) {
     return _res;
   }
@@ -83,35 +83,35 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_serial_adu* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_serial_adu_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_serial_adu* _message) {
   plc4c_return_code _res = OK;
 
   // Simple Field (transactionId)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->transaction_id);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->transaction_id);
   if(_res != OK) {
     return _res;
   }
 
   // Reserved Field
-  _res = plc4c_spi_write_unsigned_short(io, 16, 0x0000);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, 0x0000);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (length)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->length);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->length);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (address)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->address);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->address);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (pdu)
-  _res = plc4c_modbus_read_write_modbus_pdu_serialize(io, _message->pdu);
+  _res = plc4c_modbus_read_write_modbus_pdu_serialize(writeBuffer, _message->pdu);
   if(_res != OK) {
     return _res;
   }
diff --git a/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c b/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c
index bf6b8d5..b60e49e 100644
--- a/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c
+++ b/sandbox/plc4c/generated-sources/modbus/src/modbus_tcp_adu.c
@@ -31,8 +31,8 @@
 }
 
 // Parse function.
-plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_parse(plc4c_spi_read_buffer* io, bool response, plc4c_modbus_read_write_modbus_tcp_adu** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_parse(plc4c_spi_read_buffer* readBuffer, bool response, plc4c_modbus_read_write_modbus_tcp_adu** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -44,7 +44,7 @@
 
   // Simple Field (transactionIdentifier)
   uint16_t transactionIdentifier = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &transactionIdentifier);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &transactionIdentifier);
   if(_res != OK) {
     return _res;
   }
@@ -52,7 +52,7 @@
 
   // Const Field (protocolIdentifier)
   uint16_t protocolIdentifier = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &protocolIdentifier);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &protocolIdentifier);
   if(_res != OK) {
     return _res;
   }
@@ -63,14 +63,14 @@
 
   // Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t length = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &length);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &length);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (unitIdentifier)
   uint8_t unitIdentifier = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &unitIdentifier);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &unitIdentifier);
   if(_res != OK) {
     return _res;
   }
@@ -78,7 +78,7 @@
 
   // Simple Field (pdu)
   plc4c_modbus_read_write_modbus_pdu* pdu;
-  _res = plc4c_modbus_read_write_modbus_pdu_parse(io, response, (void*) &pdu);
+  _res = plc4c_modbus_read_write_modbus_pdu_parse(readBuffer, response, (void*) &pdu);
   if(_res != OK) {
     return _res;
   }
@@ -87,32 +87,32 @@
   return OK;
 }
 
-plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_serialize(plc4c_spi_write_buffer* io, plc4c_modbus_read_write_modbus_tcp_adu* _message) {
+plc4c_return_code plc4c_modbus_read_write_modbus_tcp_adu_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_modbus_read_write_modbus_tcp_adu* _message) {
   plc4c_return_code _res = OK;
 
   // Simple Field (transactionIdentifier)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->transaction_identifier);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->transaction_identifier);
   if(_res != OK) {
     return _res;
   }
 
   // Const Field (protocolIdentifier)
-  plc4c_spi_write_unsigned_short(io, 16, PLC4C_MODBUS_READ_WRITE_MODBUS_TCP_ADU_PROTOCOL_IDENTIFIER());
+  plc4c_spi_write_unsigned_short(writeBuffer, 16, PLC4C_MODBUS_READ_WRITE_MODBUS_TCP_ADU_PROTOCOL_IDENTIFIER());
 
   // Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (plc4c_modbus_read_write_modbus_pdu_length_in_bytes(_message->pdu)) + (1));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (plc4c_modbus_read_write_modbus_pdu_length_in_bytes(_message->pdu)) + (1));
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (unitIdentifier)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->unit_identifier);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->unit_identifier);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (pdu)
-  _res = plc4c_modbus_read_write_modbus_pdu_serialize(io, _message->pdu);
+  _res = plc4c_modbus_read_write_modbus_pdu_serialize(writeBuffer, _message->pdu);
   if(_res != OK) {
     return _res;
   }
diff --git a/sandbox/plc4c/generated-sources/s7/include/cotp_packet.h b/sandbox/plc4c/generated-sources/s7/include/cotp_packet.h
index c85fb56..3f0e5ab 100644
--- a/sandbox/plc4c/generated-sources/s7/include/cotp_packet.h
+++ b/sandbox/plc4c/generated-sources/s7/include/cotp_packet.h
@@ -96,9 +96,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_cotp_packet plc4c_s7_read_write_cotp_packet_null();
 
-plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* io, uint16_t cotpLen, plc4c_s7_read_write_cotp_packet** message);
+plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* readBuffer, uint16_t cotpLen, plc4c_s7_read_write_cotp_packet** message);
 
-plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_cotp_packet* message);
+plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_cotp_packet* message);
 
 uint16_t plc4c_s7_read_write_cotp_packet_length_in_bytes(plc4c_s7_read_write_cotp_packet* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/cotp_parameter.h b/sandbox/plc4c/generated-sources/s7/include/cotp_parameter.h
index 5d81c2d..31da06d 100644
--- a/sandbox/plc4c/generated-sources/s7/include/cotp_parameter.h
+++ b/sandbox/plc4c/generated-sources/s7/include/cotp_parameter.h
@@ -79,9 +79,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_cotp_parameter plc4c_s7_read_write_cotp_parameter_null();
 
-plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer* io, uint8_t rest, plc4c_s7_read_write_cotp_parameter** message);
+plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer* readBuffer, uint8_t rest, plc4c_s7_read_write_cotp_parameter** message);
 
-plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_cotp_parameter* message);
+plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_cotp_parameter* message);
 
 uint16_t plc4c_s7_read_write_cotp_parameter_length_in_bytes(plc4c_s7_read_write_cotp_parameter* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/data_item.h b/sandbox/plc4c/generated-sources/s7/include/data_item.h
index d195c93..a0802bc 100644
--- a/sandbox/plc4c/generated-sources/s7/include/data_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/data_item.h
@@ -31,9 +31,9 @@
 extern "C" {
 #endif
 
-plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* buf, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item);
+plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item);
 
-plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* buf, plc4c_data** data_item);
+plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_data** data_item);
 
 uint16_t plc4c_s7_read_write_data_item_length_in_bytes(plc4c_data* data_item);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_address.h b/sandbox/plc4c/generated-sources/s7/include/s7_address.h
index b3ac3f4..cbcd56e 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_address.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_address.h
@@ -69,9 +69,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_address plc4c_s7_read_write_s7_address_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_address** message);
+plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_address** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_address_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_address* message);
+plc4c_return_code plc4c_s7_read_write_s7_address_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_address* message);
 
 uint16_t plc4c_s7_read_write_s7_address_length_in_bytes(plc4c_s7_read_write_s7_address* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_message.h b/sandbox/plc4c/generated-sources/s7/include/s7_message.h
index da4974b..74e328e 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_message.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_message.h
@@ -79,9 +79,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_message plc4c_s7_read_write_s7_message_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_message** message);
+plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_message** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_message* message);
+plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_message* message);
 
 uint16_t plc4c_s7_read_write_s7_message_length_in_bytes(plc4c_s7_read_write_s7_message* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_parameter.h b/sandbox/plc4c/generated-sources/s7/include/s7_parameter.h
index 4d20909..22ccf01 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_parameter.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_parameter.h
@@ -87,9 +87,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_parameter plc4c_s7_read_write_s7_parameter_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer* io, uint8_t messageType, plc4c_s7_read_write_s7_parameter** message);
+plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer* readBuffer, uint8_t messageType, plc4c_s7_read_write_s7_parameter** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_parameter* message);
+plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_parameter* message);
 
 uint16_t plc4c_s7_read_write_s7_parameter_length_in_bytes(plc4c_s7_read_write_s7_parameter* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_parameter_user_data_item.h b/sandbox/plc4c/generated-sources/s7/include/s7_parameter_user_data_item.h
index 4c49e47..c0bcbe1 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_parameter_user_data_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_parameter_user_data_item.h
@@ -69,9 +69,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_parameter_user_data_item plc4c_s7_read_write_s7_parameter_user_data_item_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_parameter_user_data_item** message);
+plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_parameter_user_data_item** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_parameter_user_data_item* message);
+plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_parameter_user_data_item* message);
 
 uint16_t plc4c_s7_read_write_s7_parameter_user_data_item_length_in_bytes(plc4c_s7_read_write_s7_parameter_user_data_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_payload.h b/sandbox/plc4c/generated-sources/s7/include/s7_payload.h
index 3b0ed47..e0d4849 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_payload.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_payload.h
@@ -79,9 +79,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_payload plc4c_s7_read_write_s7_payload_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* io, uint8_t messageType, plc4c_s7_read_write_s7_parameter* parameter, plc4c_s7_read_write_s7_payload** message);
+plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* readBuffer, uint8_t messageType, plc4c_s7_read_write_s7_parameter* parameter, plc4c_s7_read_write_s7_payload** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_payload_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_payload* message);
+plc4c_return_code plc4c_s7_read_write_s7_payload_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_payload* message);
 
 uint16_t plc4c_s7_read_write_s7_payload_length_in_bytes(plc4c_s7_read_write_s7_payload* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_payload_user_data_item.h b/sandbox/plc4c/generated-sources/s7/include/s7_payload_user_data_item.h
index c4ecde7..08da8e6 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_payload_user_data_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_payload_user_data_item.h
@@ -74,9 +74,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_payload_user_data_item plc4c_s7_read_write_s7_payload_user_data_item_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_read_buffer* io, uint8_t cpuFunctionType, plc4c_s7_read_write_s7_payload_user_data_item** message);
+plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_read_buffer* readBuffer, uint8_t cpuFunctionType, plc4c_s7_read_write_s7_payload_user_data_item** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_payload_user_data_item* message);
+plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_payload_user_data_item* message);
 
 uint16_t plc4c_s7_read_write_s7_payload_user_data_item_length_in_bytes(plc4c_s7_read_write_s7_payload_user_data_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_data_item.h b/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_data_item.h
index 7c48d46..e5b5aa3 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_data_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_data_item.h
@@ -45,9 +45,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_var_payload_data_item plc4c_s7_read_write_s7_var_payload_data_item_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_read_buffer* io, bool lastItem, plc4c_s7_read_write_s7_var_payload_data_item** message);
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_read_buffer* readBuffer, bool lastItem, plc4c_s7_read_write_s7_var_payload_data_item** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_var_payload_data_item* message, bool lastItem);
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_var_payload_data_item* message, bool lastItem);
 
 uint16_t plc4c_s7_read_write_s7_var_payload_data_item_length_in_bytes(plc4c_s7_read_write_s7_var_payload_data_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_status_item.h b/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_status_item.h
index 8c88274..12bc662 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_status_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_var_payload_status_item.h
@@ -42,9 +42,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_var_payload_status_item plc4c_s7_read_write_s7_var_payload_status_item_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_var_payload_status_item** message);
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_var_payload_status_item** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_var_payload_status_item* message);
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_var_payload_status_item* message);
 
 uint16_t plc4c_s7_read_write_s7_var_payload_status_item_length_in_bytes(plc4c_s7_read_write_s7_var_payload_status_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/s7_var_request_parameter_item.h b/sandbox/plc4c/generated-sources/s7/include/s7_var_request_parameter_item.h
index 7f53dd4..d386b61 100644
--- a/sandbox/plc4c/generated-sources/s7/include/s7_var_request_parameter_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/s7_var_request_parameter_item.h
@@ -63,9 +63,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_s7_var_request_parameter_item plc4c_s7_read_write_s7_var_request_parameter_item_null();
 
-plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_var_request_parameter_item** message);
+plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_var_request_parameter_item** message);
 
-plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_var_request_parameter_item* message);
+plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_var_request_parameter_item* message);
 
 uint16_t plc4c_s7_read_write_s7_var_request_parameter_item_length_in_bytes(plc4c_s7_read_write_s7_var_request_parameter_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/szl_data_tree_item.h b/sandbox/plc4c/generated-sources/s7/include/szl_data_tree_item.h
index fa367cd..2d42374 100644
--- a/sandbox/plc4c/generated-sources/s7/include/szl_data_tree_item.h
+++ b/sandbox/plc4c/generated-sources/s7/include/szl_data_tree_item.h
@@ -45,9 +45,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_szl_data_tree_item plc4c_s7_read_write_szl_data_tree_item_null();
 
-plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_szl_data_tree_item** message);
+plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_szl_data_tree_item** message);
 
-plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_szl_data_tree_item* message);
+plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_szl_data_tree_item* message);
 
 uint16_t plc4c_s7_read_write_szl_data_tree_item_length_in_bytes(plc4c_s7_read_write_szl_data_tree_item* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/szl_id.h b/sandbox/plc4c/generated-sources/s7/include/szl_id.h
index f5cc576..3d6161e 100644
--- a/sandbox/plc4c/generated-sources/s7/include/szl_id.h
+++ b/sandbox/plc4c/generated-sources/s7/include/szl_id.h
@@ -45,9 +45,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_szl_id plc4c_s7_read_write_szl_id_null();
 
-plc4c_return_code plc4c_s7_read_write_szl_id_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_szl_id** message);
+plc4c_return_code plc4c_s7_read_write_szl_id_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_szl_id** message);
 
-plc4c_return_code plc4c_s7_read_write_szl_id_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_szl_id* message);
+plc4c_return_code plc4c_s7_read_write_szl_id_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_szl_id* message);
 
 uint16_t plc4c_s7_read_write_szl_id_length_in_bytes(plc4c_s7_read_write_szl_id* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/include/tpkt_packet.h b/sandbox/plc4c/generated-sources/s7/include/tpkt_packet.h
index d4ed512..28589e9 100644
--- a/sandbox/plc4c/generated-sources/s7/include/tpkt_packet.h
+++ b/sandbox/plc4c/generated-sources/s7/include/tpkt_packet.h
@@ -46,9 +46,9 @@
 // Create an empty NULL-struct
 plc4c_s7_read_write_tpkt_packet plc4c_s7_read_write_tpkt_packet_null();
 
-plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_tpkt_packet** message);
+plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_tpkt_packet** message);
 
-plc4c_return_code plc4c_s7_read_write_tpkt_packet_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_tpkt_packet* message);
+plc4c_return_code plc4c_s7_read_write_tpkt_packet_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_tpkt_packet* message);
 
 uint16_t plc4c_s7_read_write_tpkt_packet_length_in_bytes(plc4c_s7_read_write_tpkt_packet* message);
 
diff --git a/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c b/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c
index 3b492f6..a7ab034 100644
--- a/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c
+++ b/sandbox/plc4c/generated-sources/s7/src/cotp_packet.c
@@ -56,8 +56,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* io, uint16_t cotpLen, plc4c_s7_read_write_cotp_packet** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_cotp_packet_parse(plc4c_spi_read_buffer* readBuffer, uint16_t cotpLen, plc4c_s7_read_write_cotp_packet** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -69,7 +69,7 @@
 
   // Implicit Field (headerLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint8_t headerLength = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &headerLength);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &headerLength);
   if(_res != OK) {
     return _res;
   }
@@ -77,7 +77,7 @@
 
   // Discriminator Field (tpduCode) (Used as input to a switch field)
   uint8_t tpduCode = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &tpduCode);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &tpduCode);
   if(_res != OK) {
     return _res;
   }
@@ -88,7 +88,7 @@
                     
     // Simple Field (eot)
     bool eot = false;
-    _res = plc4c_spi_read_bit(io, (bool*) &eot);
+    _res = plc4c_spi_read_bit(readBuffer, (bool*) &eot);
     if(_res != OK) {
       return _res;
     }
@@ -98,7 +98,7 @@
                     
     // Simple Field (tpduRef)
     uint8_t tpduRef = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 7, (uint8_t*) &tpduRef);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 7, (uint8_t*) &tpduRef);
     if(_res != OK) {
       return _res;
     }
@@ -110,7 +110,7 @@
                     
     // Simple Field (destinationReference)
     uint16_t destinationReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &destinationReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &destinationReference);
     if(_res != OK) {
       return _res;
     }
@@ -120,7 +120,7 @@
                     
     // Simple Field (sourceReference)
     uint16_t sourceReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &sourceReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &sourceReference);
     if(_res != OK) {
       return _res;
     }
@@ -130,7 +130,7 @@
                     
     // Enum field (protocolClass)
     plc4c_s7_read_write_cotp_protocol_class protocolClass = plc4c_s7_read_write_cotp_protocol_class_null();
-    _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &protocolClass);
+    _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &protocolClass);
     if(_res != OK) {
       return _res;
     }
@@ -142,7 +142,7 @@
                     
     // Simple Field (destinationReference)
     uint16_t destinationReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &destinationReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &destinationReference);
     if(_res != OK) {
       return _res;
     }
@@ -152,7 +152,7 @@
                     
     // Simple Field (sourceReference)
     uint16_t sourceReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &sourceReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &sourceReference);
     if(_res != OK) {
       return _res;
     }
@@ -162,7 +162,7 @@
                     
     // Enum field (protocolClass)
     plc4c_s7_read_write_cotp_protocol_class protocolClass = plc4c_s7_read_write_cotp_protocol_class_null();
-    _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &protocolClass);
+    _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &protocolClass);
     if(_res != OK) {
       return _res;
     }
@@ -174,7 +174,7 @@
                     
     // Simple Field (destinationReference)
     uint16_t destinationReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &destinationReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &destinationReference);
     if(_res != OK) {
       return _res;
     }
@@ -184,7 +184,7 @@
                     
     // Simple Field (sourceReference)
     uint16_t sourceReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &sourceReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &sourceReference);
     if(_res != OK) {
       return _res;
     }
@@ -194,7 +194,7 @@
                     
     // Enum field (protocolClass)
     plc4c_s7_read_write_cotp_protocol_class protocolClass = plc4c_s7_read_write_cotp_protocol_class_null();
-    _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &protocolClass);
+    _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &protocolClass);
     if(_res != OK) {
       return _res;
     }
@@ -206,7 +206,7 @@
                     
     // Simple Field (destinationReference)
     uint16_t destinationReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &destinationReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &destinationReference);
     if(_res != OK) {
       return _res;
     }
@@ -216,7 +216,7 @@
                     
     // Simple Field (sourceReference)
     uint16_t sourceReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &sourceReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &sourceReference);
     if(_res != OK) {
       return _res;
     }
@@ -228,7 +228,7 @@
                     
     // Simple Field (destinationReference)
     uint16_t destinationReference = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &destinationReference);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &destinationReference);
     if(_res != OK) {
       return _res;
     }
@@ -238,7 +238,7 @@
                     
     // Simple Field (rejectCause)
     uint8_t rejectCause = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &rejectCause);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &rejectCause);
     if(_res != OK) {
       return _res;
     }
@@ -247,7 +247,7 @@
   }
 
   // Array field (parameters)
-  curPos = plc4c_spi_read_get_pos(io) - startPos;
+  curPos = plc4c_spi_read_get_pos(readBuffer) - startPos;
   plc4c_list* parameters = NULL;
   plc4c_utils_list_create(&parameters);
   if(parameters == NULL) {
@@ -256,28 +256,28 @@
   {
     // Length array
     uint8_t _parametersLength = (((headerLength) + (1))) - (curPos);
-    uint8_t parametersEndPos = plc4c_spi_read_get_pos(io) + _parametersLength;
-    while(plc4c_spi_read_get_pos(io) < parametersEndPos) {
+    uint8_t parametersEndPos = plc4c_spi_read_get_pos(readBuffer) + _parametersLength;
+    while(plc4c_spi_read_get_pos(readBuffer) < parametersEndPos) {
       plc4c_s7_read_write_cotp_parameter* _value = NULL;
-      _res = plc4c_s7_read_write_cotp_parameter_parse(io, (((headerLength) + (1))) - (curPos), (void*) &_value);
+      _res = plc4c_s7_read_write_cotp_parameter_parse(readBuffer, (((headerLength) + (1))) - (curPos), (void*) &_value);
       if(_res != OK) {
         return _res;
       }
       plc4c_utils_list_insert_head_value(parameters, _value);
-      curPos = plc4c_spi_read_get_pos(io) - startPos;
+      curPos = plc4c_spi_read_get_pos(readBuffer) - startPos;
     }
   }
   (*_message)->parameters = parameters;
 
   // Optional Field (payload) (Can be skipped, if a given expression evaluates to false)
-  curPos = plc4c_spi_read_get_pos(io) - startPos;
+  curPos = plc4c_spi_read_get_pos(readBuffer) - startPos;
   plc4c_s7_read_write_s7_message* payload = NULL;
   if((curPos) < (cotpLen)) {
     payload = malloc(sizeof(plc4c_s7_read_write_s7_message));
     if(payload == NULL) {
       return NO_MEMORY;
     }
-    _res = plc4c_s7_read_write_s7_message_parse(io, &payload);
+    _res = plc4c_s7_read_write_s7_message_parse(readBuffer, &payload);
     if(_res != OK) {
       return _res;
     }
@@ -289,30 +289,30 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_cotp_packet* _message) {
+plc4c_return_code plc4c_s7_read_write_cotp_packet_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_cotp_packet* _message) {
   plc4c_return_code _res = OK;
 
   // Implicit Field (headerLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message)) - ((((((((_message->payload) != (NULL))) ? plc4c_s7_read_write_s7_message_length_in_bytes(_message->payload) : 0))) + (1))));
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message)) - ((((((((_message->payload) != (NULL))) ? plc4c_s7_read_write_s7_message_length_in_bytes(_message->payload) : 0))) + (1))));
   if(_res != OK) {
     return _res;
   }
 
   // Discriminator Field (tpduCode)
-  plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_cotp_packet_get_discriminator(_message->_type).tpduCode);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_cotp_packet_get_discriminator(_message->_type).tpduCode);
 
   // Switch Field (Depending of the current type, serialize the sub-type elements)
   switch(_message->_type) {
     case plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_data: {
 
       // Simple Field (eot)
-      _res = plc4c_spi_write_bit(io, _message->cotp_packet_data_eot);
+      _res = plc4c_spi_write_bit(writeBuffer, _message->cotp_packet_data_eot);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (tpduRef)
-      _res = plc4c_spi_write_unsigned_byte(io, 7, _message->cotp_packet_data_tpdu_ref);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 7, _message->cotp_packet_data_tpdu_ref);
       if(_res != OK) {
         return _res;
       }
@@ -322,19 +322,19 @@
     case plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_connection_request: {
 
       // Simple Field (destinationReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_connection_request_destination_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_connection_request_destination_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (sourceReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_connection_request_source_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_connection_request_source_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Enum field (protocolClass)
-      _res = plc4c_spi_write_signed_byte(io, 8, _message->cotp_packet_connection_request_protocol_class);
+      _res = plc4c_spi_write_signed_byte(writeBuffer, 8, _message->cotp_packet_connection_request_protocol_class);
       if(_res != OK) {
         return _res;
       }
@@ -344,19 +344,19 @@
     case plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_connection_response: {
 
       // Simple Field (destinationReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_connection_response_destination_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_connection_response_destination_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (sourceReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_connection_response_source_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_connection_response_source_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Enum field (protocolClass)
-      _res = plc4c_spi_write_signed_byte(io, 8, _message->cotp_packet_connection_response_protocol_class);
+      _res = plc4c_spi_write_signed_byte(writeBuffer, 8, _message->cotp_packet_connection_response_protocol_class);
       if(_res != OK) {
         return _res;
       }
@@ -366,19 +366,19 @@
     case plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_disconnect_request: {
 
       // Simple Field (destinationReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_disconnect_request_destination_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_disconnect_request_destination_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (sourceReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_disconnect_request_source_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_disconnect_request_source_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Enum field (protocolClass)
-      _res = plc4c_spi_write_signed_byte(io, 8, _message->cotp_packet_disconnect_request_protocol_class);
+      _res = plc4c_spi_write_signed_byte(writeBuffer, 8, _message->cotp_packet_disconnect_request_protocol_class);
       if(_res != OK) {
         return _res;
       }
@@ -388,13 +388,13 @@
     case plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_disconnect_response: {
 
       // Simple Field (destinationReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_disconnect_response_destination_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_disconnect_response_destination_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (sourceReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_disconnect_response_source_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_disconnect_response_source_reference);
       if(_res != OK) {
         return _res;
       }
@@ -404,13 +404,13 @@
     case plc4c_s7_read_write_cotp_packet_type_plc4c_s7_read_write_cotp_packet_tpdu_error: {
 
       // Simple Field (destinationReference)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_packet_tpdu_error_destination_reference);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_packet_tpdu_error_destination_reference);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (rejectCause)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->cotp_packet_tpdu_error_reject_cause);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->cotp_packet_tpdu_error_reject_cause);
       if(_res != OK) {
         return _res;
       }
@@ -425,7 +425,7 @@
     for(int curItem = 0; curItem < itemCount; curItem++) {
       bool lastItem = curItem == (itemCount - 1);
       plc4c_s7_read_write_cotp_parameter* _value = (plc4c_s7_read_write_cotp_parameter*) plc4c_utils_list_get_value(_message->parameters, curItem);
-      _res = plc4c_s7_read_write_cotp_parameter_serialize(io, (void*) _value);
+      _res = plc4c_s7_read_write_cotp_parameter_serialize(writeBuffer, (void*) _value);
       if(_res != OK) {
         return _res;
       }
@@ -434,7 +434,7 @@
 
   // Optional Field (payload)
   if(_message->payload != NULL) {
-    _res = plc4c_s7_read_write_s7_message_serialize(io, _message->payload);
+    _res = plc4c_s7_read_write_s7_message_serialize(writeBuffer, _message->payload);
     if(_res != OK) {
       return _res;
     }
diff --git a/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c b/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c
index fed2d8d..cec9c00 100644
--- a/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c
+++ b/sandbox/plc4c/generated-sources/s7/src/cotp_parameter.c
@@ -54,8 +54,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer* io, uint8_t rest, plc4c_s7_read_write_cotp_parameter** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_cotp_parameter_parse(plc4c_spi_read_buffer* readBuffer, uint8_t rest, plc4c_s7_read_write_cotp_parameter** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -68,14 +68,14 @@
 
   // Discriminator Field (parameterType) (Used as input to a switch field)
   uint8_t parameterType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &parameterType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &parameterType);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint8_t parameterLength = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &parameterLength);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &parameterLength);
   if(_res != OK) {
     return _res;
   }
@@ -86,7 +86,7 @@
                     
     // Enum field (tpduSize)
     plc4c_s7_read_write_cotp_tpdu_size tpduSize = plc4c_s7_read_write_cotp_tpdu_size_null();
-    _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &tpduSize);
+    _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &tpduSize);
     if(_res != OK) {
       return _res;
     }
@@ -98,7 +98,7 @@
                     
     // Simple Field (tsapId)
     uint16_t tsapId = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &tsapId);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &tsapId);
     if(_res != OK) {
       return _res;
     }
@@ -110,7 +110,7 @@
                     
     // Simple Field (tsapId)
     uint16_t tsapId = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &tsapId);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &tsapId);
     if(_res != OK) {
       return _res;
     }
@@ -122,7 +122,7 @@
                     
     // Simple Field (crc)
     uint8_t crc = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &crc);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &crc);
     if(_res != OK) {
       return _res;
     }
@@ -143,8 +143,8 @@
       uint16_t itemCount = rest;
       for(int curItem = 0; curItem < itemCount; curItem++) {
         
-        uint8_t* _value = malloc(sizeof(uint8_t));
-        _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) _value);
+        char* _value = malloc(sizeof(char));
+        _res = plc4c_spi_read_char(readBuffer, (char*) _value);
         if(_res != OK) {
           return _res;
         }
@@ -158,14 +158,14 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_cotp_parameter* _message) {
+plc4c_return_code plc4c_s7_read_write_cotp_parameter_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_cotp_parameter* _message) {
   plc4c_return_code _res = OK;
 
   // Discriminator Field (parameterType)
-  plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_cotp_parameter_get_discriminator(_message->_type).parameterType);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_cotp_parameter_get_discriminator(_message->_type).parameterType);
 
   // Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, (plc4c_s7_read_write_cotp_parameter_length_in_bytes(_message)) - (2));
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, (plc4c_s7_read_write_cotp_parameter_length_in_bytes(_message)) - (2));
   if(_res != OK) {
     return _res;
   }
@@ -175,7 +175,7 @@
     case plc4c_s7_read_write_cotp_parameter_type_plc4c_s7_read_write_cotp_parameter_tpdu_size: {
 
       // Enum field (tpduSize)
-      _res = plc4c_spi_write_signed_byte(io, 8, _message->cotp_parameter_tpdu_size_tpdu_size);
+      _res = plc4c_spi_write_signed_byte(writeBuffer, 8, _message->cotp_parameter_tpdu_size_tpdu_size);
       if(_res != OK) {
         return _res;
       }
@@ -185,7 +185,7 @@
     case plc4c_s7_read_write_cotp_parameter_type_plc4c_s7_read_write_cotp_parameter_calling_tsap: {
 
       // Simple Field (tsapId)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_parameter_calling_tsap_tsap_id);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_parameter_calling_tsap_tsap_id);
       if(_res != OK) {
         return _res;
       }
@@ -195,7 +195,7 @@
     case plc4c_s7_read_write_cotp_parameter_type_plc4c_s7_read_write_cotp_parameter_called_tsap: {
 
       // Simple Field (tsapId)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->cotp_parameter_called_tsap_tsap_id);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->cotp_parameter_called_tsap_tsap_id);
       if(_res != OK) {
         return _res;
       }
@@ -205,7 +205,7 @@
     case plc4c_s7_read_write_cotp_parameter_type_plc4c_s7_read_write_cotp_parameter_checksum: {
 
       // Simple Field (crc)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->cotp_parameter_checksum_crc);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->cotp_parameter_checksum_crc);
       if(_res != OK) {
         return _res;
       }
@@ -219,8 +219,8 @@
         uint8_t itemCount = plc4c_utils_list_size(_message->cotp_parameter_disconnect_additional_information_data);
         for(int curItem = 0; curItem < itemCount; curItem++) {
 
-          uint8_t* _value = (uint8_t*) plc4c_utils_list_get_value(_message->cotp_parameter_disconnect_additional_information_data, curItem);
-          plc4c_spi_write_unsigned_byte(io, 8, *_value);
+          char* _value = (char*) plc4c_utils_list_get_value(_message->cotp_parameter_disconnect_additional_information_data, curItem);
+          plc4c_spi_write_char(writeBuffer, *_value);
         }
       }
 
diff --git a/sandbox/plc4c/generated-sources/s7/src/data_item.c b/sandbox/plc4c/generated-sources/s7/src/data_item.c
index 69a9a6d..e598830 100644
--- a/sandbox/plc4c/generated-sources/s7/src/data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/data_item.c
@@ -29,8 +29,8 @@
 // Code generated by build-utils. DO NOT EDIT.
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* io, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
-    uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* readBuffer, char* dataProtocolId, int32_t stringLength, plc4c_data** data_item) {
+    uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
     uint16_t curPos;
     plc4c_return_code _res = OK;
 
@@ -39,7 +39,7 @@
                 // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
                 {
                     uint8_t _reserved = 0;
-                    _res = plc4c_spi_read_unsigned_byte(io, 7, (uint8_t*) &_reserved);
+                    _res = plc4c_spi_read_unsigned_byte(readBuffer, 7, (uint8_t*) &_reserved);
                     if(_res != OK) {
                         return _res;
                     }
@@ -50,7 +50,7 @@
 
                 // Simple Field (value)
                 bool value = false;
-                _res = plc4c_spi_read_bit(io, (bool*) &value);
+                _res = plc4c_spi_read_bit(readBuffer, (bool*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -67,7 +67,7 @@
         int itemCount = (int) 8;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             bool* _val = malloc(sizeof(bool) * 1);
-            _res = plc4c_spi_read_bit(io, (bool*) _val);
+            _res = plc4c_spi_read_bit(readBuffer, (bool*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -85,7 +85,7 @@
         int itemCount = (int) 16;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             bool* _val = malloc(sizeof(bool) * 1);
-            _res = plc4c_spi_read_bit(io, (bool*) _val);
+            _res = plc4c_spi_read_bit(readBuffer, (bool*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -103,7 +103,7 @@
         int itemCount = (int) 32;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             bool* _val = malloc(sizeof(bool) * 1);
-            _res = plc4c_spi_read_bit(io, (bool*) _val);
+            _res = plc4c_spi_read_bit(readBuffer, (bool*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -121,7 +121,7 @@
         int itemCount = (int) 64;
         for(int curItem = 0; curItem < itemCount; curItem++) {
             bool* _val = malloc(sizeof(bool) * 1);
-            _res = plc4c_spi_read_bit(io, (bool*) _val);
+            _res = plc4c_spi_read_bit(readBuffer, (bool*) _val);
             if(_res != OK) {
                 return _res;
             }
@@ -134,7 +134,7 @@
 
                 // Simple Field (value)
                 int8_t value = 0;
-                _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) &value);
+                _res = plc4c_spi_read_signed_byte(readBuffer, 8, (int8_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -146,7 +146,7 @@
 
                 // Simple Field (value)
                 uint8_t value = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &value);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -158,7 +158,7 @@
 
                 // Simple Field (value)
                 int16_t value = 0;
-                _res = plc4c_spi_read_signed_short(io, 16, (int16_t*) &value);
+                _res = plc4c_spi_read_signed_short(readBuffer, 16, (int16_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -170,7 +170,7 @@
 
                 // Simple Field (value)
                 uint16_t value = 0;
-                _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+                _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -182,7 +182,7 @@
 
                 // Simple Field (value)
                 int32_t value = 0;
-                _res = plc4c_spi_read_signed_int(io, 32, (int32_t*) &value);
+                _res = plc4c_spi_read_signed_int(readBuffer, 32, (int32_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -194,7 +194,7 @@
 
                 // Simple Field (value)
                 uint32_t value = 0;
-                _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) &value);
+                _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -206,7 +206,7 @@
 
                 // Simple Field (value)
                 int64_t value = 0;
-                _res = plc4c_spi_read_signed_long(io, 64, (int64_t*) &value);
+                _res = plc4c_spi_read_signed_long(readBuffer, 64, (int64_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -218,7 +218,7 @@
 
                 // Simple Field (value)
                 uint64_t value = 0;
-                _res = plc4c_spi_read_unsigned_long(io, 64, (uint64_t*) &value);
+                _res = plc4c_spi_read_unsigned_long(readBuffer, 64, (uint64_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -230,7 +230,7 @@
 
                 // Simple Field (value)
                 float value = 0.0f;
-                _res = plc4c_spi_read_float(io, 32, (float*) &value);
+                _res = plc4c_spi_read_float(readBuffer, 32, (float*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -242,7 +242,7 @@
 
                 // Simple Field (value)
                 double value = 0.0f;
-                _res = plc4c_spi_read_double(io, 64, (double*) &value);
+                _res = plc4c_spi_read_double(readBuffer, 64, (double*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -253,28 +253,28 @@
     } else         if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */
 
                 // Manual Field (value)
-                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(io, "UTF-8"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "UTF-8"));
 
                 *data_item = plc4c_data_create_char_data(value);
 
     } else         if(strcmp(dataProtocolId, "IEC61131_WCHAR") == 0) { /* CHAR */
 
                 // Manual Field (value)
-                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(io, "UTF-16"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "UTF-16"));
 
                 *data_item = plc4c_data_create_char_data(value);
 
     } else         if(strcmp(dataProtocolId, "IEC61131_STRING") == 0) { /* STRING */
 
                 // Manual Field (value)
-                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(io, stringLength, "UTF-8"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-8"));
 
                 *data_item = plc4c_data_create_string_data(stringLength, value);
 
     } else         if(strcmp(dataProtocolId, "IEC61131_WSTRING") == 0) { /* STRING */
 
                 // Manual Field (value)
-                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(io, stringLength, "UTF-16"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "UTF-16"));
 
                 *data_item = plc4c_data_create_string_data(stringLength, value);
 
@@ -282,7 +282,7 @@
 
                 // Simple Field (value)
                 uint32_t value = 0;
-                _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) &value);
+                _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -294,7 +294,7 @@
 
                 // Simple Field (value)
                 uint64_t value = 0;
-                _res = plc4c_spi_read_unsigned_long(io, 64, (uint64_t*) &value);
+                _res = plc4c_spi_read_unsigned_long(readBuffer, 64, (uint64_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -306,7 +306,7 @@
 
                 // Simple Field (value)
                 uint16_t value = 0;
-                _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &value);
+                _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -318,7 +318,7 @@
 
                 // Simple Field (value)
                 uint32_t value = 0;
-                _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) &value);
+                _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &value);
                 if(_res != OK) {
                     return _res;
                 }
@@ -330,7 +330,7 @@
 
                 // Simple Field (year)
                 uint16_t year = 0;
-                _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &year);
+                _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &year);
                 if(_res != OK) {
                     return _res;
                 }
@@ -341,7 +341,7 @@
 
                 // Simple Field (month)
                 uint8_t month = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &month);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &month);
                 if(_res != OK) {
                     return _res;
                 }
@@ -352,7 +352,7 @@
 
                 // Simple Field (day)
                 uint8_t day = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &day);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &day);
                 if(_res != OK) {
                     return _res;
                 }
@@ -363,7 +363,7 @@
 
                 // Simple Field (dayOfWeek)
                 uint8_t dayOfWeek = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &dayOfWeek);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &dayOfWeek);
                 if(_res != OK) {
                     return _res;
                 }
@@ -374,7 +374,7 @@
 
                 // Simple Field (hour)
                 uint8_t hour = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &hour);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &hour);
                 if(_res != OK) {
                     return _res;
                 }
@@ -385,7 +385,7 @@
 
                 // Simple Field (minutes)
                 uint8_t minutes = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &minutes);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &minutes);
                 if(_res != OK) {
                     return _res;
                 }
@@ -396,7 +396,7 @@
 
                 // Simple Field (seconds)
                 uint8_t seconds = 0;
-                _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &seconds);
+                _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &seconds);
                 if(_res != OK) {
                     return _res;
                 }
@@ -407,7 +407,7 @@
 
                 // Simple Field (nanos)
                 uint32_t nanos = 0;
-                _res = plc4c_spi_read_unsigned_int(io, 32, (uint32_t*) &nanos);
+                _res = plc4c_spi_read_unsigned_int(readBuffer, 32, (uint32_t*) &nanos);
                 if(_res != OK) {
                     return _res;
                 }
@@ -420,7 +420,7 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_data** data_item) {
+plc4c_return_code plc4c_s7_read_write_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_data** data_item) {
   plc4c_return_code _res = OK;
 
   return OK;
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_address.c b/sandbox/plc4c/generated-sources/s7/src/s7_address.c
index 2084c4c..767c174 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_address.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_address.c
@@ -46,8 +46,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_address** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_address_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_address** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -60,7 +60,7 @@
 
   // Discriminator Field (addressType) (Used as input to a switch field)
   uint8_t addressType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &addressType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &addressType);
   if(_res != OK) {
     return _res;
   }
@@ -73,7 +73,7 @@
     plc4c_s7_read_write_transport_size transportSize = plc4c_s7_read_write_transport_size_null();
     {
       uint8_t _constantValue = 0;
-      _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &_constantValue);
+      _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_constantValue);
       if(_res != OK) {
         return _res;
       }
@@ -85,7 +85,7 @@
                     
     // Simple Field (numberOfElements)
     uint16_t numberOfElements = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &numberOfElements);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &numberOfElements);
     if(_res != OK) {
       return _res;
     }
@@ -95,7 +95,7 @@
                     
     // Simple Field (dbNumber)
     uint16_t dbNumber = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &dbNumber);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &dbNumber);
     if(_res != OK) {
       return _res;
     }
@@ -105,7 +105,7 @@
                     
     // Enum field (area)
     plc4c_s7_read_write_memory_area area = plc4c_s7_read_write_memory_area_null();
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &area);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &area);
     if(_res != OK) {
       return _res;
     }
@@ -116,7 +116,7 @@
     // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
     {
       uint8_t _reserved = 0;
-      _res = plc4c_spi_read_unsigned_byte(io, 5, (uint8_t*) &_reserved);
+      _res = plc4c_spi_read_unsigned_byte(readBuffer, 5, (uint8_t*) &_reserved);
       if(_res != OK) {
         return _res;
       }
@@ -129,7 +129,7 @@
                     
     // Simple Field (byteAddress)
     uint16_t byteAddress = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &byteAddress);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &byteAddress);
     if(_res != OK) {
       return _res;
     }
@@ -139,7 +139,7 @@
                     
     // Simple Field (bitAddress)
     uint8_t bitAddress = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 3, (uint8_t*) &bitAddress);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 3, (uint8_t*) &bitAddress);
     if(_res != OK) {
       return _res;
     }
@@ -150,54 +150,54 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_address_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_address* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_address_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_address* _message) {
   plc4c_return_code _res = OK;
 
   // Discriminator Field (addressType)
-  plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_s7_address_get_discriminator(_message->_type).addressType);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_s7_address_get_discriminator(_message->_type).addressType);
 
   // Switch Field (Depending of the current type, serialize the sub-type elements)
   switch(_message->_type) {
     case plc4c_s7_read_write_s7_address_type_plc4c_s7_read_write_s7_address_any: {
 
       // Enum field (transportSize)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_transport_size_get_code(_message->s7_address_any_transport_size));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_transport_size_get_code(_message->s7_address_any_transport_size));
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (numberOfElements)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->s7_address_any_number_of_elements);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->s7_address_any_number_of_elements);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (dbNumber)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->s7_address_any_db_number);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->s7_address_any_db_number);
       if(_res != OK) {
         return _res;
       }
 
       // Enum field (area)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_address_any_area);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_address_any_area);
       if(_res != OK) {
         return _res;
       }
 
       // Reserved Field
-      _res = plc4c_spi_write_unsigned_byte(io, 5, 0x00);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 5, 0x00);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (byteAddress)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->s7_address_any_byte_address);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->s7_address_any_byte_address);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (bitAddress)
-      _res = plc4c_spi_write_unsigned_byte(io, 3, _message->s7_address_any_bit_address);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 3, _message->s7_address_any_bit_address);
       if(_res != OK) {
         return _res;
       }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_message.c b/sandbox/plc4c/generated-sources/s7/src/s7_message.c
index 931dae9..b6ef0bb 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_message.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_message.c
@@ -58,8 +58,8 @@
 }
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_message** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_message_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_message** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -71,7 +71,7 @@
 
   // Const Field (protocolId)
   uint8_t protocolId = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &protocolId);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &protocolId);
   if(_res != OK) {
     return _res;
   }
@@ -83,7 +83,7 @@
 
   // Discriminator Field (messageType) (Used as input to a switch field)
   uint8_t messageType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &messageType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &messageType);
   if(_res != OK) {
     return _res;
   }
@@ -91,7 +91,7 @@
   // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
   {
     uint16_t _reserved = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &_reserved);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &_reserved);
     if(_res != OK) {
       return _res;
     }
@@ -102,7 +102,7 @@
 
   // Simple Field (tpduReference)
   uint16_t tpduReference = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &tpduReference);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &tpduReference);
   if(_res != OK) {
     return _res;
   }
@@ -110,14 +110,14 @@
 
   // Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t parameterLength = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &parameterLength);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &parameterLength);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (payloadLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t payloadLength = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &payloadLength);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &payloadLength);
   if(_res != OK) {
     return _res;
   }
@@ -131,7 +131,7 @@
                     
     // Simple Field (errorClass)
     uint8_t errorClass = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &errorClass);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &errorClass);
     if(_res != OK) {
       return _res;
     }
@@ -141,7 +141,7 @@
                     
     // Simple Field (errorCode)
     uint8_t errorCode = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &errorCode);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &errorCode);
     if(_res != OK) {
       return _res;
     }
@@ -153,7 +153,7 @@
                     
     // Simple Field (errorClass)
     uint8_t errorClass = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &errorClass);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &errorClass);
     if(_res != OK) {
       return _res;
     }
@@ -163,7 +163,7 @@
                     
     // Simple Field (errorCode)
     uint8_t errorCode = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &errorCode);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &errorCode);
     if(_res != OK) {
       return _res;
     }
@@ -181,7 +181,7 @@
     if(parameter == NULL) {
       return NO_MEMORY;
     }
-    _res = plc4c_s7_read_write_s7_parameter_parse(io, messageType, &parameter);
+    _res = plc4c_s7_read_write_s7_parameter_parse(readBuffer, messageType, &parameter);
     if(_res != OK) {
       return _res;
     }
@@ -197,7 +197,7 @@
     if(payload == NULL) {
       return NO_MEMORY;
     }
-    _res = plc4c_s7_read_write_s7_payload_parse(io, messageType, parameter, &payload);
+    _res = plc4c_s7_read_write_s7_payload_parse(readBuffer, messageType, parameter, &payload);
     if(_res != OK) {
       return _res;
     }
@@ -209,35 +209,35 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_message* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_message_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_message* _message) {
   plc4c_return_code _res = OK;
 
   // Const Field (protocolId)
-  plc4c_spi_write_unsigned_byte(io, 8, PLC4C_S7_READ_WRITE_S7_MESSAGE_PROTOCOL_ID());
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, PLC4C_S7_READ_WRITE_S7_MESSAGE_PROTOCOL_ID());
 
   // Discriminator Field (messageType)
-  plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_s7_message_get_discriminator(_message->_type).messageType);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_s7_message_get_discriminator(_message->_type).messageType);
 
   // Reserved Field
-  _res = plc4c_spi_write_unsigned_short(io, 16, 0x0000);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, 0x0000);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (tpduReference)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->tpdu_reference);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->tpdu_reference);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (parameterLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (((_message->parameter) != (NULL)) ? plc4c_s7_read_write_s7_parameter_length_in_bytes(_message->parameter) : 0));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (((_message->parameter) != (NULL)) ? plc4c_s7_read_write_s7_parameter_length_in_bytes(_message->parameter) : 0));
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (payloadLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (((_message->payload) != (NULL)) ? plc4c_s7_read_write_s7_payload_length_in_bytes(_message->payload) : 0));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (((_message->payload) != (NULL)) ? plc4c_s7_read_write_s7_payload_length_in_bytes(_message->payload) : 0));
   if(_res != OK) {
     return _res;
   }
@@ -251,13 +251,13 @@
     case plc4c_s7_read_write_s7_message_type_plc4c_s7_read_write_s7_message_response: {
 
       // Simple Field (errorClass)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_message_response_error_class);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_message_response_error_class);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (errorCode)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_message_response_error_code);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_message_response_error_code);
       if(_res != OK) {
         return _res;
       }
@@ -267,13 +267,13 @@
     case plc4c_s7_read_write_s7_message_type_plc4c_s7_read_write_s7_message_response_data: {
 
       // Simple Field (errorClass)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_message_response_data_error_class);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_message_response_data_error_class);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (errorCode)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_message_response_data_error_code);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_message_response_data_error_code);
       if(_res != OK) {
         return _res;
       }
@@ -288,7 +288,7 @@
 
   // Optional Field (parameter)
   if(_message->parameter != NULL) {
-    _res = plc4c_s7_read_write_s7_parameter_serialize(io, _message->parameter);
+    _res = plc4c_s7_read_write_s7_parameter_serialize(writeBuffer, _message->parameter);
     if(_res != OK) {
       return _res;
     }
@@ -296,7 +296,7 @@
 
   // Optional Field (payload)
   if(_message->payload != NULL) {
-    _res = plc4c_s7_read_write_s7_payload_serialize(io, _message->payload);
+    _res = plc4c_s7_read_write_s7_payload_serialize(writeBuffer, _message->payload);
     if(_res != OK) {
       return _res;
     }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c b/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c
index e01be24..fc95cec 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_parameter.c
@@ -56,8 +56,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer* io, uint8_t messageType, plc4c_s7_read_write_s7_parameter** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_parameter_parse(plc4c_spi_read_buffer* readBuffer, uint8_t messageType, plc4c_s7_read_write_s7_parameter** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -70,7 +70,7 @@
 
   // Discriminator Field (parameterType) (Used as input to a switch field)
   uint8_t parameterType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &parameterType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &parameterType);
   if(_res != OK) {
     return _res;
   }
@@ -82,7 +82,7 @@
     // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
     {
       uint8_t _reserved = 0;
-      _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &_reserved);
+      _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_reserved);
       if(_res != OK) {
         return _res;
       }
@@ -95,7 +95,7 @@
                     
     // Simple Field (maxAmqCaller)
     uint16_t maxAmqCaller = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &maxAmqCaller);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &maxAmqCaller);
     if(_res != OK) {
       return _res;
     }
@@ -105,7 +105,7 @@
                     
     // Simple Field (maxAmqCallee)
     uint16_t maxAmqCallee = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &maxAmqCallee);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &maxAmqCallee);
     if(_res != OK) {
       return _res;
     }
@@ -115,7 +115,7 @@
                     
     // Simple Field (pduLength)
     uint16_t pduLength = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &pduLength);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &pduLength);
     if(_res != OK) {
       return _res;
     }
@@ -127,7 +127,7 @@
                     
     // Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t numItems = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &numItems);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &numItems);
     if(_res != OK) {
       return _res;
     }
@@ -146,7 +146,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_s7_var_request_parameter_item* _value = NULL;
-        _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(io, (void*) &_value);
+        _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -161,7 +161,7 @@
                     
     // Simple Field (numItems)
     uint8_t numItems = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &numItems);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &numItems);
     if(_res != OK) {
       return _res;
     }
@@ -173,7 +173,7 @@
                     
     // Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t numItems = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &numItems);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &numItems);
     if(_res != OK) {
       return _res;
     }
@@ -192,7 +192,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_s7_var_request_parameter_item* _value = NULL;
-        _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(io, (void*) &_value);
+        _res = plc4c_s7_read_write_s7_var_request_parameter_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -207,7 +207,7 @@
                     
     // Simple Field (numItems)
     uint8_t numItems = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &numItems);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &numItems);
     if(_res != OK) {
       return _res;
     }
@@ -219,7 +219,7 @@
                     
     // Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t numItems = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &numItems);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &numItems);
     if(_res != OK) {
       return _res;
     }
@@ -238,7 +238,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_s7_parameter_user_data_item* _value = NULL;
-        _res = plc4c_s7_read_write_s7_parameter_user_data_item_parse(io, (void*) &_value);
+        _res = plc4c_s7_read_write_s7_parameter_user_data_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -252,36 +252,36 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_parameter* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_parameter_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_parameter* _message) {
   plc4c_return_code _res = OK;
 
   // Discriminator Field (parameterType)
-  plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_s7_parameter_get_discriminator(_message->_type).parameterType);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_s7_parameter_get_discriminator(_message->_type).parameterType);
 
   // Switch Field (Depending of the current type, serialize the sub-type elements)
   switch(_message->_type) {
     case plc4c_s7_read_write_s7_parameter_type_plc4c_s7_read_write_s7_parameter_setup_communication: {
 
       // Reserved Field
-      _res = plc4c_spi_write_unsigned_byte(io, 8, 0x00);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, 0x00);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (maxAmqCaller)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->s7_parameter_setup_communication_max_amq_caller);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->s7_parameter_setup_communication_max_amq_caller);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (maxAmqCallee)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->s7_parameter_setup_communication_max_amq_callee);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->s7_parameter_setup_communication_max_amq_callee);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (pduLength)
-      _res = plc4c_spi_write_unsigned_short(io, 16, _message->s7_parameter_setup_communication_pdu_length);
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->s7_parameter_setup_communication_pdu_length);
       if(_res != OK) {
         return _res;
       }
@@ -291,7 +291,7 @@
     case plc4c_s7_read_write_s7_parameter_type_plc4c_s7_read_write_s7_parameter_read_var_request: {
 
       // Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_read_var_request_items));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_read_var_request_items));
       if(_res != OK) {
         return _res;
       }
@@ -302,7 +302,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_s7_var_request_parameter_item* _value = (plc4c_s7_read_write_s7_var_request_parameter_item*) plc4c_utils_list_get_value(_message->s7_parameter_read_var_request_items, curItem);
-          _res = plc4c_s7_read_write_s7_var_request_parameter_item_serialize(io, (void*) _value);
+          _res = plc4c_s7_read_write_s7_var_request_parameter_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
@@ -314,7 +314,7 @@
     case plc4c_s7_read_write_s7_parameter_type_plc4c_s7_read_write_s7_parameter_read_var_response: {
 
       // Simple Field (numItems)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_parameter_read_var_response_num_items);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_parameter_read_var_response_num_items);
       if(_res != OK) {
         return _res;
       }
@@ -324,7 +324,7 @@
     case plc4c_s7_read_write_s7_parameter_type_plc4c_s7_read_write_s7_parameter_write_var_request: {
 
       // Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_write_var_request_items));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_write_var_request_items));
       if(_res != OK) {
         return _res;
       }
@@ -335,7 +335,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_s7_var_request_parameter_item* _value = (plc4c_s7_read_write_s7_var_request_parameter_item*) plc4c_utils_list_get_value(_message->s7_parameter_write_var_request_items, curItem);
-          _res = plc4c_s7_read_write_s7_var_request_parameter_item_serialize(io, (void*) _value);
+          _res = plc4c_s7_read_write_s7_var_request_parameter_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
@@ -347,7 +347,7 @@
     case plc4c_s7_read_write_s7_parameter_type_plc4c_s7_read_write_s7_parameter_write_var_response: {
 
       // Simple Field (numItems)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_parameter_write_var_response_num_items);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_parameter_write_var_response_num_items);
       if(_res != OK) {
         return _res;
       }
@@ -357,7 +357,7 @@
     case plc4c_s7_read_write_s7_parameter_type_plc4c_s7_read_write_s7_parameter_user_data: {
 
       // Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_user_data_items));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_spi_evaluation_helper_count(_message->s7_parameter_user_data_items));
       if(_res != OK) {
         return _res;
       }
@@ -368,7 +368,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_s7_parameter_user_data_item* _value = (plc4c_s7_read_write_s7_parameter_user_data_item*) plc4c_utils_list_get_value(_message->s7_parameter_user_data_items, curItem);
-          _res = plc4c_s7_read_write_s7_parameter_user_data_item_serialize(io, (void*) _value);
+          _res = plc4c_s7_read_write_s7_parameter_user_data_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
index 7a8d6a0..ae7828a 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_parameter_user_data_item.c
@@ -46,8 +46,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_parameter_user_data_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_parameter_user_data_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -60,7 +60,7 @@
 
   // Discriminator Field (itemType) (Used as input to a switch field)
   uint8_t itemType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &itemType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &itemType);
   if(_res != OK) {
     return _res;
   }
@@ -71,7 +71,7 @@
                     
     // Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t itemLength = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &itemLength);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &itemLength);
     if(_res != OK) {
       return _res;
     }
@@ -80,7 +80,7 @@
                     
     // Simple Field (method)
     uint8_t method = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &method);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &method);
     if(_res != OK) {
       return _res;
     }
@@ -90,7 +90,7 @@
                     
     // Simple Field (cpuFunctionType)
     uint8_t cpuFunctionType = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 4, (uint8_t*) &cpuFunctionType);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 4, (uint8_t*) &cpuFunctionType);
     if(_res != OK) {
       return _res;
     }
@@ -100,7 +100,7 @@
                     
     // Simple Field (cpuFunctionGroup)
     uint8_t cpuFunctionGroup = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 4, (uint8_t*) &cpuFunctionGroup);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 4, (uint8_t*) &cpuFunctionGroup);
     if(_res != OK) {
       return _res;
     }
@@ -110,7 +110,7 @@
                     
     // Simple Field (cpuSubfunction)
     uint8_t cpuSubfunction = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &cpuSubfunction);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &cpuSubfunction);
     if(_res != OK) {
       return _res;
     }
@@ -120,7 +120,7 @@
                     
     // Simple Field (sequenceNumber)
     uint8_t sequenceNumber = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &sequenceNumber);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &sequenceNumber);
     if(_res != OK) {
       return _res;
     }
@@ -136,7 +136,7 @@
         return NO_MEMORY;
       }
       *dataUnitReferenceNumber = 0;
-      _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) dataUnitReferenceNumber);
+      _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) dataUnitReferenceNumber);
       if(_res != OK) {
         return _res;
       }
@@ -155,7 +155,7 @@
         return NO_MEMORY;
       }
       *lastDataUnit = 0;
-      _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) lastDataUnit);
+      _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) lastDataUnit);
       if(_res != OK) {
         return _res;
       }
@@ -174,7 +174,7 @@
         return NO_MEMORY;
       }
       *errorCode = 0;
-      _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) errorCode);
+      _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) errorCode);
       if(_res != OK) {
         return _res;
       }
@@ -188,55 +188,55 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_parameter_user_data_item* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_parameter_user_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_parameter_user_data_item* _message) {
   plc4c_return_code _res = OK;
 
   // Discriminator Field (itemType)
-  plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_s7_parameter_user_data_item_get_discriminator(_message->_type).itemType);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_s7_parameter_user_data_item_get_discriminator(_message->_type).itemType);
 
   // Switch Field (Depending of the current type, serialize the sub-type elements)
   switch(_message->_type) {
     case plc4c_s7_read_write_s7_parameter_user_data_item_type_plc4c_s7_read_write_s7_parameter_user_data_item_cpu_functions: {
 
       // Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, (plc4c_s7_read_write_s7_parameter_user_data_item_length_in_bytes(_message)) - (2));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, (plc4c_s7_read_write_s7_parameter_user_data_item_length_in_bytes(_message)) - (2));
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (method)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_parameter_user_data_item_cpu_functions_method);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_parameter_user_data_item_cpu_functions_method);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (cpuFunctionType)
-      _res = plc4c_spi_write_unsigned_byte(io, 4, _message->s7_parameter_user_data_item_cpu_functions_cpu_function_type);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 4, _message->s7_parameter_user_data_item_cpu_functions_cpu_function_type);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (cpuFunctionGroup)
-      _res = plc4c_spi_write_unsigned_byte(io, 4, _message->s7_parameter_user_data_item_cpu_functions_cpu_function_group);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 4, _message->s7_parameter_user_data_item_cpu_functions_cpu_function_group);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (cpuSubfunction)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_parameter_user_data_item_cpu_functions_cpu_subfunction);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_parameter_user_data_item_cpu_functions_cpu_subfunction);
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (sequenceNumber)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, _message->s7_parameter_user_data_item_cpu_functions_sequence_number);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->s7_parameter_user_data_item_cpu_functions_sequence_number);
       if(_res != OK) {
         return _res;
       }
 
       // Optional Field (dataUnitReferenceNumber)
       if(_message->s7_parameter_user_data_item_cpu_functions_data_unit_reference_number != NULL) {
-        _res = plc4c_spi_write_unsigned_byte(io, 8, *_message->s7_parameter_user_data_item_cpu_functions_data_unit_reference_number);
+        _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, *_message->s7_parameter_user_data_item_cpu_functions_data_unit_reference_number);
         if(_res != OK) {
           return _res;
         }
@@ -244,7 +244,7 @@
 
       // Optional Field (lastDataUnit)
       if(_message->s7_parameter_user_data_item_cpu_functions_last_data_unit != NULL) {
-        _res = plc4c_spi_write_unsigned_byte(io, 8, *_message->s7_parameter_user_data_item_cpu_functions_last_data_unit);
+        _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, *_message->s7_parameter_user_data_item_cpu_functions_last_data_unit);
         if(_res != OK) {
           return _res;
         }
@@ -252,7 +252,7 @@
 
       // Optional Field (errorCode)
       if(_message->s7_parameter_user_data_item_cpu_functions_error_code != NULL) {
-        _res = plc4c_spi_write_unsigned_short(io, 16, *_message->s7_parameter_user_data_item_cpu_functions_error_code);
+        _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, *_message->s7_parameter_user_data_item_cpu_functions_error_code);
         if(_res != OK) {
           return _res;
         }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_payload.c b/sandbox/plc4c/generated-sources/s7/src/s7_payload.c
index eb4fda5..fa4cbde 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_payload.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_payload.c
@@ -52,8 +52,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* io, uint8_t messageType, plc4c_s7_read_write_s7_parameter* parameter, plc4c_s7_read_write_s7_payload** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_payload_parse(plc4c_spi_read_buffer* readBuffer, uint8_t messageType, plc4c_s7_read_write_s7_parameter* parameter, plc4c_s7_read_write_s7_payload** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -79,7 +79,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_s7_var_payload_data_item* _value = NULL;
-        _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(io, lastItem, (void*) &_value);
+        _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(readBuffer, lastItem, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -104,7 +104,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_s7_var_payload_data_item* _value = NULL;
-        _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(io, lastItem, (void*) &_value);
+        _res = plc4c_s7_read_write_s7_var_payload_data_item_parse(readBuffer, lastItem, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -129,7 +129,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_s7_var_payload_status_item* _value = NULL;
-        _res = plc4c_s7_read_write_s7_var_payload_status_item_parse(io, (void*) &_value);
+        _res = plc4c_s7_read_write_s7_var_payload_status_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -154,7 +154,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_s7_payload_user_data_item* _value = NULL;
-        _res = plc4c_s7_read_write_s7_payload_user_data_item_parse(io, ((plc4c_s7_read_write_s7_parameter_user_data_item*) (plc4c_utils_list_get_value(((plc4c_s7_read_write_s7_parameter*) (parameter))->s7_parameter_user_data_items, 0)))->s7_parameter_user_data_item_cpu_functions_cpu_function_type, (void*) &_value);
+        _res = plc4c_s7_read_write_s7_payload_user_data_item_parse(readBuffer, ((plc4c_s7_read_write_s7_parameter_user_data_item*) (plc4c_utils_list_get_value(((plc4c_s7_read_write_s7_parameter*) (parameter))->s7_parameter_user_data_items, 0)))->s7_parameter_user_data_item_cpu_functions_cpu_function_type, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -168,7 +168,7 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_payload_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_payload* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_payload_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_payload* _message) {
   plc4c_return_code _res = OK;
 
   // Switch Field (Depending of the current type, serialize the sub-type elements)
@@ -181,7 +181,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_s7_var_payload_data_item* _value = (plc4c_s7_read_write_s7_var_payload_data_item*) plc4c_utils_list_get_value(_message->s7_payload_read_var_response_items, curItem);
-          _res = plc4c_s7_read_write_s7_var_payload_data_item_serialize(io, (void*) _value, lastItem);
+          _res = plc4c_s7_read_write_s7_var_payload_data_item_serialize(writeBuffer, (void*) _value, lastItem);
           if(_res != OK) {
             return _res;
           }
@@ -198,7 +198,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_s7_var_payload_data_item* _value = (plc4c_s7_read_write_s7_var_payload_data_item*) plc4c_utils_list_get_value(_message->s7_payload_write_var_request_items, curItem);
-          _res = plc4c_s7_read_write_s7_var_payload_data_item_serialize(io, (void*) _value, lastItem);
+          _res = plc4c_s7_read_write_s7_var_payload_data_item_serialize(writeBuffer, (void*) _value, lastItem);
           if(_res != OK) {
             return _res;
           }
@@ -215,7 +215,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_s7_var_payload_status_item* _value = (plc4c_s7_read_write_s7_var_payload_status_item*) plc4c_utils_list_get_value(_message->s7_payload_write_var_response_items, curItem);
-          _res = plc4c_s7_read_write_s7_var_payload_status_item_serialize(io, (void*) _value);
+          _res = plc4c_s7_read_write_s7_var_payload_status_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
@@ -232,7 +232,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_s7_payload_user_data_item* _value = (plc4c_s7_read_write_s7_payload_user_data_item*) plc4c_utils_list_get_value(_message->s7_payload_user_data_items, curItem);
-          _res = plc4c_s7_read_write_s7_payload_user_data_item_serialize(io, (void*) _value);
+          _res = plc4c_s7_read_write_s7_payload_user_data_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
index eba4c59..4fea37c 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
@@ -54,8 +54,8 @@
 }
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_read_buffer* io, uint8_t cpuFunctionType, plc4c_s7_read_write_s7_payload_user_data_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_read_buffer* readBuffer, uint8_t cpuFunctionType, plc4c_s7_read_write_s7_payload_user_data_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -67,7 +67,7 @@
 
   // Enum field (returnCode)
   plc4c_s7_read_write_data_transport_error_code returnCode = plc4c_s7_read_write_data_transport_error_code_null();
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &returnCode);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &returnCode);
   if(_res != OK) {
     return _res;
   }
@@ -75,7 +75,7 @@
 
   // Enum field (transportSize)
   plc4c_s7_read_write_data_transport_size transportSize = plc4c_s7_read_write_data_transport_size_null();
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &transportSize);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &transportSize);
   if(_res != OK) {
     return _res;
   }
@@ -83,14 +83,14 @@
 
   // Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t dataLength = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &dataLength);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &dataLength);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (szlId)
   plc4c_s7_read_write_szl_id* szlId;
-  _res = plc4c_s7_read_write_szl_id_parse(io, (void*) &szlId);
+  _res = plc4c_s7_read_write_szl_id_parse(readBuffer, (void*) &szlId);
   if(_res != OK) {
     return _res;
   }
@@ -98,7 +98,7 @@
 
   // Simple Field (szlIndex)
   uint16_t szlIndex = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &szlIndex);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &szlIndex);
   if(_res != OK) {
     return _res;
   }
@@ -113,7 +113,7 @@
                     
     // Const Field (szlItemLength)
     uint16_t szlItemLength = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &szlItemLength);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &szlItemLength);
     if(_res != OK) {
       return _res;
     }
@@ -126,7 +126,7 @@
                     
     // Implicit Field (szlItemCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint16_t szlItemCount = 0;
-    _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &szlItemCount);
+    _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &szlItemCount);
     if(_res != OK) {
       return _res;
     }
@@ -145,7 +145,7 @@
       for(int curItem = 0; curItem < itemCount; curItem++) {
         bool lastItem = curItem == (itemCount - 1);
         plc4c_s7_read_write_szl_data_tree_item* _value = NULL;
-        _res = plc4c_s7_read_write_szl_data_tree_item_parse(io, (void*) &_value);
+        _res = plc4c_s7_read_write_szl_data_tree_item_parse(readBuffer, (void*) &_value);
         if(_res != OK) {
           return _res;
         }
@@ -159,35 +159,35 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_payload_user_data_item* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_payload_user_data_item* _message) {
   plc4c_return_code _res = OK;
 
   // Enum field (returnCode)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->return_code);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->return_code);
   if(_res != OK) {
     return _res;
   }
 
   // Enum field (transportSize)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->transport_size);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->transport_size);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (plc4c_s7_read_write_s7_payload_user_data_item_length_in_bytes(_message)) - (4));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (plc4c_s7_read_write_s7_payload_user_data_item_length_in_bytes(_message)) - (4));
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (szlId)
-  _res = plc4c_s7_read_write_szl_id_serialize(io, _message->szl_id);
+  _res = plc4c_s7_read_write_szl_id_serialize(writeBuffer, _message->szl_id);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (szlIndex)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->szl_index);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->szl_index);
   if(_res != OK) {
     return _res;
   }
@@ -201,10 +201,10 @@
     case plc4c_s7_read_write_s7_payload_user_data_item_type_plc4c_s7_read_write_s7_payload_user_data_item_cpu_function_read_szl_response: {
 
       // Const Field (szlItemLength)
-      plc4c_spi_write_unsigned_short(io, 16, PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_READ_SZL_RESPONSE_SZL_ITEM_LENGTH());
+      plc4c_spi_write_unsigned_short(writeBuffer, 16, PLC4C_S7_READ_WRITE_S7_PAYLOAD_USER_DATA_ITEM_CPU_FUNCTION_READ_SZL_RESPONSE_SZL_ITEM_LENGTH());
 
       // Implicit Field (szlItemCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_short(io, 16, plc4c_spi_evaluation_helper_count(_message->s7_payload_user_data_item_cpu_function_read_szl_response_items));
+      _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, plc4c_spi_evaluation_helper_count(_message->s7_payload_user_data_item_cpu_function_read_szl_response_items));
       if(_res != OK) {
         return _res;
       }
@@ -215,7 +215,7 @@
         for(int curItem = 0; curItem < itemCount; curItem++) {
           bool lastItem = curItem == (itemCount - 1);
           plc4c_s7_read_write_szl_data_tree_item* _value = (plc4c_s7_read_write_szl_data_tree_item*) plc4c_utils_list_get_value(_message->s7_payload_user_data_item_cpu_function_read_szl_response_items, curItem);
-          _res = plc4c_s7_read_write_szl_data_tree_item_serialize(io, (void*) _value);
+          _res = plc4c_s7_read_write_szl_data_tree_item_serialize(writeBuffer, (void*) _value);
           if(_res != OK) {
             return _res;
           }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c
index 29d3e9f..dcd5533 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_data_item.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_read_buffer* io, bool lastItem, plc4c_s7_read_write_s7_var_payload_data_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_parse(plc4c_spi_read_buffer* readBuffer, bool lastItem, plc4c_s7_read_write_s7_var_payload_data_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Enum field (returnCode)
   plc4c_s7_read_write_data_transport_error_code returnCode = plc4c_s7_read_write_data_transport_error_code_null();
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &returnCode);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &returnCode);
   if(_res != OK) {
     return _res;
   }
@@ -46,7 +46,7 @@
 
   // Enum field (transportSize)
   plc4c_s7_read_write_data_transport_size transportSize = plc4c_s7_read_write_data_transport_size_null();
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &transportSize);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &transportSize);
   if(_res != OK) {
     return _res;
   }
@@ -54,7 +54,7 @@
 
   // Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t dataLength = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &dataLength);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &dataLength);
   if(_res != OK) {
     return _res;
   }
@@ -70,8 +70,8 @@
     uint16_t itemCount = ((plc4c_s7_read_write_data_transport_size_get_size_in_bits(transportSize)) ? plc4c_spi_evaluation_helper_ceil((dataLength) / (8.0)) : dataLength);
     for(int curItem = 0; curItem < itemCount; curItem++) {
       
-      int8_t* _value = malloc(sizeof(int8_t));
-      _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+      char* _value = malloc(sizeof(char));
+      _res = plc4c_spi_read_char(readBuffer, (char*) _value);
       if(_res != OK) {
         return _res;
       }
@@ -82,11 +82,11 @@
 
   // Padding Field (padding)
   {
-    int _timesPadding = (int) ((plc4c_spi_read_has_more(io, 8)) && (((lastItem) ? 0 : (plc4c_spi_evaluation_helper_count(data)) % (2))));
+    int _timesPadding = (int) ((plc4c_spi_read_has_more(readBuffer, 8)) && (((lastItem) ? 0 : (plc4c_spi_evaluation_helper_count(data)) % (2))));
     while (_timesPadding-- > 0) {
       // Just read the padding data and ignore it
       uint8_t _paddingValue = 0;
-      _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &_paddingValue);
+      _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_paddingValue);
       if(_res != OK) {
         return _res;
       }
@@ -96,23 +96,23 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_var_payload_data_item* _message, bool lastItem) {
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_data_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_var_payload_data_item* _message, bool lastItem) {
   plc4c_return_code _res = OK;
 
   // Enum field (returnCode)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->return_code);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->return_code);
   if(_res != OK) {
     return _res;
   }
 
   // Enum field (transportSize)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->transport_size);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->transport_size);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (plc4c_spi_evaluation_helper_count(_message->data)) * ((((((_message->transport_size) == (plc4c_s7_read_write_data_transport_size_BIT))) ? 1 : (((plc4c_s7_read_write_data_transport_size_get_size_in_bits(_message->transport_size)) ? 8 : 1))))));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (plc4c_spi_evaluation_helper_count(_message->data)) * ((((((_message->transport_size) == (plc4c_s7_read_write_data_transport_size_BIT))) ? 1 : (((plc4c_s7_read_write_data_transport_size_get_size_in_bits(_message->transport_size)) ? 8 : 1))))));
   if(_res != OK) {
     return _res;
   }
@@ -122,8 +122,8 @@
     uint8_t itemCount = plc4c_utils_list_size(_message->data);
     for(int curItem = 0; curItem < itemCount; curItem++) {
 
-      int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->data, curItem);
-      plc4c_spi_write_signed_byte(io, 8, *_value);
+      char* _value = (char*) plc4c_utils_list_get_value(_message->data, curItem);
+      plc4c_spi_write_char(writeBuffer, *_value);
     }
   }
 
@@ -132,7 +132,7 @@
     int _timesPadding = (int) (((lastItem) ? 0 : (plc4c_spi_evaluation_helper_count(_message->data)) % (2)));
     while (_timesPadding-- > 0) {
       // Just output the default padding data
-      _res = plc4c_spi_write_unsigned_byte(io, 8, 0);
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, 0);
       if(_res != OK) {
         return _res;
       }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c
index 9fb1c7e..3d268d1 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_var_payload_status_item.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_var_payload_status_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_var_payload_status_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Enum field (returnCode)
   plc4c_s7_read_write_data_transport_error_code returnCode = plc4c_s7_read_write_data_transport_error_code_null();
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &returnCode);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &returnCode);
   if(_res != OK) {
     return _res;
   }
@@ -47,11 +47,11 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_var_payload_status_item* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_var_payload_status_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_var_payload_status_item* _message) {
   plc4c_return_code _res = OK;
 
   // Enum field (returnCode)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->return_code);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->return_code);
   if(_res != OK) {
     return _res;
   }
diff --git a/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c b/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
index 562e9fb..500192f 100644
--- a/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/s7_var_request_parameter_item.c
@@ -46,8 +46,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_s7_var_request_parameter_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_s7_var_request_parameter_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -60,7 +60,7 @@
 
   // Discriminator Field (itemType) (Used as input to a switch field)
   uint8_t itemType = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &itemType);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &itemType);
   if(_res != OK) {
     return _res;
   }
@@ -71,7 +71,7 @@
                     
     // Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
     uint8_t itemLength = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &itemLength);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &itemLength);
     if(_res != OK) {
       return _res;
     }
@@ -80,7 +80,7 @@
                     
     // Simple Field (address)
     plc4c_s7_read_write_s7_address* address;
-    _res = plc4c_s7_read_write_s7_address_parse(io, (void*) &address);
+    _res = plc4c_s7_read_write_s7_address_parse(readBuffer, (void*) &address);
     if(_res != OK) {
       return _res;
     }
@@ -91,24 +91,24 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_s7_var_request_parameter_item* _message) {
+plc4c_return_code plc4c_s7_read_write_s7_var_request_parameter_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_s7_var_request_parameter_item* _message) {
   plc4c_return_code _res = OK;
 
   // Discriminator Field (itemType)
-  plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_s7_var_request_parameter_item_get_discriminator(_message->_type).itemType);
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_s7_var_request_parameter_item_get_discriminator(_message->_type).itemType);
 
   // Switch Field (Depending of the current type, serialize the sub-type elements)
   switch(_message->_type) {
     case plc4c_s7_read_write_s7_var_request_parameter_item_type_plc4c_s7_read_write_s7_var_request_parameter_item_address: {
 
       // Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-      _res = plc4c_spi_write_unsigned_byte(io, 8, plc4c_s7_read_write_s7_address_length_in_bytes(_message->s7_var_request_parameter_item_address_address));
+      _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, plc4c_s7_read_write_s7_address_length_in_bytes(_message->s7_var_request_parameter_item_address_address));
       if(_res != OK) {
         return _res;
       }
 
       // Simple Field (address)
-      _res = plc4c_s7_read_write_s7_address_serialize(io, _message->s7_var_request_parameter_item_address_address);
+      _res = plc4c_s7_read_write_s7_address_serialize(writeBuffer, _message->s7_var_request_parameter_item_address_address);
       if(_res != OK) {
         return _res;
       }
diff --git a/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c b/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c
index 58e7f09..2150304 100644
--- a/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c
+++ b/sandbox/plc4c/generated-sources/s7/src/szl_data_tree_item.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_szl_data_tree_item** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_szl_data_tree_item** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Simple Field (itemIndex)
   uint16_t itemIndex = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &itemIndex);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &itemIndex);
   if(_res != OK) {
     return _res;
   }
@@ -55,8 +55,8 @@
     uint16_t itemCount = 20;
     for(int curItem = 0; curItem < itemCount; curItem++) {
       
-      int8_t* _value = malloc(sizeof(int8_t));
-      _res = plc4c_spi_read_signed_byte(io, 8, (int8_t*) _value);
+      char* _value = malloc(sizeof(char));
+      _res = plc4c_spi_read_char(readBuffer, (char*) _value);
       if(_res != OK) {
         return _res;
       }
@@ -67,7 +67,7 @@
 
   // Simple Field (moduleTypeId)
   uint16_t moduleTypeId = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &moduleTypeId);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &moduleTypeId);
   if(_res != OK) {
     return _res;
   }
@@ -75,7 +75,7 @@
 
   // Simple Field (ausbg)
   uint16_t ausbg = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &ausbg);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &ausbg);
   if(_res != OK) {
     return _res;
   }
@@ -83,7 +83,7 @@
 
   // Simple Field (ausbe)
   uint16_t ausbe = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &ausbe);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &ausbe);
   if(_res != OK) {
     return _res;
   }
@@ -92,11 +92,11 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_szl_data_tree_item* _message) {
+plc4c_return_code plc4c_s7_read_write_szl_data_tree_item_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_szl_data_tree_item* _message) {
   plc4c_return_code _res = OK;
 
   // Simple Field (itemIndex)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->item_index);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->item_index);
   if(_res != OK) {
     return _res;
   }
@@ -106,25 +106,25 @@
     uint8_t itemCount = plc4c_utils_list_size(_message->mlfb);
     for(int curItem = 0; curItem < itemCount; curItem++) {
 
-      int8_t* _value = (int8_t*) plc4c_utils_list_get_value(_message->mlfb, curItem);
-      plc4c_spi_write_signed_byte(io, 8, *_value);
+      char* _value = (char*) plc4c_utils_list_get_value(_message->mlfb, curItem);
+      plc4c_spi_write_char(writeBuffer, *_value);
     }
   }
 
   // Simple Field (moduleTypeId)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->module_type_id);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->module_type_id);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (ausbg)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->ausbg);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->ausbg);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (ausbe)
-  _res = plc4c_spi_write_unsigned_short(io, 16, _message->ausbe);
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, _message->ausbe);
   if(_res != OK) {
     return _res;
   }
diff --git a/sandbox/plc4c/generated-sources/s7/src/szl_id.c b/sandbox/plc4c/generated-sources/s7/src/szl_id.c
index 95ed2f9..fc58467 100644
--- a/sandbox/plc4c/generated-sources/s7/src/szl_id.c
+++ b/sandbox/plc4c/generated-sources/s7/src/szl_id.c
@@ -25,8 +25,8 @@
 
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_szl_id_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_szl_id** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_szl_id_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_szl_id** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -38,7 +38,7 @@
 
   // Enum field (typeClass)
   plc4c_s7_read_write_szl_module_type_class typeClass = plc4c_s7_read_write_szl_module_type_class_null();
-  _res = plc4c_spi_read_unsigned_byte(io, 4, (uint8_t*) &typeClass);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 4, (uint8_t*) &typeClass);
   if(_res != OK) {
     return _res;
   }
@@ -46,7 +46,7 @@
 
   // Simple Field (sublistExtract)
   uint8_t sublistExtract = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 4, (uint8_t*) &sublistExtract);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 4, (uint8_t*) &sublistExtract);
   if(_res != OK) {
     return _res;
   }
@@ -54,7 +54,7 @@
 
   // Enum field (sublistList)
   plc4c_s7_read_write_szl_sublist sublistList = plc4c_s7_read_write_szl_sublist_null();
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &sublistList);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &sublistList);
   if(_res != OK) {
     return _res;
   }
@@ -63,23 +63,23 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_szl_id_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_szl_id* _message) {
+plc4c_return_code plc4c_s7_read_write_szl_id_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_szl_id* _message) {
   plc4c_return_code _res = OK;
 
   // Enum field (typeClass)
-  _res = plc4c_spi_write_unsigned_byte(io, 4, _message->type_class);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 4, _message->type_class);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (sublistExtract)
-  _res = plc4c_spi_write_unsigned_byte(io, 4, _message->sublist_extract);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 4, _message->sublist_extract);
   if(_res != OK) {
     return _res;
   }
 
   // Enum field (sublistList)
-  _res = plc4c_spi_write_unsigned_byte(io, 8, _message->sublist_list);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, _message->sublist_list);
   if(_res != OK) {
     return _res;
   }
diff --git a/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c b/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c
index d2d6f74..52aa350 100644
--- a/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c
+++ b/sandbox/plc4c/generated-sources/s7/src/tpkt_packet.c
@@ -31,8 +31,8 @@
 }
 
 // Parse function.
-plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* io, plc4c_s7_read_write_tpkt_packet** _message) {
-  uint16_t startPos = plc4c_spi_read_get_pos(io);
+plc4c_return_code plc4c_s7_read_write_tpkt_packet_parse(plc4c_spi_read_buffer* readBuffer, plc4c_s7_read_write_tpkt_packet** _message) {
+  uint16_t startPos = plc4c_spi_read_get_pos(readBuffer);
   uint16_t curPos;
   plc4c_return_code _res = OK;
 
@@ -44,7 +44,7 @@
 
   // Const Field (protocolId)
   uint8_t protocolId = 0;
-  _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &protocolId);
+  _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &protocolId);
   if(_res != OK) {
     return _res;
   }
@@ -56,7 +56,7 @@
   // Reserved Field (Compartmentalized so the "reserved" variable can't leak)
   {
     uint8_t _reserved = 0;
-    _res = plc4c_spi_read_unsigned_byte(io, 8, (uint8_t*) &_reserved);
+    _res = plc4c_spi_read_unsigned_byte(readBuffer, 8, (uint8_t*) &_reserved);
     if(_res != OK) {
       return _res;
     }
@@ -67,14 +67,14 @@
 
   // Implicit Field (len) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
   uint16_t len = 0;
-  _res = plc4c_spi_read_unsigned_short(io, 16, (uint16_t*) &len);
+  _res = plc4c_spi_read_unsigned_short(readBuffer, 16, (uint16_t*) &len);
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (payload)
   plc4c_s7_read_write_cotp_packet* payload;
-  _res = plc4c_s7_read_write_cotp_packet_parse(io, (len) - (4), (void*) &payload);
+  _res = plc4c_s7_read_write_cotp_packet_parse(readBuffer, (len) - (4), (void*) &payload);
   if(_res != OK) {
     return _res;
   }
@@ -83,26 +83,26 @@
   return OK;
 }
 
-plc4c_return_code plc4c_s7_read_write_tpkt_packet_serialize(plc4c_spi_write_buffer* io, plc4c_s7_read_write_tpkt_packet* _message) {
+plc4c_return_code plc4c_s7_read_write_tpkt_packet_serialize(plc4c_spi_write_buffer* writeBuffer, plc4c_s7_read_write_tpkt_packet* _message) {
   plc4c_return_code _res = OK;
 
   // Const Field (protocolId)
-  plc4c_spi_write_unsigned_byte(io, 8, PLC4C_S7_READ_WRITE_TPKT_PACKET_PROTOCOL_ID());
+  plc4c_spi_write_unsigned_byte(writeBuffer, 8, PLC4C_S7_READ_WRITE_TPKT_PACKET_PROTOCOL_ID());
 
   // Reserved Field
-  _res = plc4c_spi_write_unsigned_byte(io, 8, 0x00);
+  _res = plc4c_spi_write_unsigned_byte(writeBuffer, 8, 0x00);
   if(_res != OK) {
     return _res;
   }
 
   // Implicit Field (len) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-  _res = plc4c_spi_write_unsigned_short(io, 16, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message->payload)) + (4));
+  _res = plc4c_spi_write_unsigned_short(writeBuffer, 16, (plc4c_s7_read_write_cotp_packet_length_in_bytes(_message->payload)) + (4));
   if(_res != OK) {
     return _res;
   }
 
   // Simple Field (payload)
-  _res = plc4c_s7_read_write_cotp_packet_serialize(io, _message->payload);
+  _res = plc4c_s7_read_write_cotp_packet_serialize(writeBuffer, _message->payload);
   if(_res != OK) {
     return _res;
   }
diff --git a/sandbox/plc4c/generated-sources/s7/src/transport_size.c b/sandbox/plc4c/generated-sources/s7/src/transport_size.c
index ce18186..174acc9 100644
--- a/sandbox/plc4c/generated-sources/s7/src/transport_size.c
+++ b/sandbox/plc4c/generated-sources/s7/src/transport_size.c
@@ -1097,7 +1097,7 @@
       return -1;
     }
     case plc4c_s7_read_write_transport_size_REAL: { /* '0x0E' */
-      return plc4c_s7_read_write_data_transport_size_BYTE_WORD_DWORD;
+      return plc4c_s7_read_write_data_transport_size_REAL;
     }
     case plc4c_s7_read_write_transport_size_LREAL: { /* '0x0F' */
       return -1;
@@ -1152,6 +1152,9 @@
         case plc4c_s7_read_write_data_transport_size_INTEGER: {
             return plc4c_s7_read_write_transport_size_INT;
         }
+        case plc4c_s7_read_write_data_transport_size_REAL: {
+            return plc4c_s7_read_write_transport_size_REAL;
+        }
         case -1: {
             return plc4c_s7_read_write_transport_size_LWORD;
         }
diff --git a/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h b/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h
index 7489d88..0ca33d6 100644
--- a/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h
+++ b/sandbox/plc4c/spi/include/plc4c/spi/read_buffer.h
@@ -51,6 +51,8 @@
 
 plc4c_return_code plc4c_spi_read_bit(plc4c_spi_read_buffer* buf, bool* value);
 
+plc4c_return_code plc4c_spi_read_char(plc4c_spi_read_buffer* buf, char* value);
+
 // Unsigned Integers ...
 
 plc4c_return_code plc4c_spi_read_unsigned_byte(plc4c_spi_read_buffer* buf, uint8_t num_bits, uint8_t* value);
diff --git a/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h b/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h
index af12997..80f9128 100644
--- a/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h
+++ b/sandbox/plc4c/spi/include/plc4c/spi/write_buffer.h
@@ -47,6 +47,8 @@
 
 plc4c_return_code plc4c_spi_write_bit(plc4c_spi_write_buffer* buf, bool value);
 
+plc4c_return_code plc4c_spi_write_char(plc4c_spi_write_buffer* buf, char value);
+
 // Unsigned Integers ...
 
 plc4c_return_code plc4c_spi_write_unsigned_byte(plc4c_spi_write_buffer* buf, uint8_t num_bits, uint8_t value);
diff --git a/sandbox/plc4c/spi/src/read_buffer.c b/sandbox/plc4c/spi/src/read_buffer.c
index 790b899..3fd378d 100644
--- a/sandbox/plc4c/spi/src/read_buffer.c
+++ b/sandbox/plc4c/spi/src/read_buffer.c
@@ -321,6 +321,10 @@
   return OK;
 }
 
+plc4c_return_code plc4c_spi_read_char(plc4c_spi_read_buffer* buf, char* value) {
+    return plc4c_spi_read_signed_int(buf, 8, (int8_t*) value);
+}
+
 // Unsigned Integers ...
 
 plc4c_return_code plc4c_spi_read_unsigned_byte(plc4c_spi_read_buffer* buf,
diff --git a/sandbox/plc4c/spi/src/write_buffer.c b/sandbox/plc4c/spi/src/write_buffer.c
index 045d739..7277314 100644
--- a/sandbox/plc4c/spi/src/write_buffer.c
+++ b/sandbox/plc4c/spi/src/write_buffer.c
@@ -295,6 +295,10 @@
   return OK;
 }
 
+plc4c_return_code plc4c_spi_write_char(plc4c_spi_write_buffer* buf, char value) {
+    return plc4c_spi_write_signed_int(buf, 8, (int8_t) value);
+}
+
 // Unsigned Integers ...
 
 plc4c_return_code plc4c_spi_write_unsigned_byte(plc4c_spi_write_buffer* buf,