You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2021/10/03 11:22:58 UTC

[plc4x] 01/01: Worked on implementing some of the mspec changes we discussed (WIP)

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

cdutz pushed a commit to branch feature/mspec-ng
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit bd02327f1d45abc63c52307172f2cfaeba5e0360
Author: cdutz <ch...@c-ware.de>
AuthorDate: Sun Oct 3 13:22:33 2021 +0200

    Worked on implementing some of the mspec changes we discussed (WIP)
---
 code-generation/language-base-freemarker/pom.xml   |   2 +-
 code-generation/language-c/pom.xml                 |  24 +-
 .../plc4x/language/c/CLanguageTemplateHelper.java  |   7 +
 .../resources/templates/c/pojo-template.c.ftlh     |   8 +-
 .../src/test/resources/integration-test/pom.xml    |   4 -
 code-generation/language-go/pom.xml                |  36 +-
 .../language/go/GoLanguageTemplateHelper.java      |  14 +-
 .../apache/plc4x/language/go/utils/FieldUtils.java |   2 +-
 .../resources/templates/go/model-template.go.ftlh  |   8 +-
 code-generation/language-java/pom.xml              |   2 +-
 .../language/java/JavaLanguageTemplateHelper.java  |   7 +
 .../resources/templates/java/io-template.java.ftlh |  27 +-
 .../src/test/resources/integration-test/pom.xml    |   1 +
 code-generation/pom.xml                            |   2 +-
 code-generation/protocol-base-mspec/pom.xml        |   2 +-
 .../plugins/codegenerator/language/mspec/MSpec.g4  |  27 +-
 .../mspec/model/fields/DefaultAbstractField.java   |   5 +-
 .../mspec/model/fields/DefaultArrayField.java      |   4 +-
 .../mspec/model/fields/DefaultAssertField.java     |   4 +-
 .../mspec/model/fields/DefaultChecksumField.java   |   4 +-
 .../mspec/model/fields/DefaultConstField.java      |   4 +-
 .../model/fields/DefaultDiscriminatorField.java    |   4 +-
 .../mspec/model/fields/DefaultEnumField.java       |   4 +-
 .../language/mspec/model/fields/DefaultField.java  |  12 +-
 .../mspec/model/fields/DefaultImplicitField.java   |   4 +-
 .../model/fields/DefaultManualArrayField.java      |   4 +-
 .../mspec/model/fields/DefaultManualField.java     |   4 +-
 .../mspec/model/fields/DefaultOptionalField.java   |  10 +-
 .../mspec/model/fields/DefaultPaddingField.java    |   4 +-
 .../mspec/model/fields/DefaultReservedField.java   |   4 +-
 .../mspec/model/fields/DefaultSimpleField.java     |   4 +-
 .../mspec/model/fields/DefaultSwitchField.java     |   3 +-
 .../mspec/model/fields/DefaultUnknownField.java    |   4 +-
 .../mspec/model/fields/DefaultVirtualField.java    |   4 +-
 .../mspec/parser/MessageFormatListener.java        |  53 +-
 .../mspec/parser/MessageFormatParserTest.java      |   3 +-
 .../src/test/resources/mspec.example               |   2 +-
 .../src/test/resources/mspec.example2              |  30 +-
 code-generation/protocol-test/pom.xml              |   3 +-
 .../src/main/resources/protocols/test/test.mspec   |  32 +-
 plc4c/generated-sources/s7/src/data_item.c         |   8 +-
 .../s7/src/s7_payload_user_data_item.c             |   4 +-
 .../plc4go/abeth/readwrite/XmlParserHelper.go      |  36 +-
 .../model/CIPEncapsulationConnectionRequest.go     |   9 +-
 .../model/CIPEncapsulationConnectionResponse.go    |   9 +-
 .../readwrite/model/CIPEncapsulationPacket.go      |  49 +-
 .../readwrite/model/CIPEncapsulationReadRequest.go |  39 +-
 .../model/CIPEncapsulationReadResponse.go          |  39 +-
 .../readwrite/model/DF1CommandRequestMessage.go    |  39 +-
 ...mandResponseMessageProtectedTypedLogicalRead.go |  43 +-
 .../abeth/readwrite/model/DF1RequestCommand.go     |  17 +-
 .../abeth/readwrite/model/DF1RequestMessage.go     |  41 +-
 .../model/DF1RequestProtectedTypedLogicalRead.go   | 119 ++--
 .../abeth/readwrite/model/DF1ResponseMessage.go    |  41 +-
 .../plc4go/ads/readwrite/XmlParserHelper.go        |  68 +-
 .../model/AdsAddDeviceNotificationRequest.go       | 157 ++---
 .../model/AdsAddDeviceNotificationResponse.go      |  63 +-
 .../internal/plc4go/ads/readwrite/model/AdsData.go |  89 +--
 .../plc4go/ads/readwrite/model/AdsDataType.go      | 654 ++++++++----------
 .../model/AdsDeleteDeviceNotificationRequest.go    |  33 +-
 .../model/AdsDeleteDeviceNotificationResponse.go   |  35 +-
 .../model/AdsDeviceNotificationRequest.go          |  89 +--
 .../model/AdsDeviceNotificationResponse.go         |  11 +-
 .../ads/readwrite/model/AdsInvalidRequest.go       |  11 +-
 .../ads/readwrite/model/AdsInvalidResponse.go      |  11 +-
 .../ads/readwrite/model/AdsMultiRequestItem.go     |  21 +-
 .../ads/readwrite/model/AdsMultiRequestItemRead.go |  77 ++-
 .../model/AdsMultiRequestItemReadWrite.go          |  93 +--
 .../readwrite/model/AdsMultiRequestItemWrite.go    |  71 +-
 .../ads/readwrite/model/AdsNotificationSample.go   |  22 +-
 .../readwrite/model/AdsReadDeviceInfoRequest.go    |  11 +-
 .../readwrite/model/AdsReadDeviceInfoResponse.go   | 133 ++--
 .../plc4go/ads/readwrite/model/AdsReadRequest.go   |  77 ++-
 .../plc4go/ads/readwrite/model/AdsReadResponse.go  |  79 ++-
 .../ads/readwrite/model/AdsReadStateRequest.go     |  11 +-
 .../ads/readwrite/model/AdsReadStateResponse.go    |  85 +--
 .../ads/readwrite/model/AdsReadWriteRequest.go     | 163 ++---
 .../ads/readwrite/model/AdsReadWriteResponse.go    |  79 ++-
 .../plc4go/ads/readwrite/model/AdsStampHeader.go   |  24 +-
 .../ads/readwrite/model/AdsWriteControlRequest.go  |  99 +--
 .../ads/readwrite/model/AdsWriteControlResponse.go |  35 +-
 .../plc4go/ads/readwrite/model/AdsWriteRequest.go  |  99 +--
 .../plc4go/ads/readwrite/model/AdsWriteResponse.go |  35 +-
 .../plc4go/ads/readwrite/model/AmsNetId.go         |  34 +-
 .../plc4go/ads/readwrite/model/AmsPacket.go        |  50 +-
 .../readwrite/model/AmsSerialAcknowledgeFrame.go   |  44 +-
 .../plc4go/ads/readwrite/model/AmsSerialFrame.go   |  48 +-
 .../ads/readwrite/model/AmsSerialResetFrame.go     |  44 +-
 .../plc4go/ads/readwrite/model/AmsTCPPacket.go     |  14 +-
 .../plc4go/ads/readwrite/model/CommandId.go        |  63 +-
 .../plc4go/ads/readwrite/model/DataItem.go         | 681 +++++++++----------
 .../ads/readwrite/model/ReservedIndexGroups.go     | 183 ++---
 .../plc4go/ads/readwrite/model/ReturnCode.go       | 735 +++++++++++----------
 .../internal/plc4go/ads/readwrite/model/State.go   |  64 +-
 .../apache/plc4x/java/profinet/ProfinetPoc.java    |   2 +-
 .../ads/src/main/resources/protocols/ads/ads.mspec |  14 +-
 .../resources/protocols/bacnetip/bacnetip.mspec    |  14 +-
 .../src/main/resources/protocols/can/canopen.mspec |   6 +-
 .../plc4x/protocol/knxnetip/KnxNetIpProtocol.java  |   3 +
 .../resources/protocols/knxnetip/knxnetip.mspec    |   4 +-
 protocols/knxnetip/src/main/xslt/knx-types.xsl     |  52 +-
 .../apache/plc4x/protocol/opcua/OpcuaProtocol.java |   7 +-
 .../src/main/resources/protocols/opcua/opcua.mspec |   2 +-
 protocols/opcua/src/main/xslt/opc-common.xsl       |   9 +-
 protocols/opcua/src/main/xslt/opc-manual.xsl       |  61 +-
 .../resources/protocols/profinet/profinet.mspec    | 126 ++--
 .../s7/src/main/resources/protocols/s7/s7.mspec    |  18 +-
 .../resources/protocols/simulated/simulated.mspec  |   6 +-
 .../bacnetip/PassiveBacNetIpDriver2Manual.java     |   1 -
 109 files changed, 2945 insertions(+), 2650 deletions(-)

diff --git a/code-generation/language-base-freemarker/pom.xml b/code-generation/language-base-freemarker/pom.xml
index 3e12758..fd9a733 100644
--- a/code-generation/language-base-freemarker/pom.xml
+++ b/code-generation/language-base-freemarker/pom.xml
@@ -29,7 +29,7 @@
 
   <artifactId>plc4x-code-generation-language-base-freemarker</artifactId>
 
-  <name>PLC4X: Build Utils: Language Base: Freemarker</name>
+  <name>Code-Generation: Language Base: Freemarker</name>
   <description>Base code for building language outputs based on Freemarker</description>
 
   <dependencies>
diff --git a/code-generation/language-c/pom.xml b/code-generation/language-c/pom.xml
index 70c8abf..1bb5a10 100644
--- a/code-generation/language-c/pom.xml
+++ b/code-generation/language-c/pom.xml
@@ -29,7 +29,7 @@
 
   <artifactId>plc4x-code-generation-language-c</artifactId>
 
-  <name>PLC4X: Build Utils: Language: C</name>
+  <name>Code-Generation: Language: C</name>
   <description>Code generation template for generating C code</description>
 
   <build>
@@ -90,6 +90,28 @@
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-text</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
+      <version>0.10.0-SNAPSHOT</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- Make sure the dependencies of the module are built first -->
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4x-code-generation-protocol-test</artifactId>
+      <version>0.10.0-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4x-code-generation-protocol-test</artifactId>
+      <version>0.10.0-SNAPSHOT</version>
+      <classifier>tests</classifier>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
 </project>
diff --git a/code-generation/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java b/code-generation/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
index 0d1efbd..90308c4 100644
--- a/code-generation/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
+++ b/code-generation/language-c/src/main/java/org/apache/plc4x/language/c/CLanguageTemplateHelper.java
@@ -241,6 +241,7 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
                 case UFLOAT:
                     throw new FreemarkerException("Unsupported unsigned float type.");
                 case STRING:
+                case VSTRING:
                     return "char*";
                 case TIME:
                     return "time_t";//throw new FreemarkerException("Unsupported time type.");
@@ -304,6 +305,7 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
                 }
                 return " : " + simpleTypeReference.getSizeInBits();
             case STRING:
+            case VSTRING:
             case TIME:
             case DATE:
             case DATETIME:
@@ -340,6 +342,7 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
                     }
                     break;
                 case STRING:
+                case VSTRING:
                     return "\"" + valueString + "\"";
             }
         }
@@ -406,6 +409,7 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
                 }
                 throw new FreemarkerException("Unsupported float type with " + floatTypeReference.getSizeInBits() + " bits");
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return "plc4c_spi_read_string(readBuffer, " + toParseExpression(thisType, field, stringTypeReference.getLengthExpression(), null) + ", \"" +
                     stringTypeReference.getEncoding() + "\"" + ", (char**) " + valueString + ")";
@@ -460,6 +464,7 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
                 }
                 throw new FreemarkerException("Unsupported float type with " + floatTypeReference.getSizeInBits() + " bits");
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return "plc4c_spi_write_string(writeBuffer, " + toSerializationExpression(thisType, field, stringTypeReference.getLengthExpression(), null) + ", \"" +
                     stringTypeReference.getEncoding() + "\", " + fieldName + ")";
@@ -483,6 +488,7 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
                 case UFLOAT:
                     return "0.0f";
                 case STRING:
+                case VSTRING:
                     return "\"\"";
                 case TIME:
                     throw new FreemarkerException("Unsupported time type.");
@@ -1123,6 +1129,7 @@ public class CLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelpe
                 FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
                 return floatTypeReference.getSizeInBits();
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return stringTypeReference.getSizeInBits();
             default:
diff --git a/code-generation/language-c/src/main/resources/templates/c/pojo-template.c.ftlh b/code-generation/language-c/src/main/resources/templates/c/pojo-template.c.ftlh
index 75beec2..6f08f26 100644
--- a/code-generation/language-c/src/main/resources/templates/c/pojo-template.c.ftlh
+++ b/code-generation/language-c/src/main/resources/templates/c/pojo-template.c.ftlh
@@ -319,11 +319,13 @@ plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer*
             <#assign optionalField = field.asOptionalField().orElseThrow()>
 
 <#if indentContent>  </#if>  // Optional Field (${optionalField.name}) (Can be skipped, if a given expression evaluates to false)
-            <#if optionalField.conditionExpression.contains("curPos")>
+            <#if optionalField.conditionExpression.present && optionalField.conditionExpression.get().contains("curPos")>
 <#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, parserArguments)}) {
+            <#if optionalField.conditionExpression.present>
+<#if indentContent>  </#if>  if(${helper.toParseExpression(baseType, field, optionalField.conditionExpression.get(), parserArguments)}) {
+            </#if>
         <#if helper.isSimpleTypeReference(optionalField.type)>
 <#if indentContent>  </#if>    ${optionalField.name} = malloc(sizeof(${helper.getLanguageTypeNameForField(field)}));
 <#if indentContent>  </#if>    if(${optionalField.name} == NULL) {
@@ -338,9 +340,11 @@ plc4c_return_code ${helper.getCTypeName(type.name)}_parse(plc4c_spi_read_buffer*
 <#if indentContent>  </#if>      return _res;
 <#if indentContent>  </#if>    }
 <#if indentContent>  </#if>    (*_message)-><@fieldName baseType=baseType field=optionalField/> = ${optionalField.name};
+            <#if optionalField.conditionExpression.present>
 <#if indentContent>  </#if>  } else {
 <#if indentContent>  </#if>    (*_message)-><@fieldName baseType=baseType field=optionalField/> = NULL;
 <#if indentContent>  </#if>  }
+            </#if>
             <#break>
         <#case "padding">
             <#assign paddingField = field.asPaddingField().orElseThrow()>
diff --git a/code-generation/language-c/src/test/resources/integration-test/pom.xml b/code-generation/language-c/src/test/resources/integration-test/pom.xml
index 32fee3a..b83d77d 100644
--- a/code-generation/language-c/src/test/resources/integration-test/pom.xml
+++ b/code-generation/language-c/src/test/resources/integration-test/pom.xml
@@ -362,16 +362,12 @@
     <groupId>org.apache.plc4x</groupId>
     <artifactId>plc4x-code-generation-language-c</artifactId>
     <version>@project.version@</version>
-    <!-- Scope is 'provided' as this way it's not shipped with the driver -->
-    <scope>provided</scope>
   </dependency>
 
   <dependency>
     <groupId>org.apache.plc4x</groupId>
     <artifactId>plc4x-code-generation-protocol-test</artifactId>
     <version>@project.version@</version>
-    <!-- Scope is 'provided' as this way it's not shipped with the driver -->
-    <scope>provided</scope>
   </dependency>
 
   <dependency>
diff --git a/code-generation/language-go/pom.xml b/code-generation/language-go/pom.xml
index a7d6499..fa36d95 100644
--- a/code-generation/language-go/pom.xml
+++ b/code-generation/language-go/pom.xml
@@ -18,6 +18,7 @@
   under the License.
   -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
@@ -28,7 +29,7 @@
 
   <artifactId>plc4x-code-generation-language-go</artifactId>
 
-  <name>PLC4X: Build Utils: Language: Go</name>
+  <name>Code-Generation: Language: Go</name>
   <description>Code generation template for generating Go(lang) code</description>
 
   <build>
@@ -77,34 +78,39 @@
     </dependency>
 
     <dependency>
-      <groupId>org.apache.plc4x</groupId>
-      <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
-      <version>0.10.0-SNAPSHOT</version>
-    </dependency>
-
-    <dependency>
       <groupId>org.apache.plc4x.plugins</groupId>
       <artifactId>plc4x-code-generation-types-base</artifactId>
     </dependency>
 
     <dependency>
-      <groupId>org.apache.plc4x.plugins</groupId>
-      <artifactId>plc4x-code-generation-language-base</artifactId>
-    </dependency>
-
-    <dependency>
       <groupId>org.freemarker</groupId>
       <artifactId>freemarker</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-text</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
+      <version>0.10.0-SNAPSHOT</version>
+      <scope>compile</scope>
+    </dependency>
 
+    <!-- Make sure the dependencies of the module are built first -->
     <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4x-code-generation-protocol-test</artifactId>
+      <version>0.10.0-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4x-code-generation-protocol-test</artifactId>
+      <version>0.10.0-SNAPSHOT</version>
+      <classifier>tests</classifier>
+      <type>test-jar</type>
+      <scope>test</scope>
     </dependency>
   </dependencies>
 
diff --git a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index 243af84..a57d1ec 100644
--- a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -142,9 +142,9 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                     emitRequiredImport("math/big");
                     return "*big.Float";
                 }
-                case STRING: {
+                case STRING:
+                case VSTRING:
                     return "string";
-                }
                 case TIME: {
                     return "Time";
                 }
@@ -212,6 +212,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                     }
                     return "values.NewPlcBREAL";
                 case STRING:
+                case VSTRING:
                     return "values.NewPlcSTRING";
                 case TIME:
                     return "values.NewPlcTIME";
@@ -240,6 +241,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 case FLOAT:
                     return "0.0";
                 case STRING:
+                case VSTRING:
                     return "\"\"";
             }
         } else if (typeReference instanceof ComplexTypeReference) {
@@ -263,6 +265,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
                 return floatTypeReference.getSizeInBits();
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return stringTypeReference.getSizeInBits();
             default:
@@ -329,6 +332,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 }
                 return "readBuffer.ReadBigFloat(\"" + logicalName + "\", true, " + floatTypeReference.getExponent() + ", " + floatTypeReference.getMantissa() + ")";
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return "readBuffer.ReadString(\"" + logicalName + "\", uint32(" + toParseExpression(field, stringTypeReference.getLengthExpression(), null) + "))";
         }
@@ -393,6 +397,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 }
                 return "writeBuffer.WriteBigFloat(\"" + logicalName + "\", " + floatTypeReference.getSizeInBits() + ", " + fieldName + writerArgsString + ")";
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 String encoding = ((stringTypeReference.getEncoding() != null) && (stringTypeReference.getEncoding().length() > 2)) ?
                     stringTypeReference.getEncoding().substring(1, stringTypeReference.getEncoding().length() - 1) : "UTF-8";
@@ -980,6 +985,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                     }
                     break;
                 case STRING:
+                case VSTRING:
                     return "\"" + valueString + "\"";
             }
         }
@@ -1105,7 +1111,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                     }
                 } else if (curField instanceof OptionalField) {
                     OptionalField optionalField = (OptionalField) curField;
-                    if (optionalField.getConditionExpression().contains(name)) {
+                    if (optionalField.getConditionExpression().isPresent() && optionalField.getConditionExpression().get().contains(name)) {
                         return name;
                     }
                 } else if (curField instanceof SwitchField) {
@@ -1207,7 +1213,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
             }
         } else if (curField instanceof OptionalField) {
             OptionalField optionalField = (OptionalField) curField;
-            if (optionalField.getConditionExpression().contains(variable)) {
+            if (optionalField.getConditionExpression().isPresent() && optionalField.getConditionExpression().get().contains(variable)) {
                 return true;
             }
         }
diff --git a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
index e03dbcb..427161e 100644
--- a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
+++ b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/utils/FieldUtils.java
@@ -66,7 +66,7 @@ public class FieldUtils {
             }
             case "optional": {
                 OptionalField optionalField = (OptionalField) field;
-                return optionalField.getConditionExpression().contains(label);
+                return optionalField.getConditionExpression().isPresent() && optionalField.getConditionExpression().get().contains(label);
             }
             case "padding": {
                 PaddingField paddingField = (PaddingField) field;
diff --git a/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh
index 001a8bc..7022424 100644
--- a/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh
@@ -834,11 +834,13 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
 				<#assign optionalField = field.asOptionalField().orElseThrow()>
 
 	// Optional Field (${optionalField.name}) (Can be skipped, if a given expression evaluates to false)
-				<#if optionalField.conditionExpression.contains("curPos")>
+				<#if optionalField.conditionExpression.present && optionalField.conditionExpression.get().contains("curPos")>
 	curPos = readBuffer.GetPos() - startPos
 				</#if>
 	var ${optionalField.name} *${helper.getLanguageTypeNameForField(field)} = nil
-	if ${helper.toBooleanParseExpression(optionalField.conditionExpression, parserArguments)} {
+	<#if optionalField.conditionExpression.present>
+	if ${helper.toBooleanParseExpression(optionalField.conditionExpression.get(), parserArguments)} {
+    </#if>
 			<#if helper.isSimpleTypeReference(optionalField.type)>
 		_val, _err := ${helper.getReadBufferReadMethodCall(optionalField.name, optionalField.type.asSimpleTypeReference().orElseThrow())}
 		if _err != nil {
@@ -889,7 +891,9 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
 		}
 		${optionalField.name} = Cast${helper.getLanguageTypeNameForField(field)}(_val)
 			</#if>
+	<#if optionalField.conditionExpression.present>
 	}
+	</#if>
 			<#break>
 			<#case "assert">
 				<#assign assertField = field.asAssertField().orElseThrow()>
diff --git a/code-generation/language-java/pom.xml b/code-generation/language-java/pom.xml
index b6853a9..fa27adc 100644
--- a/code-generation/language-java/pom.xml
+++ b/code-generation/language-java/pom.xml
@@ -29,7 +29,7 @@
 
   <artifactId>plc4x-code-generation-language-java</artifactId>
 
-  <name>PLC4X: Build Utils: Language: Java</name>
+  <name>Code-Generation: Language: Java</name>
   <description>Code generation template for generating Java code</description>
 
   <build>
diff --git a/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java b/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
index 96b990d..686b3f7 100644
--- a/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
+++ b/code-generation/language-java/src/main/java/org/apache/plc4x/language/java/JavaLanguageTemplateHelper.java
@@ -150,6 +150,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                     }
                     return BigDecimal.class.getSimpleName();
                 case STRING:
+                case VSTRING:
                     return String.class.getSimpleName();
                 case TIME:
                     return LocalTime.class.getSimpleName();
@@ -214,6 +215,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                         return "PlcLREAL";
                     }
                 case STRING:
+                case VSTRING:
                     return "PlcSTRING";
                 case TIME:
                 case DATE:
@@ -265,6 +267,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                     }
                     return "null";
                 case STRING:
+                case VSTRING:
                     return "null";
             }
             throw new FreemarkerException("Unmapped basetype" + simpleTypeReference.getBaseType());
@@ -302,6 +305,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                 FloatTypeReference floatTypeReference = (FloatTypeReference) simpleTypeReference;
                 return floatTypeReference.getSizeInBits();
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return stringTypeReference.getSizeInBits();
             default:
@@ -363,6 +367,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                     floatTypeReference.getMantissa() + ");" +
                     "\n        })).get()";
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return "readBuffer.readString(\"" + logicalName + "\", " + toParseExpression(field, stringTypeReference.getLengthExpression(), null) + ", \"" +
                     stringTypeReference.getEncoding() + "\")";
@@ -427,6 +432,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                     throw new RuntimeException("Unsupported float type");
                 }
             case STRING:
+            case VSTRING:
                 StringTypeReference stringTypeReference = (StringTypeReference) simpleTypeReference;
                 return "writeBuffer.writeString(\"" + logicalName + "\", " + toSerializationExpression(field, stringTypeReference.getLengthExpression(), thisType.getParserArguments().orElse(Collections.emptyList())) + ", \"" +
                     stringTypeReference.getEncoding() + "\", (String) " + fieldName + "" + writerArgsString + ")";
@@ -976,6 +982,7 @@ public class JavaLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHe
                     }
                     break;
                 case STRING:
+                case VSTRING:
                     return "\"" + valueString + "\"";
             }
         }
diff --git a/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh b/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh
index ff36cbf..f856658 100644
--- a/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh
+++ b/code-generation/language-java/src/main/resources/templates/java/io-template.java.ftlh
@@ -61,7 +61,9 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.math.BigInteger;
 import java.time.*;
-import java.util.*;
+//import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.function.Supplier;
 
 // Code generated by code-generation. DO NOT EDIT.
@@ -441,11 +443,13 @@ public class ${type.name}IO implements <#if outputFlavor != "passive">MessageIO<
         <#assign optionalField = field.asOptionalField().orElseThrow()>
 
         // Optional Field (${optionalField.name}) (Can be skipped, if a given expression evaluates to false)
-        <#if optionalField.conditionExpression.contains("curPos")>
+        <#if optionalField.conditionExpression.present && optionalField.conditionExpression.get().contains("curPos")>
         curPos = readBuffer.getPos() - startPos;
         </#if>
         ${helper.getLanguageTypeNameForField(field)} ${optionalField.name} = null;
-        if(${helper.toParseExpression(optionalField, optionalField.conditionExpression, parserArguments)}) {
+        <#if optionalField.conditionExpression.present>
+        if(${helper.toParseExpression(optionalField, optionalField.conditionExpression.get(), parserArguments)}) {
+        </#if>
         <@compress single_line=true>
             ${optionalField.name} =
             <#if helper.isEnumField(optionalField)>
@@ -487,7 +491,9 @@ public class ${type.name}IO implements <#if outputFlavor != "passive">MessageIO<
             ;
         </...@compress>
 
+        <#if optionalField.conditionExpression.present>
         }
+        </#if>
         <#break>
     <#case "assert">
         <#assign assertField = field.asAssertField().orElseThrow()>
@@ -556,20 +562,13 @@ public class ${type.name}IO implements <#if outputFlavor != "passive">MessageIO<
     <#case "simple">
         <#assign simpleField = field.asSimpleField().orElseThrow()>
 
-        <#if simpleField.isTry()>
-            <#-- TODO: we need to initalize base types-->
-        ${helper.getLanguageTypeNameForField(simpleField)} ${simpleField.name} = null;
-        curPos = readBuffer.getPos();
-        try {
-        </#if>
-
         <#if !helper.isSimpleTypeReference(simpleField.type)>
         readBuffer.pullContext("${simpleField.name}");
         </#if>
 
         // Simple Field (${simpleField.name})
         <@compress single_line=true>
-        <#if !simpleField.isTry()>${helper.getLanguageTypeNameForField(simpleField)}</#if> ${simpleField.name} =
+        ${helper.getLanguageTypeNameForField(simpleField)} ${simpleField.name} =
         <#assign simpleFieldLogicalName><#if helper.isSimpleTypeReference(simpleField.type)>${simpleField.name}<#else>${simpleField.typeName}</#if></#assign>
         <#if helper.isEnumField(simpleField)>
         /* enum based simple field with type ${simpleField.type.name} */
@@ -619,12 +618,6 @@ public class ${type.name}IO implements <#if outputFlavor != "passive">MessageIO<
         readBuffer.closeContext("${simpleField.name}");
         </#if>
 
-
-        <#if simpleField.isTry()>
-        } catch(ParseAssertException ignore){
-            readBuffer.reset(curPos);
-        }
-        </#if>
         <#break>
     <#case "switch">
         <#assign switchField = field.asSwitchField().orElseThrow()>
diff --git a/code-generation/language-java/src/test/resources/integration-test/pom.xml b/code-generation/language-java/src/test/resources/integration-test/pom.xml
index f63ff70..f4820ca 100644
--- a/code-generation/language-java/src/test/resources/integration-test/pom.xml
+++ b/code-generation/language-java/src/test/resources/integration-test/pom.xml
@@ -142,6 +142,7 @@
     <artifactId>plc4j-api</artifactId>
     <version>@project.version@</version>
   </dependency>
+
   <dependency>
     <groupId>org.apache.plc4x</groupId>
     <artifactId>plc4j-spi</artifactId>
diff --git a/code-generation/pom.xml b/code-generation/pom.xml
index 72f16fe..cb7e142 100644
--- a/code-generation/pom.xml
+++ b/code-generation/pom.xml
@@ -30,7 +30,7 @@
   <artifactId>plc4x-code-generation</artifactId>
   <packaging>pom</packaging>
 
-  <name>PLC4X: Code-Generation</name>
+  <name>Code-Generation</name>
   <description>Home of the PLC4X code-generation framework.</description>
 
   <modules>
diff --git a/code-generation/protocol-base-mspec/pom.xml b/code-generation/protocol-base-mspec/pom.xml
index 17e3b44..e8c645e 100644
--- a/code-generation/protocol-base-mspec/pom.xml
+++ b/code-generation/protocol-base-mspec/pom.xml
@@ -29,7 +29,7 @@
 
   <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
 
-  <name>PLC4X: Build Utils: Protocol Base: MSpec</name>
+  <name>Code-Generation: Protocol Base: MSpec</name>
   <description>Base stuff for building protocols using our custom MSpec format.</description>
 
   <build>
diff --git a/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4 b/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
index 53332c7..07ee8e2 100644
--- a/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
+++ b/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
@@ -27,14 +27,18 @@ complexTypeDefinition
  ;
 
 complexType
- : 'type' name=idExpression (LBRACKET params=argumentList RBRACKET)? fieldDefinition*
- | 'discriminatedType' name=idExpression (LBRACKET params=argumentList RBRACKET)? fieldDefinition+
- | 'enum' (type=typeReference)? name=idExpression (LBRACKET params=argumentList RBRACKET)? enumValues=enumValueDefinition+
- | 'dataIo' name=idExpression (LBRACKET params=argumentList RBRACKET)? dataIoTypeSwitch=dataIoDefinition
+ : 'type' name=idExpression (attributes=attributeList) (LBRACKET params=argumentList RBRACKET)? (fieldDefinition|batchSetDefinition)*
+ | 'discriminatedType' name=idExpression (attributes=attributeList) (LBRACKET params=argumentList RBRACKET)? (fieldDefinition|batchSetDefinition)+
+ | 'enum' (type=typeReference)? name=idExpression (attributes=attributeList) (LBRACKET params=argumentList RBRACKET)? enumValues=enumValueDefinition+
+ | 'dataIo' name=idExpression (attributes=attributeList) (LBRACKET params=argumentList RBRACKET)? dataIoTypeSwitch=dataIoDefinition
  ;
 
 fieldDefinition
- : LBRACKET tryParse? field (LBRACKET params=multipleExpressions RBRACKET)? RBRACKET
+ : LBRACKET field (attributes=attributeList) (LBRACKET params=multipleExpressions RBRACKET)? RBRACKET
+ ;
+
+batchSetDefinition
+ : LBRACKET 'batchSet' attributes=attributeList fieldDefinition+ RBRACKET
  ;
 
 dataIoDefinition
@@ -102,7 +106,7 @@ manualField
  ;
 
 optionalField
- : 'optional' type=typeReference name=idExpression condition=expression
+ : 'optional' type=typeReference name=idExpression (condition=expression)?
  ;
 
 paddingField
@@ -149,14 +153,19 @@ dataType
  | base='uint' size=INTEGER_LITERAL
  | base='float' exponent=INTEGER_LITERAL '.' mantissa=INTEGER_LITERAL
  | base='ufloat' exponent=INTEGER_LITERAL '.' mantissa=INTEGER_LITERAL
- | base='string' length=expression (encoding=idExpression)?
+ | base='string' size=INTEGER_LITERAL
+ | base='vstring' (length=expression)?
  | base='time'
  | base='date'
  | base='dateTime'
  ;
 
-tryParse
- : 'try'
+attribute
+ : name=IDENTIFIER_LITERAL '=' value=expression
+ ;
+
+attributeList
+ : attribute*
  ;
 
 argument
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAbstractField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAbstractField.java
index 6bcbb4d..e2cd52a 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAbstractField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAbstractField.java
@@ -19,7 +19,6 @@
 package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
 
 import org.apache.plc4x.plugins.codegenerator.types.fields.AbstractField;
-import org.apache.plc4x.plugins.codegenerator.types.fields.SimpleField;
 import org.apache.plc4x.plugins.codegenerator.types.references.TypeReference;
 import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
 
@@ -33,8 +32,8 @@ public class DefaultAbstractField extends DefaultField implements AbstractField
     private final String name;
     private final List<Term> params;
 
-    public DefaultAbstractField(List<String> tags, boolean isTry, TypeReference type, String name, List<Term> params) {
-        super(tags, isTry);
+    public DefaultAbstractField(List<String> tags, TypeReference type, String name, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.params = params;
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultArrayField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultArrayField.java
index 55a5fef..6592155 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultArrayField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultArrayField.java
@@ -34,8 +34,8 @@ public class DefaultArrayField extends DefaultField implements ArrayField {
     private final Term loopExpression;
     private final List<Term> params;
 
-    public DefaultArrayField(List<String> tags, boolean isTry, TypeReference type, String name, LoopType loopType, Term loopExpression, List<Term> params) {
-        super(tags, isTry);
+    public DefaultArrayField(List<String> tags, TypeReference type, String name, LoopType loopType, Term loopExpression, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.loopType = Objects.requireNonNull(loopType);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAssertField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAssertField.java
index 514a1ab..4ee6a9f 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAssertField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultAssertField.java
@@ -33,8 +33,8 @@ public class DefaultAssertField extends DefaultField implements AssertField {
     private final Term conditionExpression;
     private final List<Term> params;
 
-    public DefaultAssertField(List<String> tags, boolean isTry, TypeReference type, String name, Term conditionExpression, List<Term> params) {
-        super(tags, isTry);
+    public DefaultAssertField(List<String> tags, TypeReference type, String name, Term conditionExpression, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.conditionExpression = Objects.requireNonNull(conditionExpression);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultChecksumField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultChecksumField.java
index f51a7d3..fe0ad56 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultChecksumField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultChecksumField.java
@@ -33,8 +33,8 @@ public class DefaultChecksumField extends DefaultField implements ChecksumField
     private final String name;
     private final Term checksumExpression;
 
-    public DefaultChecksumField(List<String> tags, boolean isTry, TypeReference type, String name, Term checksumExpression) {
-        super(tags, isTry);
+    public DefaultChecksumField(List<String> tags, TypeReference type, String name, Term checksumExpression) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.checksumExpression = Objects.requireNonNull(checksumExpression);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultConstField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultConstField.java
index a5373ed..26f7a67 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultConstField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultConstField.java
@@ -33,8 +33,8 @@ public class DefaultConstField extends DefaultField implements ConstField {
     private final String name;
     private final Object referenceValue;
 
-    public DefaultConstField(List<String> tags, boolean isTry, TypeReference type, String name, Object referenceValue) {
-        super(tags, isTry);
+    public DefaultConstField(List<String> tags, TypeReference type, String name, Object referenceValue) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.referenceValue = Objects.requireNonNull(referenceValue);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultDiscriminatorField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultDiscriminatorField.java
index 69c8d51..3e23b6d 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultDiscriminatorField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultDiscriminatorField.java
@@ -32,8 +32,8 @@ public class DefaultDiscriminatorField extends DefaultField implements Discrimin
     private final TypeReference type;
     private final String name;
 
-    public DefaultDiscriminatorField(List<String> tags, boolean isTry, TypeReference type, String name) {
-        super(tags, isTry);
+    public DefaultDiscriminatorField(List<String> tags, TypeReference type, String name) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
     }
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultEnumField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultEnumField.java
index ba7ba5e..96db23c 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultEnumField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultEnumField.java
@@ -33,8 +33,8 @@ public class DefaultEnumField extends DefaultField implements EnumField {
     private final String fieldName;
     private final List<Term> params;
 
-    public DefaultEnumField(List<String> tags, boolean isTry, TypeReference type, String name, String fieldName, List<Term> params) {
-        super(tags, isTry);
+    public DefaultEnumField(List<String> tags, TypeReference type, String name, String fieldName, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.fieldName = fieldName;
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultField.java
index 4aee4c3..0bed904 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultField.java
@@ -18,20 +18,12 @@
  */
 package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
 
-import org.apache.plc4x.plugins.codegenerator.types.fields.TryField;
-
 import java.util.List;
 
-public abstract class DefaultField extends DefaultTaggedField implements TryField {
-
-    private final boolean isTry;
+public abstract class DefaultField extends DefaultTaggedField {
 
-    protected DefaultField(List<String> tags, boolean isTry) {
+    protected DefaultField(List<String> tags) {
         super(tags);
-        this.isTry = isTry;
     }
 
-    public boolean isTry() {
-        return isTry;
-    }
 }
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultImplicitField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultImplicitField.java
index dc78b8a..e12b333 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultImplicitField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultImplicitField.java
@@ -33,8 +33,8 @@ public class DefaultImplicitField extends DefaultField implements ImplicitField
     private final String name;
     private final Term serializeExpression;
 
-    public DefaultImplicitField(List<String> tags, boolean isTry, TypeReference type, String name, Term serializeExpression) {
-        super(tags, isTry);
+    public DefaultImplicitField(List<String> tags, TypeReference type, String name, Term serializeExpression) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.serializeExpression = Objects.requireNonNull(serializeExpression);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualArrayField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualArrayField.java
index e438118..80d875a 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualArrayField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualArrayField.java
@@ -37,8 +37,8 @@ public class DefaultManualArrayField extends DefaultField implements ManualArray
     private final Term lengthExpression;
     private final List<Term> params;
 
-    public DefaultManualArrayField(List<String> tags, boolean isTry, TypeReference type, String name, LoopType loopType, Term loopExpression, Term parseExpression, Term serializeExpression, Term lengthExpression, List<Term> params) {
-        super(tags, isTry);
+    public DefaultManualArrayField(List<String> tags, TypeReference type, String name, LoopType loopType, Term loopExpression, Term parseExpression, Term serializeExpression, Term lengthExpression, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.loopType = Objects.requireNonNull(loopType);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualField.java
index b8e7d68..6777652 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultManualField.java
@@ -35,8 +35,8 @@ public class DefaultManualField extends DefaultField implements ManualField {
     private final Term lengthExpression;
     private final List<Term> params;
 
-    public DefaultManualField(List<String> tags, boolean isTry, TypeReference type, String name, Term parseExpression, Term serializeExpression, Term lengthExpression, List<Term> params) {
-        super(tags, isTry);
+    public DefaultManualField(List<String> tags, TypeReference type, String name, Term parseExpression, Term serializeExpression, Term lengthExpression, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.parseExpression = Objects.requireNonNull(parseExpression);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultOptionalField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultOptionalField.java
index 4ef70f5..50e5463 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultOptionalField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultOptionalField.java
@@ -33,11 +33,11 @@ public class DefaultOptionalField extends DefaultField implements OptionalField
     private final Term conditionExpression;
     private final List<Term> params;
 
-    public DefaultOptionalField(List<String> tags, boolean isTry, TypeReference type, String name, Term conditionExpression, List<Term> params) {
-        super(tags, isTry);
+    public DefaultOptionalField(List<String> tags, TypeReference type, String name, Term conditionExpression, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
-        this.conditionExpression = Objects.requireNonNull(conditionExpression);
+        this.conditionExpression = conditionExpression;
         this.params = params;
     }
 
@@ -49,8 +49,8 @@ public class DefaultOptionalField extends DefaultField implements OptionalField
         return name;
     }
 
-    public Term getConditionExpression() {
-        return conditionExpression;
+    public Optional<Term> getConditionExpression() {
+        return Optional.ofNullable(conditionExpression);
     }
 
     public Optional<List<Term>> getParams() {
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultPaddingField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultPaddingField.java
index a476ee1..26f63b4 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultPaddingField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultPaddingField.java
@@ -34,8 +34,8 @@ public class DefaultPaddingField extends DefaultField implements PaddingField {
     private final Term paddingCondition;
     private final List<Term> params;
 
-    public DefaultPaddingField(List<String> tags, boolean isTry, TypeReference type, String name, Term paddingValue, Term paddingCondition, List<Term> params) {
-        super(tags, isTry);
+    public DefaultPaddingField(List<String> tags, TypeReference type, String name, Term paddingValue, Term paddingCondition, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.paddingValue = Objects.requireNonNull(paddingValue);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultReservedField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultReservedField.java
index 8ec0089..5d803e1 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultReservedField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultReservedField.java
@@ -32,8 +32,8 @@ public class DefaultReservedField extends DefaultField implements ReservedField
     private final TypeReference type;
     private final Object referenceValue;
 
-    public DefaultReservedField(List<String> tags, boolean isTry, TypeReference type, Object referenceValue) {
-        super(tags, isTry);
+    public DefaultReservedField(List<String> tags, TypeReference type, Object referenceValue) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.referenceValue = Objects.requireNonNull(referenceValue);
     }
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSimpleField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSimpleField.java
index 780d02d..5b5c3a7 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSimpleField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSimpleField.java
@@ -32,8 +32,8 @@ public class DefaultSimpleField extends DefaultField implements SimpleField {
     private final String name;
     private final List<Term> params;
 
-    public DefaultSimpleField(List<String> tags, boolean isTry, TypeReference type, String name, List<Term> params) {
-        super(tags, isTry);
+    public DefaultSimpleField(List<String> tags, TypeReference type, String name, List<Term> params) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.params = params;
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSwitchField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSwitchField.java
index c67cba0..a96b5d2 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSwitchField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultSwitchField.java
@@ -21,12 +21,11 @@ package org.apache.plc4x.plugins.codegenerator.language.mspec.model.fields;
 
 import org.apache.plc4x.plugins.codegenerator.types.definitions.DiscriminatedComplexTypeDefinition;
 import org.apache.plc4x.plugins.codegenerator.types.fields.SwitchField;
-import org.apache.plc4x.plugins.codegenerator.types.fields.TryField;
 import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
 
 import java.util.*;
 
-public class DefaultSwitchField implements SwitchField, TryField {
+public class DefaultSwitchField implements SwitchField {
 
     private final boolean isTry;
     private final List<Term> discriminatorExpressions;
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultUnknownField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultUnknownField.java
index e0db6de..5550e55 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultUnknownField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultUnknownField.java
@@ -31,8 +31,8 @@ public class DefaultUnknownField extends DefaultField implements UnknownField {
 
     private final TypeReference type;
 
-    public DefaultUnknownField(List<String> tags, boolean isTry, TypeReference type) {
-        super(tags, isTry);
+    public DefaultUnknownField(List<String> tags, TypeReference type) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
     }
 
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultVirtualField.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultVirtualField.java
index f273a45..2b1f35c 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultVirtualField.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/model/fields/DefaultVirtualField.java
@@ -33,8 +33,8 @@ public class DefaultVirtualField extends DefaultField implements VirtualField {
     private final String name;
     private final Term valueExpression;
 
-    public DefaultVirtualField(List<String> tags, boolean isTry, TypeReference type, String name, Term valueExpression) {
-        super(tags, isTry);
+    public DefaultVirtualField(List<String> tags, TypeReference type, String name, Term valueExpression) {
+        super(tags);
         this.type = Objects.requireNonNull(type);
         this.name = Objects.requireNonNull(name);
         this.valueExpression = Objects.requireNonNull(valueExpression);
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
index 34e01ad..2455c5b 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
@@ -34,9 +34,9 @@ import org.apache.plc4x.plugins.codegenerator.types.fields.Field;
 import org.apache.plc4x.plugins.codegenerator.types.fields.ManualArrayField;
 import org.apache.plc4x.plugins.codegenerator.types.fields.SwitchField;
 import org.apache.plc4x.plugins.codegenerator.types.references.*;
+import org.apache.plc4x.plugins.codegenerator.types.terms.DefaultNumericLiteral;
 import org.apache.plc4x.plugins.codegenerator.types.terms.Term;
 
-import javax.xml.crypto.OctetStreamData;
 import java.io.InputStream;
 import java.nio.charset.Charset;
 import java.util.*;
@@ -140,7 +140,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         String name = getIdString(ctx.name);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultAbstractField(null, fieldDefinitionContext.tryParse() != null, type, name, params);
+        Field field = new DefaultAbstractField(null, type, name, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -155,7 +155,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         Term loopExpression = getExpressionTerm(loopExpressionString);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultArrayField(null, fieldDefinitionContext.tryParse() != null, type, name, loopType, loopExpression, params);
+        Field field = new DefaultArrayField(null, type, name, loopType, loopExpression, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -167,8 +167,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         String name = getIdString(ctx.name);
         String checksumExpressionString = getExprString(ctx.checksumExpression);
         Term checksumExpression = getExpressionTerm(checksumExpressionString);
-        MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
-        Field field = new DefaultChecksumField(null, fieldDefinitionContext.tryParse() != null, type, name, checksumExpression);
+        Field field = new DefaultChecksumField(null, type, name, checksumExpression);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -179,8 +178,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         TypeReference type = ctx.type.dataType() != null ? getSimpleTypeReference(ctx.type.dataType()) : getTypeReference(ctx.type);
         String name = getIdString(ctx.name);
         String expected = getExprString(ctx.expected);
-        MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
-        Field field = new DefaultConstField(null, fieldDefinitionContext.tryParse() != null, type, name, expected);
+        Field field = new DefaultConstField(null, type, name, expected);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -190,8 +188,7 @@ public class MessageFormatListener extends MSpecBaseListener {
     public void enterDiscriminatorField(MSpecParser.DiscriminatorFieldContext ctx) {
         TypeReference type = getTypeReference(ctx.type);
         String name = getIdString(ctx.name);
-        MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
-        Field field = new DefaultDiscriminatorField(null, fieldDefinitionContext.tryParse() != null, type, name);
+        Field field = new DefaultDiscriminatorField(null, type, name);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -207,7 +204,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         }
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultEnumField(null, fieldDefinitionContext.tryParse() != null, type, name, fieldName, params);
+        Field field = new DefaultEnumField(null, type, name, fieldName, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -219,8 +216,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         String name = getIdString(ctx.name);
         String serializeExpressionString = getExprString(ctx.serializeExpression);
         Term serializeExpression = getExpressionTerm(serializeExpressionString);
-        MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
-        Field field = new DefaultImplicitField(null, fieldDefinitionContext.tryParse() != null, type, name, serializeExpression);
+        Field field = new DefaultImplicitField(null, type, name, serializeExpression);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -234,7 +230,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         Term conditionExpression = getExpressionTerm(conditionExpressionString);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultAssertField(null, fieldDefinitionContext.tryParse() != null, type, name, conditionExpression, params);
+        Field field = new DefaultAssertField(null, type, name, conditionExpression, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -256,7 +252,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         Term lengthExpression = getExpressionTerm(lengthExpressionString);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultManualArrayField(null, fieldDefinitionContext.tryParse() != null, type, name, loopType, loopExpression,
+        Field field = new DefaultManualArrayField(null, type, name, loopType, loopExpression,
             parseExpression, serializeExpression, lengthExpression, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
@@ -275,7 +271,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         Term lengthExpression = getExpressionTerm(lengthExpressionString);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultManualField(null, fieldDefinitionContext.tryParse() != null, type, name, parseExpression, serializeExpression,
+        Field field = new DefaultManualField(null, type, name, parseExpression, serializeExpression,
             lengthExpression, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
@@ -290,7 +286,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         Term conditionExpression = getExpressionTerm(conditionExpressionString);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultOptionalField(null, fieldDefinitionContext.tryParse() != null, type, name, conditionExpression, params);
+        Field field = new DefaultOptionalField(null, type, name, conditionExpression, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -306,7 +302,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         Term paddingCondition = getExpressionTerm(paddingConditionString);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultPaddingField(null, fieldDefinitionContext.tryParse() != null, type, name, paddingValue, paddingCondition, params);
+        Field field = new DefaultPaddingField(null, type, name, paddingValue, paddingCondition, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -316,7 +312,7 @@ public class MessageFormatListener extends MSpecBaseListener {
     public void enterReservedField(MSpecParser.ReservedFieldContext ctx) {
         SimpleTypeReference type = getSimpleTypeReference(ctx.type);
         String expected = getExprString(ctx.expected);
-        Field field = new DefaultReservedField(null, false, type, expected);
+        Field field = new DefaultReservedField(null, type, expected);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -328,7 +324,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         String name = getIdString(ctx.name);
         MSpecParser.FieldDefinitionContext fieldDefinitionContext = (MSpecParser.FieldDefinitionContext) ctx.parent.parent;
         List<Term> params = getFieldParams(fieldDefinitionContext);
-        Field field = new DefaultSimpleField(null, fieldDefinitionContext.tryParse() != null, type, name, params);
+        Field field = new DefaultSimpleField(null, type, name, params);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -349,7 +345,7 @@ public class MessageFormatListener extends MSpecBaseListener {
     @Override
     public void enterUnknownField(MSpecParser.UnknownFieldContext ctx) {
         SimpleTypeReference type = getSimpleTypeReference(ctx.type);
-        Field field = new DefaultUnknownField(null, false, type);
+        Field field = new DefaultUnknownField(null, type);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -361,7 +357,7 @@ public class MessageFormatListener extends MSpecBaseListener {
         String name = getIdString(ctx.name);
         String valueExpressionString = getExprString(ctx.valueExpression);
         Term valueExpression = getExpressionTerm(valueExpressionString);
-        Field field = new DefaultVirtualField(null, false, type, name, valueExpression);
+        Field field = new DefaultVirtualField(null, type, name, valueExpression);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
@@ -478,12 +474,17 @@ public class MessageFormatListener extends MSpecBaseListener {
         SimpleTypeReference.SimpleBaseType simpleBaseType =
             SimpleTypeReference.SimpleBaseType.valueOf(ctx.base.getText().toUpperCase());
         // String types need an additional "encoding" field and length expression.
-        if (simpleBaseType == SimpleTypeReference.SimpleBaseType.STRING) {
-            String encoding = (ctx.encoding != null) ? ctx.encoding.getText() : "UTF-8";
-            Term lengthExpression = getExpressionTerm(ctx.length.getText().substring(1, ctx.length.getText().length() - 1));
-            return new DefaultStringTypeReference(simpleBaseType, lengthExpression, encoding);
+        if ((simpleBaseType == SimpleTypeReference.SimpleBaseType.STRING) ||
+                (simpleBaseType == SimpleTypeReference.SimpleBaseType.VSTRING)) {
+            if (simpleBaseType == SimpleTypeReference.SimpleBaseType.VSTRING) {
+                Term lengthExpression = getExpressionTerm(ctx.length.getText().substring(1, ctx.length.getText().length() - 1));
+                return new DefaultStringTypeReference(simpleBaseType, lengthExpression, "UTF-8");
+            } else {
+                int size = Integer.parseInt(ctx.size.getText());
+                return new DefaultStringTypeReference(simpleBaseType, new DefaultNumericLiteral(size), "UTF-8");
+            }
         }
-        // If a size it specified its a simple integer length based type.
+        // If a size it specified it's a simple integer length based type.
         if (ctx.size != null) {
             int size = Integer.parseInt(ctx.size.getText());
             return new DefaultIntegerTypeReference(simpleBaseType, size);
diff --git a/code-generation/protocol-base-mspec/src/test/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatParserTest.java b/code-generation/protocol-base-mspec/src/test/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatParserTest.java
index c914d68..779c57f 100644
--- a/code-generation/protocol-base-mspec/src/test/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatParserTest.java
+++ b/code-generation/protocol-base-mspec/src/test/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatParserTest.java
@@ -19,10 +19,8 @@
 package org.apache.plc4x.plugins.codegenerator.language.mspec.parser;
 
 import org.apache.plc4x.plugins.codegenerator.types.definitions.TypeDefinition;
-import org.apache.plc4x.plugins.codegenerator.types.exceptions.GenerationException;
 import org.junit.jupiter.api.Test;
 
-import java.io.InputStream;
 import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -47,4 +45,5 @@ class MessageFormatParserTest {
         Map<String, TypeDefinition> parse = SUT.parse(getClass().getResourceAsStream("/mspec.example2"));
         System.out.println(parse);
     }
+
 }
\ No newline at end of file
diff --git a/code-generation/protocol-base-mspec/src/test/resources/mspec.example b/code-generation/protocol-base-mspec/src/test/resources/mspec.example
index e07bf8c..7128fb9 100644
--- a/code-generation/protocol-base-mspec/src/test/resources/mspec.example
+++ b/code-generation/protocol-base-mspec/src/test/resources/mspec.example
@@ -361,5 +361,5 @@
 [type 'VariableStringType'
     //Confirm implicit can be used in string length
     [implicit uint 32 'stringLength' 'stringValue.lengthInBytes']
-    [simple string 'stringLength' 'stringValue']
+    [simple vstring 'stringLength' 'stringValue']
 ]
\ No newline at end of file
diff --git a/code-generation/protocol-base-mspec/src/test/resources/mspec.example2 b/code-generation/protocol-base-mspec/src/test/resources/mspec.example2
index 04d89ff..1cb6b02 100644
--- a/code-generation/protocol-base-mspec/src/test/resources/mspec.example2
+++ b/code-generation/protocol-base-mspec/src/test/resources/mspec.example2
@@ -94,7 +94,7 @@
     [simple uint 8 'uintField']
     [simple float 8.23 'floatField']
     [simple float 11.52 'doubleField']
-    [simple string '8' 'UTF-8' 'stringField']
+    [simple string 8 'stringField' encoding='UTF-8']
 ]
 
 [type 'AbstractTypeTest'
@@ -105,7 +105,7 @@
     [abstract uint 8 'abstractUintField']
     [abstract float 8.23 'abstractFloatField']
     [abstract float 11.52 'abstractDoubleField']
-    [abstract string '8' 'UTF-8' 'abstractStringField']
+    [abstract string 8 'abstractStringField' encoding='UTF-8']
     [typeSwitch 'simpleField'
         ['0' AbstractedType
             [simple bit 'abstractBitField']
@@ -113,7 +113,7 @@
             [simple uint 8 'abstractUintField']
             [simple float 8.23 'abstractFloatField']
             [simple float 11.52 'abstractDoubleField']
-            [simple string '8' 'UTF-8' 'abstractStringField']
+            [simple string 8 'abstractStringField' encoding='UTF-8']
         ]
     ]
 ]
@@ -126,7 +126,7 @@
     [abstract uint 8 'abstractUintField']
     [abstract float 8.23 'abstractFloatField']
     [abstract float 11.52 'abstractDoubleField']
-    [abstract string '8' 'UTF-8' 'abstractStringField']
+    [abstract string 8 'abstractStringField' encoding='UTF-8']
     [typeSwitch 'simpleField'
         ['0' AbstractedType
             //Abstract fields need to be overriden in child
@@ -135,7 +135,7 @@
             [simple uint 8 'abstractUintField']
             [simple float 8.23 'abstractFloatField']
             [simple float 11.52 'abstractDoubleField']
-            [simple string '8' 'UTF-8' 'abstractStringField']
+            [simple string 8 'abstractStringField' encoding='UTF-8']
         ]
     ]
 ]
@@ -146,7 +146,7 @@
     [array uint 8 'uintField' count      '5']
     [array float 8.23 'floatField' count      '5']
     [array float 11.52 'doubleField' count      '5']
-    [array string '8' 'UTF-8' 'stringField' count      '5']
+    [array string 8 'stringField' count      '5' encoding='UTF-8']
 ]
 
 //TODO: Checksums fields are not supported in C
@@ -159,7 +159,7 @@
     //[checksum float 8.23 'floatField' '100.0f']
     //[checksum float 11.52 'doubleField' '100.0']
     //String field cannot be used as a checksum
-    //[checksum string '11 * 8' 'UTF-8' 'stringField' '"HELLO TODDY"']
+    //[checksum vstring '11 * 8' 'stringField' '"HELLO TODDY"' encoding='UTF-8']
 //]
 
 [type 'ConstTypeTest'
@@ -168,7 +168,7 @@
     [const uint 8 'uintField' '100']
     [const float 8.23 'floatField' '100.0']
     [const float 11.52 'doubleField' '100.0']
-    [const string '8' 'UTF-8' 'stringField' '"HELLO TODDY"']
+    [const string 8 'stringField' '"HELLO TODDY"' encoding='UTF-8']
 ]
 
 [type 'EnumTypeTest'
@@ -177,12 +177,12 @@
 
 [type 'PascalStringTypeTest'
     [simple int 8 'stringLength']
-    [simple string 'stringLength' 'UTF-8' 'stringField']
+    [simple vstring 'stringLength' 'stringField' encoding='UTF-8']
 ]
 
 [type 'ImplicitPascalStringTypeTest'
     [implicit int 8 'stringLength' 'stringField.length']
-    [simple string 'stringLength' 'UTF-8' 'stringField']
+    [simple vstring 'stringLength' 'stringField' encoding='UTF-8']
 ]
 
 [type 'ImplicitTypeTest'
@@ -196,7 +196,7 @@
     [implicit float 8.23 'floatField' 'simpleField']
     [implicit float 11.52 'doubleField' 'simpleField']
     //TODO: String literals can't be used in the expression
-    //[implicit string '8' 'UTF-8' 'stringField' 'simpleField > 0 ? "HELLO TODDY" : "BYE TODDY"']
+    //[implicit string 8 'stringField' 'simpleField > 0 ? "HELLO TODDY" : "BYE TODDY"' encoding='UTF-8']
 ]
 
 [type 'OptionalTypeTest'
@@ -221,7 +221,7 @@
 //    [virtual uint 8 'virtualUintField' 'simpleField']
 //    [virtual float 8.23 'virtualFloatField' 'simpleField']
 //    [virtual float 11.52 'virtualDoubleField' 'simpleField']
-//    [virtual string '24' 'virtualStringField' 'simpleField']
+//    [virtual string 24 'virtualStringField' 'simpleField']
 //]
 
 //TODO: Virtual fields fail for GO, haven't checked C assuming fails.
@@ -232,7 +232,7 @@
 //    [virtual uint 8 'virtualUintField' 'simpleField']
 //    [virtual float 8.23 'virtualFloatField' 'simpleField']
 //    [virtual float 11.52 'virtualDoubleField' 'simpleField']
-//    [virtual string '24' 'UTF-8' 'virtualStringField' 'simpleField']
+//    [virtual string 24 'virtualStringField' 'simpleField' encoding='UTF-8']
 //    [typeSwitch 'simpleField'
 //        ['0' DiscriminatedVirtualType
 //            [simple int 8 'intField']
@@ -401,7 +401,7 @@
 //]
 
 //TODO:  C doesn't support non integer switch fields
-//[enum string '-1' 'EnumTypeString'
+//[enum  '-1' 'EnumTypeString'
 //    ['Toddy1' TODDY]
 //]
 
@@ -425,7 +425,7 @@
 //]
 
 //Showing allowed parameter types for enums
-[enum int 8 'EnumTypeParameters'  [bit 'bitType', int 8 'intType', uint 8 'uintType', string '-1' 'stringType', EnumType 'enumType']
+[enum int 8 'EnumTypeParameters'  [bit 'bitType', int 8 'intType', uint 8 'uintType', string 32 'stringType', EnumType 'enumType']
     ['0x01' BOOL             ['false'      , '1'               , '1'                 , 'BOOL'         , 'BOOL']]
     ['0x02' BYTE             ['true'       , '2'               , '2'                 , 'BYTE'         , 'UINT']]
 ]
diff --git a/code-generation/protocol-test/pom.xml b/code-generation/protocol-test/pom.xml
index 18e15b1..b0b181e 100644
--- a/code-generation/protocol-test/pom.xml
+++ b/code-generation/protocol-test/pom.xml
@@ -29,7 +29,7 @@
 
   <artifactId>plc4x-code-generation-protocol-test</artifactId>
 
-  <name>PLC4X: Build Utils: Protocol Test: (Documentation)</name>
+  <name>Code-Generation: Protocol Test: (Documentation)</name>
   <description>Fake protocol intended for demonstrating the different features and aspects of MSpec.</description>
 
   <build>
@@ -214,7 +214,6 @@
       <artifactId>plc4x-code-generation-protocol-base-mspec</artifactId>
       <version>0.10.0-SNAPSHOT</version>
     </dependency>
-
   </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec b/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec
index 04d89ff..e2f060c 100644
--- a/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec
+++ b/code-generation/protocol-test/src/main/resources/protocols/test/test.mspec
@@ -94,7 +94,7 @@
     [simple uint 8 'uintField']
     [simple float 8.23 'floatField']
     [simple float 11.52 'doubleField']
-    [simple string '8' 'UTF-8' 'stringField']
+    [simple string 8 'stringField']
 ]
 
 [type 'AbstractTypeTest'
@@ -105,7 +105,7 @@
     [abstract uint 8 'abstractUintField']
     [abstract float 8.23 'abstractFloatField']
     [abstract float 11.52 'abstractDoubleField']
-    [abstract string '8' 'UTF-8' 'abstractStringField']
+    [abstract string 8 'abstractStringField']
     [typeSwitch 'simpleField'
         ['0' AbstractedType
             [simple bit 'abstractBitField']
@@ -113,7 +113,7 @@
             [simple uint 8 'abstractUintField']
             [simple float 8.23 'abstractFloatField']
             [simple float 11.52 'abstractDoubleField']
-            [simple string '8' 'UTF-8' 'abstractStringField']
+            [simple string 8 'abstractStringField']
         ]
     ]
 ]
@@ -126,7 +126,7 @@
     [abstract uint 8 'abstractUintField']
     [abstract float 8.23 'abstractFloatField']
     [abstract float 11.52 'abstractDoubleField']
-    [abstract string '8' 'UTF-8' 'abstractStringField']
+    [abstract string 8 'abstractStringField']
     [typeSwitch 'simpleField'
         ['0' AbstractedType
             //Abstract fields need to be overriden in child
@@ -135,7 +135,7 @@
             [simple uint 8 'abstractUintField']
             [simple float 8.23 'abstractFloatField']
             [simple float 11.52 'abstractDoubleField']
-            [simple string '8' 'UTF-8' 'abstractStringField']
+            [simple string 8 'abstractStringField']
         ]
     ]
 ]
@@ -146,7 +146,7 @@
     [array uint 8 'uintField' count      '5']
     [array float 8.23 'floatField' count      '5']
     [array float 11.52 'doubleField' count      '5']
-    [array string '8' 'UTF-8' 'stringField' count      '5']
+    [array string 8 'stringField' count      '5']
 ]
 
 //TODO: Checksums fields are not supported in C
@@ -159,7 +159,7 @@
     //[checksum float 8.23 'floatField' '100.0f']
     //[checksum float 11.52 'doubleField' '100.0']
     //String field cannot be used as a checksum
-    //[checksum string '11 * 8' 'UTF-8' 'stringField' '"HELLO TODDY"']
+    //[checksum vstring '11 * 8' 'stringField' '"HELLO TODDY"']
 //]
 
 [type 'ConstTypeTest'
@@ -168,7 +168,7 @@
     [const uint 8 'uintField' '100']
     [const float 8.23 'floatField' '100.0']
     [const float 11.52 'doubleField' '100.0']
-    [const string '8' 'UTF-8' 'stringField' '"HELLO TODDY"']
+    [const string 8 'stringField' '"HELLO TODDY"']
 ]
 
 [type 'EnumTypeTest'
@@ -177,12 +177,12 @@
 
 [type 'PascalStringTypeTest'
     [simple int 8 'stringLength']
-    [simple string 'stringLength' 'UTF-8' 'stringField']
+    [simple vstring 'stringLength' 'stringField']
 ]
 
 [type 'ImplicitPascalStringTypeTest'
     [implicit int 8 'stringLength' 'stringField.length']
-    [simple string 'stringLength' 'UTF-8' 'stringField']
+    [simple vstring 'stringLength' 'stringField']
 ]
 
 [type 'ImplicitTypeTest'
@@ -196,7 +196,7 @@
     [implicit float 8.23 'floatField' 'simpleField']
     [implicit float 11.52 'doubleField' 'simpleField']
     //TODO: String literals can't be used in the expression
-    //[implicit string '8' 'UTF-8' 'stringField' 'simpleField > 0 ? "HELLO TODDY" : "BYE TODDY"']
+    //[implicit string 8 'stringField' 'simpleField > 0 ? "HELLO TODDY" : "BYE TODDY"']
 ]
 
 [type 'OptionalTypeTest'
@@ -221,7 +221,7 @@
 //    [virtual uint 8 'virtualUintField' 'simpleField']
 //    [virtual float 8.23 'virtualFloatField' 'simpleField']
 //    [virtual float 11.52 'virtualDoubleField' 'simpleField']
-//    [virtual string '24' 'virtualStringField' 'simpleField']
+//    [virtual string 24 'virtualStringField' 'simpleField']
 //]
 
 //TODO: Virtual fields fail for GO, haven't checked C assuming fails.
@@ -232,7 +232,7 @@
 //    [virtual uint 8 'virtualUintField' 'simpleField']
 //    [virtual float 8.23 'virtualFloatField' 'simpleField']
 //    [virtual float 11.52 'virtualDoubleField' 'simpleField']
-//    [virtual string '24' 'UTF-8' 'virtualStringField' 'simpleField']
+//    [virtual string 24 'virtualStringField' 'simpleField']
 //    [typeSwitch 'simpleField'
 //        ['0' DiscriminatedVirtualType
 //            [simple int 8 'intField']
@@ -401,7 +401,7 @@
 //]
 
 //TODO:  C doesn't support non integer switch fields
-//[enum string '-1' 'EnumTypeString'
+//[enum string 48 'EnumTypeString'
 //    ['Toddy1' TODDY]
 //]
 
@@ -413,7 +413,7 @@
 //]
 
 //TODO:  Float parameters aren't implemented for constants in enums in C
-//[enum int 8 'EnumTypeAllTest'  [bit 'bitType', int 8 'intType', uint 8 'uintType', float 8.23 'floatType', float 11.52 'doubleType', string '-1' 'stringType', EnumType 'enumType']
+//[enum int 8 'EnumTypeAllTest'  [bit 'bitType', int 8 'intType', uint 8 'uintType', float 8.23 'floatType', float 11.52 'doubleType', string 32 'stringType', EnumType 'enumType']
 //    ['0x01' BOOL             ['false'      , '1'               , '1'                 , '100.0'                  , '100.0'              , 'BOOL'         , 'BOOL']]
 //    ['0x02' BYTE             ['true'       , '2'               , '2'                 , '101.1'                  , '101.1'              , 'BYTE'         , 'UINT']]
 //]
@@ -425,7 +425,7 @@
 //]
 
 //Showing allowed parameter types for enums
-[enum int 8 'EnumTypeParameters'  [bit 'bitType', int 8 'intType', uint 8 'uintType', string '-1' 'stringType', EnumType 'enumType']
+[enum int 8 'EnumTypeParameters'  [bit 'bitType', int 8 'intType', uint 8 'uintType', string 32 'stringType', EnumType 'enumType']
     ['0x01' BOOL             ['false'      , '1'               , '1'                 , 'BOOL'         , 'BOOL']]
     ['0x02' BYTE             ['true'       , '2'               , '2'                 , 'BYTE'         , 'UINT']]
 ]
diff --git a/plc4c/generated-sources/s7/src/data_item.c b/plc4c/generated-sources/s7/src/data_item.c
index 25aa858..93eabd0 100644
--- a/plc4c/generated-sources/s7/src/data_item.c
+++ b/plc4c/generated-sources/s7/src/data_item.c
@@ -253,28 +253,28 @@ plc4c_return_code plc4c_s7_read_write_data_item_parse(plc4c_spi_read_buffer* rea
     } else         if(strcmp(dataProtocolId, "IEC61131_CHAR") == 0) { /* CHAR */
 
                 // Manual Field (value)
-                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "UTF-8"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "TF-"));
 
                 *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(readBuffer, "UTF-16"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_char(readBuffer, "TF-"));
 
                 *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(readBuffer, stringLength, "UTF-8"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "TF-"));
 
                 *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(readBuffer, stringLength, "UTF-16"));
+                char* value = (char*) (plc4c_s7_read_write_parse_s7_string(readBuffer, stringLength, "TF-"));
 
                 *data_item = plc4c_data_create_string_data(stringLength, value);
 
diff --git a/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c b/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
index 4a26c6b..32d7b76 100644
--- a/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
+++ b/plc4c/generated-sources/s7/src/s7_payload_user_data_item.c
@@ -419,7 +419,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_parse(plc4c_spi_
                     
     // Simple Field (magicKey)
     char* magicKey = "";
-    _res = plc4c_spi_read_string(readBuffer, 64, "'UTF-8'", (char**) &magicKey);
+    _res = plc4c_spi_read_string(readBuffer, 64, "UTF-8", (char**) &magicKey);
     if(_res != OK) {
       return _res;
     }
@@ -1010,7 +1010,7 @@ plc4c_return_code plc4c_s7_read_write_s7_payload_user_data_item_serialize(plc4c_
       }
 
       // Simple Field (magicKey)
-      _res = plc4c_spi_write_string(writeBuffer, 64, "'UTF-8'", _message->s7_payload_user_data_item_cpu_function_msg_subscription_magic_key);
+      _res = plc4c_spi_write_string(writeBuffer, 64, "UTF-8", _message->s7_payload_user_data_item_cpu_function_msg_subscription_magic_key);
       if(_res != OK) {
         return _res;
       }
diff --git a/plc4go/internal/plc4go/abeth/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/abeth/readwrite/XmlParserHelper.go
index 7e51b7b..cd8a8eb 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/XmlParserHelper.go
@@ -23,8 +23,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/abeth/readwrite/model"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
-	"strconv"
-	"strings"
+    "strings"
+    "strconv"
 )
 
 // Code generated by code-generation. DO NOT EDIT.
@@ -41,20 +41,20 @@ func init() {
 }
 
 func (m AbethXmlParserHelper) Parse(typeName string, xmlString string, parserArguments ...string) (interface{}, error) {
-	switch typeName {
-	case "DF1RequestCommand":
-		return model.DF1RequestCommandParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "DF1RequestMessage":
-		return model.DF1RequestMessageParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "DF1ResponseMessage":
-		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 16)
-		if err != nil {
-			return nil, err
-		}
-		payloadLength := uint16(parsedUint0)
-		return model.DF1ResponseMessageParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), payloadLength)
-	case "CIPEncapsulationPacket":
-		return model.CIPEncapsulationPacketParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	}
-	return nil, errors.Errorf("Unsupported type %s", typeName)
+    switch typeName {
+        case "DF1RequestCommand":
+			return model.DF1RequestCommandParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "DF1RequestMessage":
+			return model.DF1RequestMessageParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "DF1ResponseMessage":
+			parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 16)
+			if err!=nil {
+				return nil, err
+			}
+			payloadLength := uint16(parsedUint0)
+            return model.DF1ResponseMessageParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), payloadLength  )
+        case "CIPEncapsulationPacket":
+			return model.CIPEncapsulationPacketParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+    }
+    return nil, errors.Errorf("Unsupported type %s", typeName)
 }
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
index 6c8c64e..4980903 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
@@ -19,11 +19,13 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type CIPEncapsulationConnectionRequest struct {
@@ -44,6 +46,7 @@ func (m *CIPEncapsulationConnectionRequest) CommandType() uint16 {
 	return 0x0101
 }
 
+
 func (m *CIPEncapsulationConnectionRequest) InitializeParent(parent *CIPEncapsulationPacket, sessionHandle uint32, status uint32, senderContext []uint8, options uint32) {
 	m.Parent.SessionHandle = sessionHandle
 	m.Parent.Status = status
@@ -92,6 +95,7 @@ func (m *CIPEncapsulationConnectionRequest) LengthInBitsConditional(lastItem boo
 	return lengthInBits
 }
 
+
 func (m *CIPEncapsulationConnectionRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -135,3 +139,6 @@ func (m *CIPEncapsulationConnectionRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
index e4b8546..77e7c4e 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
@@ -19,11 +19,13 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type CIPEncapsulationConnectionResponse struct {
@@ -44,6 +46,7 @@ func (m *CIPEncapsulationConnectionResponse) CommandType() uint16 {
 	return 0x0201
 }
 
+
 func (m *CIPEncapsulationConnectionResponse) InitializeParent(parent *CIPEncapsulationPacket, sessionHandle uint32, status uint32, senderContext []uint8, options uint32) {
 	m.Parent.SessionHandle = sessionHandle
 	m.Parent.Status = status
@@ -92,6 +95,7 @@ func (m *CIPEncapsulationConnectionResponse) LengthInBitsConditional(lastItem bo
 	return lengthInBits
 }
 
+
 func (m *CIPEncapsulationConnectionResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -135,3 +139,6 @@ func (m *CIPEncapsulationConnectionResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationPacket.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationPacket.go
index 1111635..97fc214 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationPacket.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationPacket.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"github.com/rs/zerolog/log"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type CIPEncapsulationPacket struct {
 	SessionHandle uint32
-	Status        uint32
+	Status uint32
 	SenderContext []uint8
-	Options       uint32
-	Child         ICIPEncapsulationPacketChild
+	Options uint32
+	Child ICIPEncapsulationPacketChild
 }
 
 // The corresponding interface
@@ -88,24 +90,24 @@ func (m *CIPEncapsulationPacket) LengthInBitsConditional(lastItem bool) uint16 {
 func (m *CIPEncapsulationPacket) ParentLengthInBits() uint16 {
 	lengthInBits := uint16(0)
 	// Discriminator Field (commandType)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Implicit Field (len)
 	lengthInBits += 16
 
 	// Simple field (sessionHandle)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (status)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Array field
 	if len(m.SenderContext) > 0 {
 		lengthInBits += 8 * uint16(len(m.SenderContext))
-	}
+				}
 
 	// Simple field (options)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Reserved Field (reserved)
 	lengthInBits += 32
@@ -125,7 +127,7 @@ func CIPEncapsulationPacketParse(readBuffer utils.ReadBuffer) (*CIPEncapsulation
 	// Discriminator Field (commandType) (Used as input to a switch field)
 	commandType, _commandTypeErr := readBuffer.ReadUint16("commandType", 16)
 	if _commandTypeErr != nil {
-		return nil, errors.Wrap(_commandTypeErr, "Error parsing 'commandType' field")
+	return nil, errors.Wrap(_commandTypeErr, "Error parsing 'commandType' field")
 	}
 
 	// Implicit Field (len) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
@@ -136,13 +138,13 @@ func CIPEncapsulationPacketParse(readBuffer utils.ReadBuffer) (*CIPEncapsulation
 	}
 
 	// Simple Field (sessionHandle)
-	sessionHandle, _sessionHandleErr := readBuffer.ReadUint32("sessionHandle", 32)
+sessionHandle, _sessionHandleErr := readBuffer.ReadUint32("sessionHandle", 32)
 	if _sessionHandleErr != nil {
 		return nil, errors.Wrap(_sessionHandleErr, "Error parsing 'sessionHandle' field")
 	}
 
 	// Simple Field (status)
-	status, _statusErr := readBuffer.ReadUint32("status", 32)
+status, _statusErr := readBuffer.ReadUint32("status", 32)
 	if _statusErr != nil {
 		return nil, errors.Wrap(_statusErr, "Error parsing 'status' field")
 	}
@@ -165,7 +167,7 @@ func CIPEncapsulationPacketParse(readBuffer utils.ReadBuffer) (*CIPEncapsulation
 	}
 
 	// Simple Field (options)
-	options, _optionsErr := readBuffer.ReadUint32("options", 32)
+options, _optionsErr := readBuffer.ReadUint32("options", 32)
 	if _optionsErr != nil {
 		return nil, errors.Wrap(_optionsErr, "Error parsing 'options' field")
 	}
@@ -179,7 +181,7 @@ func CIPEncapsulationPacketParse(readBuffer utils.ReadBuffer) (*CIPEncapsulation
 		if reserved != uint32(0x00000000) {
 			log.Info().Fields(map[string]interface{}{
 				"expected value": uint32(0x00000000),
-				"got value":      reserved,
+				"got value": reserved,
 			}).Msg("Got unexpected response.")
 		}
 	}
@@ -188,13 +190,13 @@ func CIPEncapsulationPacketParse(readBuffer utils.ReadBuffer) (*CIPEncapsulation
 	var _parent *CIPEncapsulationPacket
 	var typeSwitchError error
 	switch {
-	case commandType == 0x0101: // CIPEncapsulationConnectionRequest
-		_parent, typeSwitchError = CIPEncapsulationConnectionRequestParse(readBuffer)
-	case commandType == 0x0201: // CIPEncapsulationConnectionResponse
-		_parent, typeSwitchError = CIPEncapsulationConnectionResponseParse(readBuffer)
-	case commandType == 0x0107: // CIPEncapsulationReadRequest
-		_parent, typeSwitchError = CIPEncapsulationReadRequestParse(readBuffer)
-	case commandType == 0x0207: // CIPEncapsulationReadResponse
+case commandType == 0x0101 : // CIPEncapsulationConnectionRequest
+		_parent, typeSwitchError = CIPEncapsulationConnectionRequestParse(readBuffer, )
+case commandType == 0x0201 : // CIPEncapsulationConnectionResponse
+		_parent, typeSwitchError = CIPEncapsulationConnectionResponseParse(readBuffer, )
+case commandType == 0x0107 : // CIPEncapsulationReadRequest
+		_parent, typeSwitchError = CIPEncapsulationReadRequestParse(readBuffer, )
+case commandType == 0x0207 : // CIPEncapsulationReadResponse
 		_parent, typeSwitchError = CIPEncapsulationReadResponseParse(readBuffer, len)
 	default:
 		// TODO: return actual type
@@ -218,7 +220,7 @@ func (m *CIPEncapsulationPacket) Serialize(writeBuffer utils.WriteBuffer) error
 }
 
 func (m *CIPEncapsulationPacket) SerializeParent(writeBuffer utils.WriteBuffer, child ICIPEncapsulationPacket, serializeChildFunction func() error) error {
-	if pushErr := writeBuffer.PushContext("CIPEncapsulationPacket"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("CIPEncapsulationPacket"); pushErr != nil {
 		return pushErr
 	}
 
@@ -302,3 +304,6 @@ func (m *CIPEncapsulationPacket) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go
index afa9253..99e95cd 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go
@@ -19,17 +19,19 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type CIPEncapsulationReadRequest struct {
 	Request *DF1RequestMessage
-	Parent  *CIPEncapsulationPacket
+	Parent *CIPEncapsulationPacket
 }
 
 // The corresponding interface
@@ -46,6 +48,7 @@ func (m *CIPEncapsulationReadRequest) CommandType() uint16 {
 	return 0x0107
 }
 
+
 func (m *CIPEncapsulationReadRequest) InitializeParent(parent *CIPEncapsulationPacket, sessionHandle uint32, status uint32, senderContext []uint8, options uint32) {
 	m.Parent.SessionHandle = sessionHandle
 	m.Parent.Status = status
@@ -56,7 +59,7 @@ func (m *CIPEncapsulationReadRequest) InitializeParent(parent *CIPEncapsulationP
 func NewCIPEncapsulationReadRequest(request *DF1RequestMessage, sessionHandle uint32, status uint32, senderContext []uint8, options uint32) *CIPEncapsulationPacket {
 	child := &CIPEncapsulationReadRequest{
 		Request: request,
-		Parent:  NewCIPEncapsulationPacket(sessionHandle, status, senderContext, options),
+		Parent: NewCIPEncapsulationPacket(sessionHandle, status, senderContext, options),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -98,6 +101,7 @@ func (m *CIPEncapsulationReadRequest) LengthInBitsConditional(lastItem bool) uin
 	return lengthInBits
 }
 
+
 func (m *CIPEncapsulationReadRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -111,7 +115,7 @@ func CIPEncapsulationReadRequestParse(readBuffer utils.ReadBuffer) (*CIPEncapsul
 	if pullErr := readBuffer.PullContext("request"); pullErr != nil {
 		return nil, pullErr
 	}
-	request, _requestErr := DF1RequestMessageParse(readBuffer)
+request, _requestErr := DF1RequestMessageParse(readBuffer)
 	if _requestErr != nil {
 		return nil, errors.Wrap(_requestErr, "Error parsing 'request' field")
 	}
@@ -126,7 +130,7 @@ func CIPEncapsulationReadRequestParse(readBuffer utils.ReadBuffer) (*CIPEncapsul
 	// Create a partially initialized instance
 	_child := &CIPEncapsulationReadRequest{
 		Request: CastDF1RequestMessage(request),
-		Parent:  &CIPEncapsulationPacket{},
+		Parent: &CIPEncapsulationPacket{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -138,17 +142,17 @@ func (m *CIPEncapsulationReadRequest) Serialize(writeBuffer utils.WriteBuffer) e
 			return pushErr
 		}
 
-		// Simple Field (request)
-		if pushErr := writeBuffer.PushContext("request"); pushErr != nil {
-			return pushErr
-		}
-		_requestErr := m.Request.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("request"); popErr != nil {
-			return popErr
-		}
-		if _requestErr != nil {
-			return errors.Wrap(_requestErr, "Error serializing 'request' field")
-		}
+	// Simple Field (request)
+	if pushErr := writeBuffer.PushContext("request"); pushErr != nil {
+		return pushErr
+	}
+	_requestErr := m.Request.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("request"); popErr != nil {
+		return popErr
+	}
+	if _requestErr != nil {
+		return errors.Wrap(_requestErr, "Error serializing 'request' field")
+	}
 
 		if popErr := writeBuffer.PopContext("CIPEncapsulationReadRequest"); popErr != nil {
 			return popErr
@@ -166,3 +170,6 @@ func (m *CIPEncapsulationReadRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go
index a95ec22..820c44f 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go
@@ -19,17 +19,19 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type CIPEncapsulationReadResponse struct {
 	Response *DF1ResponseMessage
-	Parent   *CIPEncapsulationPacket
+	Parent *CIPEncapsulationPacket
 }
 
 // The corresponding interface
@@ -46,6 +48,7 @@ func (m *CIPEncapsulationReadResponse) CommandType() uint16 {
 	return 0x0207
 }
 
+
 func (m *CIPEncapsulationReadResponse) InitializeParent(parent *CIPEncapsulationPacket, sessionHandle uint32, status uint32, senderContext []uint8, options uint32) {
 	m.Parent.SessionHandle = sessionHandle
 	m.Parent.Status = status
@@ -56,7 +59,7 @@ func (m *CIPEncapsulationReadResponse) InitializeParent(parent *CIPEncapsulation
 func NewCIPEncapsulationReadResponse(response *DF1ResponseMessage, sessionHandle uint32, status uint32, senderContext []uint8, options uint32) *CIPEncapsulationPacket {
 	child := &CIPEncapsulationReadResponse{
 		Response: response,
-		Parent:   NewCIPEncapsulationPacket(sessionHandle, status, senderContext, options),
+		Parent: NewCIPEncapsulationPacket(sessionHandle, status, senderContext, options),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -98,6 +101,7 @@ func (m *CIPEncapsulationReadResponse) LengthInBitsConditional(lastItem bool) ui
 	return lengthInBits
 }
 
+
 func (m *CIPEncapsulationReadResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -111,7 +115,7 @@ func CIPEncapsulationReadResponseParse(readBuffer utils.ReadBuffer, len uint16)
 	if pullErr := readBuffer.PullContext("response"); pullErr != nil {
 		return nil, pullErr
 	}
-	response, _responseErr := DF1ResponseMessageParse(readBuffer, len)
+response, _responseErr := DF1ResponseMessageParse(readBuffer , len )
 	if _responseErr != nil {
 		return nil, errors.Wrap(_responseErr, "Error parsing 'response' field")
 	}
@@ -126,7 +130,7 @@ func CIPEncapsulationReadResponseParse(readBuffer utils.ReadBuffer, len uint16)
 	// Create a partially initialized instance
 	_child := &CIPEncapsulationReadResponse{
 		Response: CastDF1ResponseMessage(response),
-		Parent:   &CIPEncapsulationPacket{},
+		Parent: &CIPEncapsulationPacket{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -138,17 +142,17 @@ func (m *CIPEncapsulationReadResponse) Serialize(writeBuffer utils.WriteBuffer)
 			return pushErr
 		}
 
-		// Simple Field (response)
-		if pushErr := writeBuffer.PushContext("response"); pushErr != nil {
-			return pushErr
-		}
-		_responseErr := m.Response.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("response"); popErr != nil {
-			return popErr
-		}
-		if _responseErr != nil {
-			return errors.Wrap(_responseErr, "Error serializing 'response' field")
-		}
+	// Simple Field (response)
+	if pushErr := writeBuffer.PushContext("response"); pushErr != nil {
+		return pushErr
+	}
+	_responseErr := m.Response.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("response"); popErr != nil {
+		return popErr
+	}
+	if _responseErr != nil {
+		return errors.Wrap(_responseErr, "Error serializing 'response' field")
+	}
 
 		if popErr := writeBuffer.PopContext("CIPEncapsulationReadResponse"); popErr != nil {
 			return popErr
@@ -166,3 +170,6 @@ func (m *CIPEncapsulationReadResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go
index b00ee3c..38b1368 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go
@@ -19,17 +19,19 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type DF1CommandRequestMessage struct {
 	Command *DF1RequestCommand
-	Parent  *DF1RequestMessage
+	Parent *DF1RequestMessage
 }
 
 // The corresponding interface
@@ -46,6 +48,7 @@ func (m *DF1CommandRequestMessage) CommandCode() uint8 {
 	return 0x0F
 }
 
+
 func (m *DF1CommandRequestMessage) InitializeParent(parent *DF1RequestMessage, destinationAddress uint8, sourceAddress uint8, status uint8, transactionCounter uint16) {
 	m.Parent.DestinationAddress = destinationAddress
 	m.Parent.SourceAddress = sourceAddress
@@ -56,7 +59,7 @@ func (m *DF1CommandRequestMessage) InitializeParent(parent *DF1RequestMessage, d
 func NewDF1CommandRequestMessage(command *DF1RequestCommand, destinationAddress uint8, sourceAddress uint8, status uint8, transactionCounter uint16) *DF1RequestMessage {
 	child := &DF1CommandRequestMessage{
 		Command: command,
-		Parent:  NewDF1RequestMessage(destinationAddress, sourceAddress, status, transactionCounter),
+		Parent: NewDF1RequestMessage(destinationAddress, sourceAddress, status, transactionCounter),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -98,6 +101,7 @@ func (m *DF1CommandRequestMessage) LengthInBitsConditional(lastItem bool) uint16
 	return lengthInBits
 }
 
+
 func (m *DF1CommandRequestMessage) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -111,7 +115,7 @@ func DF1CommandRequestMessageParse(readBuffer utils.ReadBuffer) (*DF1RequestMess
 	if pullErr := readBuffer.PullContext("command"); pullErr != nil {
 		return nil, pullErr
 	}
-	command, _commandErr := DF1RequestCommandParse(readBuffer)
+command, _commandErr := DF1RequestCommandParse(readBuffer)
 	if _commandErr != nil {
 		return nil, errors.Wrap(_commandErr, "Error parsing 'command' field")
 	}
@@ -126,7 +130,7 @@ func DF1CommandRequestMessageParse(readBuffer utils.ReadBuffer) (*DF1RequestMess
 	// Create a partially initialized instance
 	_child := &DF1CommandRequestMessage{
 		Command: CastDF1RequestCommand(command),
-		Parent:  &DF1RequestMessage{},
+		Parent: &DF1RequestMessage{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -138,17 +142,17 @@ func (m *DF1CommandRequestMessage) Serialize(writeBuffer utils.WriteBuffer) erro
 			return pushErr
 		}
 
-		// Simple Field (command)
-		if pushErr := writeBuffer.PushContext("command"); pushErr != nil {
-			return pushErr
-		}
-		_commandErr := m.Command.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("command"); popErr != nil {
-			return popErr
-		}
-		if _commandErr != nil {
-			return errors.Wrap(_commandErr, "Error serializing 'command' field")
-		}
+	// Simple Field (command)
+	if pushErr := writeBuffer.PushContext("command"); pushErr != nil {
+		return pushErr
+	}
+	_commandErr := m.Command.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("command"); popErr != nil {
+		return popErr
+	}
+	if _commandErr != nil {
+		return errors.Wrap(_commandErr, "Error serializing 'command' field")
+	}
 
 		if popErr := writeBuffer.PopContext("DF1CommandRequestMessage"); popErr != nil {
 			return popErr
@@ -166,3 +170,6 @@ func (m *DF1CommandRequestMessage) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
index a56801a..840504b 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
@@ -19,16 +19,18 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type DF1CommandResponseMessageProtectedTypedLogicalRead struct {
-	Data   []uint8
+	Data []uint8
 	Parent *DF1ResponseMessage
 }
 
@@ -46,6 +48,7 @@ func (m *DF1CommandResponseMessageProtectedTypedLogicalRead) CommandCode() uint8
 	return 0x4F
 }
 
+
 func (m *DF1CommandResponseMessageProtectedTypedLogicalRead) InitializeParent(parent *DF1ResponseMessage, destinationAddress uint8, sourceAddress uint8, status uint8, transactionCounter uint16) {
 	m.Parent.DestinationAddress = destinationAddress
 	m.Parent.SourceAddress = sourceAddress
@@ -55,7 +58,7 @@ func (m *DF1CommandResponseMessageProtectedTypedLogicalRead) InitializeParent(pa
 
 func NewDF1CommandResponseMessageProtectedTypedLogicalRead(data []uint8, destinationAddress uint8, sourceAddress uint8, status uint8, transactionCounter uint16) *DF1ResponseMessage {
 	child := &DF1CommandResponseMessageProtectedTypedLogicalRead{
-		Data:   data,
+		Data: data,
 		Parent: NewDF1ResponseMessage(destinationAddress, sourceAddress, status, transactionCounter),
 	}
 	child.Parent.Child = child
@@ -100,6 +103,7 @@ func (m *DF1CommandResponseMessageProtectedTypedLogicalRead) LengthInBitsConditi
 	return lengthInBits
 }
 
+
 func (m *DF1CommandResponseMessageProtectedTypedLogicalRead) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -117,7 +121,7 @@ func DF1CommandResponseMessageProtectedTypedLogicalReadParse(readBuffer utils.Re
 	data := make([]uint8, 0)
 	_dataLength := uint16(payloadLength) - uint16(uint16(8))
 	_dataEndPos := readBuffer.GetPos() + uint16(_dataLength)
-	for readBuffer.GetPos() < _dataEndPos {
+	for ;readBuffer.GetPos() < _dataEndPos; {
 		_item, _err := readBuffer.ReadUint8("", 8)
 		if _err != nil {
 			return nil, errors.Wrap(_err, "Error parsing 'data' field")
@@ -134,7 +138,7 @@ func DF1CommandResponseMessageProtectedTypedLogicalReadParse(readBuffer utils.Re
 
 	// Create a partially initialized instance
 	_child := &DF1CommandResponseMessageProtectedTypedLogicalRead{
-		Data:   data,
+		Data: data,
 		Parent: &DF1ResponseMessage{},
 	}
 	_child.Parent.Child = _child
@@ -147,21 +151,21 @@ func (m *DF1CommandResponseMessageProtectedTypedLogicalRead) Serialize(writeBuff
 			return pushErr
 		}
 
-		// Array Field (data)
-		if m.Data != nil {
-			if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Data {
-				_elementErr := writeBuffer.WriteUint8("", 8, _element)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'data' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (data)
+	if m.Data != nil {
+		if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Data {
+			_elementErr := writeBuffer.WriteUint8("", 8, _element)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'data' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("DF1CommandResponseMessageProtectedTypedLogicalRead"); popErr != nil {
 			return popErr
@@ -179,3 +183,6 @@ func (m *DF1CommandResponseMessageProtectedTypedLogicalRead) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestCommand.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestCommand.go
index 29ef3b3..37822c8 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestCommand.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestCommand.go
@@ -19,12 +19,14 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type DF1RequestCommand struct {
@@ -83,7 +85,7 @@ func (m *DF1RequestCommand) LengthInBitsConditional(lastItem bool) uint16 {
 func (m *DF1RequestCommand) ParentLengthInBits() uint16 {
 	lengthInBits := uint16(0)
 	// Discriminator Field (functionCode)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	return lengthInBits
 }
@@ -100,15 +102,15 @@ func DF1RequestCommandParse(readBuffer utils.ReadBuffer) (*DF1RequestCommand, er
 	// Discriminator Field (functionCode) (Used as input to a switch field)
 	functionCode, _functionCodeErr := readBuffer.ReadUint8("functionCode", 8)
 	if _functionCodeErr != nil {
-		return nil, errors.Wrap(_functionCodeErr, "Error parsing 'functionCode' field")
+	return nil, errors.Wrap(_functionCodeErr, "Error parsing 'functionCode' field")
 	}
 
 	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
 	var _parent *DF1RequestCommand
 	var typeSwitchError error
 	switch {
-	case functionCode == 0xA2: // DF1RequestProtectedTypedLogicalRead
-		_parent, typeSwitchError = DF1RequestProtectedTypedLogicalReadParse(readBuffer)
+case functionCode == 0xA2 : // DF1RequestProtectedTypedLogicalRead
+		_parent, typeSwitchError = DF1RequestProtectedTypedLogicalReadParse(readBuffer, )
 	default:
 		// TODO: return actual type
 		typeSwitchError = errors.New("Unmapped type")
@@ -131,7 +133,7 @@ func (m *DF1RequestCommand) Serialize(writeBuffer utils.WriteBuffer) error {
 }
 
 func (m *DF1RequestCommand) SerializeParent(writeBuffer utils.WriteBuffer, child IDF1RequestCommand, serializeChildFunction func() error) error {
-	if pushErr := writeBuffer.PushContext("DF1RequestCommand"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("DF1RequestCommand"); pushErr != nil {
 		return pushErr
 	}
 
@@ -163,3 +165,6 @@ func (m *DF1RequestCommand) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestMessage.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestMessage.go
index 3200b90..078f79e 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestMessage.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestMessage.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"github.com/rs/zerolog/log"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type DF1RequestMessage struct {
 	DestinationAddress uint8
-	SourceAddress      uint8
-	Status             uint8
+	SourceAddress uint8
+	Status uint8
 	TransactionCounter uint16
-	Child              IDF1RequestMessageChild
+	Child IDF1RequestMessageChild
 }
 
 // The corresponding interface
@@ -89,21 +91,21 @@ func (m *DF1RequestMessage) ParentLengthInBits() uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (destinationAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (sourceAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Reserved Field (reserved)
 	lengthInBits += 16
 	// Discriminator Field (commandCode)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (status)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (transactionCounter)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	return lengthInBits
 }
@@ -118,13 +120,13 @@ func DF1RequestMessageParse(readBuffer utils.ReadBuffer) (*DF1RequestMessage, er
 	}
 
 	// Simple Field (destinationAddress)
-	destinationAddress, _destinationAddressErr := readBuffer.ReadUint8("destinationAddress", 8)
+destinationAddress, _destinationAddressErr := readBuffer.ReadUint8("destinationAddress", 8)
 	if _destinationAddressErr != nil {
 		return nil, errors.Wrap(_destinationAddressErr, "Error parsing 'destinationAddress' field")
 	}
 
 	// Simple Field (sourceAddress)
-	sourceAddress, _sourceAddressErr := readBuffer.ReadUint8("sourceAddress", 8)
+sourceAddress, _sourceAddressErr := readBuffer.ReadUint8("sourceAddress", 8)
 	if _sourceAddressErr != nil {
 		return nil, errors.Wrap(_sourceAddressErr, "Error parsing 'sourceAddress' field")
 	}
@@ -138,7 +140,7 @@ func DF1RequestMessageParse(readBuffer utils.ReadBuffer) (*DF1RequestMessage, er
 		if reserved != uint16(0x0000) {
 			log.Info().Fields(map[string]interface{}{
 				"expected value": uint16(0x0000),
-				"got value":      reserved,
+				"got value": reserved,
 			}).Msg("Got unexpected response.")
 		}
 	}
@@ -146,17 +148,17 @@ func DF1RequestMessageParse(readBuffer utils.ReadBuffer) (*DF1RequestMessage, er
 	// Discriminator Field (commandCode) (Used as input to a switch field)
 	commandCode, _commandCodeErr := readBuffer.ReadUint8("commandCode", 8)
 	if _commandCodeErr != nil {
-		return nil, errors.Wrap(_commandCodeErr, "Error parsing 'commandCode' field")
+	return nil, errors.Wrap(_commandCodeErr, "Error parsing 'commandCode' field")
 	}
 
 	// Simple Field (status)
-	status, _statusErr := readBuffer.ReadUint8("status", 8)
+status, _statusErr := readBuffer.ReadUint8("status", 8)
 	if _statusErr != nil {
 		return nil, errors.Wrap(_statusErr, "Error parsing 'status' field")
 	}
 
 	// Simple Field (transactionCounter)
-	transactionCounter, _transactionCounterErr := readBuffer.ReadUint16("transactionCounter", 16)
+transactionCounter, _transactionCounterErr := readBuffer.ReadUint16("transactionCounter", 16)
 	if _transactionCounterErr != nil {
 		return nil, errors.Wrap(_transactionCounterErr, "Error parsing 'transactionCounter' field")
 	}
@@ -165,8 +167,8 @@ func DF1RequestMessageParse(readBuffer utils.ReadBuffer) (*DF1RequestMessage, er
 	var _parent *DF1RequestMessage
 	var typeSwitchError error
 	switch {
-	case commandCode == 0x0F: // DF1CommandRequestMessage
-		_parent, typeSwitchError = DF1CommandRequestMessageParse(readBuffer)
+case commandCode == 0x0F : // DF1CommandRequestMessage
+		_parent, typeSwitchError = DF1CommandRequestMessageParse(readBuffer, )
 	default:
 		// TODO: return actual type
 		typeSwitchError = errors.New("Unmapped type")
@@ -189,7 +191,7 @@ func (m *DF1RequestMessage) Serialize(writeBuffer utils.WriteBuffer) error {
 }
 
 func (m *DF1RequestMessage) SerializeParent(writeBuffer utils.WriteBuffer, child IDF1RequestMessage, serializeChildFunction func() error) error {
-	if pushErr := writeBuffer.PushContext("DF1RequestMessage"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("DF1RequestMessage"); pushErr != nil {
 		return pushErr
 	}
 
@@ -257,3 +259,6 @@ func (m *DF1RequestMessage) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
index 0f4f142..1faa63a 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type DF1RequestProtectedTypedLogicalRead struct {
-	ByteSize         uint8
-	FileNumber       uint8
-	FileType         uint8
-	ElementNumber    uint8
+	ByteSize uint8
+	FileNumber uint8
+	FileType uint8
+	ElementNumber uint8
 	SubElementNumber uint8
-	Parent           *DF1RequestCommand
+	Parent *DF1RequestCommand
 }
 
 // The corresponding interface
@@ -50,17 +52,18 @@ func (m *DF1RequestProtectedTypedLogicalRead) FunctionCode() uint8 {
 	return 0xA2
 }
 
+
 func (m *DF1RequestProtectedTypedLogicalRead) InitializeParent(parent *DF1RequestCommand) {
 }
 
 func NewDF1RequestProtectedTypedLogicalRead(byteSize uint8, fileNumber uint8, fileType uint8, elementNumber uint8, subElementNumber uint8) *DF1RequestCommand {
 	child := &DF1RequestProtectedTypedLogicalRead{
-		ByteSize:         byteSize,
-		FileNumber:       fileNumber,
-		FileType:         fileType,
-		ElementNumber:    elementNumber,
+		ByteSize: byteSize,
+		FileNumber: fileNumber,
+		FileType: fileType,
+		ElementNumber: elementNumber,
 		SubElementNumber: subElementNumber,
-		Parent:           NewDF1RequestCommand(),
+		Parent: NewDF1RequestCommand(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -97,23 +100,24 @@ func (m *DF1RequestProtectedTypedLogicalRead) LengthInBitsConditional(lastItem b
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (byteSize)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (fileNumber)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (fileType)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (elementNumber)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (subElementNumber)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	return lengthInBits
 }
 
+
 func (m *DF1RequestProtectedTypedLogicalRead) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -124,31 +128,31 @@ func DF1RequestProtectedTypedLogicalReadParse(readBuffer utils.ReadBuffer) (*DF1
 	}
 
 	// Simple Field (byteSize)
-	byteSize, _byteSizeErr := readBuffer.ReadUint8("byteSize", 8)
+byteSize, _byteSizeErr := readBuffer.ReadUint8("byteSize", 8)
 	if _byteSizeErr != nil {
 		return nil, errors.Wrap(_byteSizeErr, "Error parsing 'byteSize' field")
 	}
 
 	// Simple Field (fileNumber)
-	fileNumber, _fileNumberErr := readBuffer.ReadUint8("fileNumber", 8)
+fileNumber, _fileNumberErr := readBuffer.ReadUint8("fileNumber", 8)
 	if _fileNumberErr != nil {
 		return nil, errors.Wrap(_fileNumberErr, "Error parsing 'fileNumber' field")
 	}
 
 	// Simple Field (fileType)
-	fileType, _fileTypeErr := readBuffer.ReadUint8("fileType", 8)
+fileType, _fileTypeErr := readBuffer.ReadUint8("fileType", 8)
 	if _fileTypeErr != nil {
 		return nil, errors.Wrap(_fileTypeErr, "Error parsing 'fileType' field")
 	}
 
 	// Simple Field (elementNumber)
-	elementNumber, _elementNumberErr := readBuffer.ReadUint8("elementNumber", 8)
+elementNumber, _elementNumberErr := readBuffer.ReadUint8("elementNumber", 8)
 	if _elementNumberErr != nil {
 		return nil, errors.Wrap(_elementNumberErr, "Error parsing 'elementNumber' field")
 	}
 
 	// Simple Field (subElementNumber)
-	subElementNumber, _subElementNumberErr := readBuffer.ReadUint8("subElementNumber", 8)
+subElementNumber, _subElementNumberErr := readBuffer.ReadUint8("subElementNumber", 8)
 	if _subElementNumberErr != nil {
 		return nil, errors.Wrap(_subElementNumberErr, "Error parsing 'subElementNumber' field")
 	}
@@ -159,12 +163,12 @@ func DF1RequestProtectedTypedLogicalReadParse(readBuffer utils.ReadBuffer) (*DF1
 
 	// Create a partially initialized instance
 	_child := &DF1RequestProtectedTypedLogicalRead{
-		ByteSize:         byteSize,
-		FileNumber:       fileNumber,
-		FileType:         fileType,
-		ElementNumber:    elementNumber,
+		ByteSize: byteSize,
+		FileNumber: fileNumber,
+		FileType: fileType,
+		ElementNumber: elementNumber,
 		SubElementNumber: subElementNumber,
-		Parent:           &DF1RequestCommand{},
+		Parent: &DF1RequestCommand{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -176,40 +180,40 @@ func (m *DF1RequestProtectedTypedLogicalRead) Serialize(writeBuffer utils.WriteB
 			return pushErr
 		}
 
-		// Simple Field (byteSize)
-		byteSize := uint8(m.ByteSize)
-		_byteSizeErr := writeBuffer.WriteUint8("byteSize", 8, (byteSize))
-		if _byteSizeErr != nil {
-			return errors.Wrap(_byteSizeErr, "Error serializing 'byteSize' field")
-		}
+	// Simple Field (byteSize)
+	byteSize := uint8(m.ByteSize)
+	_byteSizeErr := writeBuffer.WriteUint8("byteSize", 8, (byteSize))
+	if _byteSizeErr != nil {
+		return errors.Wrap(_byteSizeErr, "Error serializing 'byteSize' field")
+	}
 
-		// Simple Field (fileNumber)
-		fileNumber := uint8(m.FileNumber)
-		_fileNumberErr := writeBuffer.WriteUint8("fileNumber", 8, (fileNumber))
-		if _fileNumberErr != nil {
-			return errors.Wrap(_fileNumberErr, "Error serializing 'fileNumber' field")
-		}
+	// Simple Field (fileNumber)
+	fileNumber := uint8(m.FileNumber)
+	_fileNumberErr := writeBuffer.WriteUint8("fileNumber", 8, (fileNumber))
+	if _fileNumberErr != nil {
+		return errors.Wrap(_fileNumberErr, "Error serializing 'fileNumber' field")
+	}
 
-		// Simple Field (fileType)
-		fileType := uint8(m.FileType)
-		_fileTypeErr := writeBuffer.WriteUint8("fileType", 8, (fileType))
-		if _fileTypeErr != nil {
-			return errors.Wrap(_fileTypeErr, "Error serializing 'fileType' field")
-		}
+	// Simple Field (fileType)
+	fileType := uint8(m.FileType)
+	_fileTypeErr := writeBuffer.WriteUint8("fileType", 8, (fileType))
+	if _fileTypeErr != nil {
+		return errors.Wrap(_fileTypeErr, "Error serializing 'fileType' field")
+	}
 
-		// Simple Field (elementNumber)
-		elementNumber := uint8(m.ElementNumber)
-		_elementNumberErr := writeBuffer.WriteUint8("elementNumber", 8, (elementNumber))
-		if _elementNumberErr != nil {
-			return errors.Wrap(_elementNumberErr, "Error serializing 'elementNumber' field")
-		}
+	// Simple Field (elementNumber)
+	elementNumber := uint8(m.ElementNumber)
+	_elementNumberErr := writeBuffer.WriteUint8("elementNumber", 8, (elementNumber))
+	if _elementNumberErr != nil {
+		return errors.Wrap(_elementNumberErr, "Error serializing 'elementNumber' field")
+	}
 
-		// Simple Field (subElementNumber)
-		subElementNumber := uint8(m.SubElementNumber)
-		_subElementNumberErr := writeBuffer.WriteUint8("subElementNumber", 8, (subElementNumber))
-		if _subElementNumberErr != nil {
-			return errors.Wrap(_subElementNumberErr, "Error serializing 'subElementNumber' field")
-		}
+	// Simple Field (subElementNumber)
+	subElementNumber := uint8(m.SubElementNumber)
+	_subElementNumberErr := writeBuffer.WriteUint8("subElementNumber", 8, (subElementNumber))
+	if _subElementNumberErr != nil {
+		return errors.Wrap(_subElementNumberErr, "Error serializing 'subElementNumber' field")
+	}
 
 		if popErr := writeBuffer.PopContext("DF1RequestProtectedTypedLogicalRead"); popErr != nil {
 			return popErr
@@ -227,3 +231,6 @@ func (m *DF1RequestProtectedTypedLogicalRead) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1ResponseMessage.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1ResponseMessage.go
index 2c4913a..6217916 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1ResponseMessage.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1ResponseMessage.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"github.com/rs/zerolog/log"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type DF1ResponseMessage struct {
 	DestinationAddress uint8
-	SourceAddress      uint8
-	Status             uint8
+	SourceAddress uint8
+	Status uint8
 	TransactionCounter uint16
-	Child              IDF1ResponseMessageChild
+	Child IDF1ResponseMessageChild
 }
 
 // The corresponding interface
@@ -92,21 +94,21 @@ func (m *DF1ResponseMessage) ParentLengthInBits() uint16 {
 	lengthInBits += 8
 
 	// Simple field (destinationAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (sourceAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Reserved Field (reserved)
 	lengthInBits += 8
 	// Discriminator Field (commandCode)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (status)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (transactionCounter)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	return lengthInBits
 }
@@ -129,19 +131,19 @@ func DF1ResponseMessageParse(readBuffer utils.ReadBuffer, payloadLength uint16)
 		if reserved != uint8(0x00) {
 			log.Info().Fields(map[string]interface{}{
 				"expected value": uint8(0x00),
-				"got value":      reserved,
+				"got value": reserved,
 			}).Msg("Got unexpected response.")
 		}
 	}
 
 	// Simple Field (destinationAddress)
-	destinationAddress, _destinationAddressErr := readBuffer.ReadUint8("destinationAddress", 8)
+destinationAddress, _destinationAddressErr := readBuffer.ReadUint8("destinationAddress", 8)
 	if _destinationAddressErr != nil {
 		return nil, errors.Wrap(_destinationAddressErr, "Error parsing 'destinationAddress' field")
 	}
 
 	// Simple Field (sourceAddress)
-	sourceAddress, _sourceAddressErr := readBuffer.ReadUint8("sourceAddress", 8)
+sourceAddress, _sourceAddressErr := readBuffer.ReadUint8("sourceAddress", 8)
 	if _sourceAddressErr != nil {
 		return nil, errors.Wrap(_sourceAddressErr, "Error parsing 'sourceAddress' field")
 	}
@@ -155,7 +157,7 @@ func DF1ResponseMessageParse(readBuffer utils.ReadBuffer, payloadLength uint16)
 		if reserved != uint8(0x00) {
 			log.Info().Fields(map[string]interface{}{
 				"expected value": uint8(0x00),
-				"got value":      reserved,
+				"got value": reserved,
 			}).Msg("Got unexpected response.")
 		}
 	}
@@ -163,17 +165,17 @@ func DF1ResponseMessageParse(readBuffer utils.ReadBuffer, payloadLength uint16)
 	// Discriminator Field (commandCode) (Used as input to a switch field)
 	commandCode, _commandCodeErr := readBuffer.ReadUint8("commandCode", 8)
 	if _commandCodeErr != nil {
-		return nil, errors.Wrap(_commandCodeErr, "Error parsing 'commandCode' field")
+	return nil, errors.Wrap(_commandCodeErr, "Error parsing 'commandCode' field")
 	}
 
 	// Simple Field (status)
-	status, _statusErr := readBuffer.ReadUint8("status", 8)
+status, _statusErr := readBuffer.ReadUint8("status", 8)
 	if _statusErr != nil {
 		return nil, errors.Wrap(_statusErr, "Error parsing 'status' field")
 	}
 
 	// Simple Field (transactionCounter)
-	transactionCounter, _transactionCounterErr := readBuffer.ReadUint16("transactionCounter", 16)
+transactionCounter, _transactionCounterErr := readBuffer.ReadUint16("transactionCounter", 16)
 	if _transactionCounterErr != nil {
 		return nil, errors.Wrap(_transactionCounterErr, "Error parsing 'transactionCounter' field")
 	}
@@ -182,7 +184,7 @@ func DF1ResponseMessageParse(readBuffer utils.ReadBuffer, payloadLength uint16)
 	var _parent *DF1ResponseMessage
 	var typeSwitchError error
 	switch {
-	case commandCode == 0x4F: // DF1CommandResponseMessageProtectedTypedLogicalRead
+case commandCode == 0x4F : // DF1CommandResponseMessageProtectedTypedLogicalRead
 		_parent, typeSwitchError = DF1CommandResponseMessageProtectedTypedLogicalReadParse(readBuffer, payloadLength, status)
 	default:
 		// TODO: return actual type
@@ -206,7 +208,7 @@ func (m *DF1ResponseMessage) Serialize(writeBuffer utils.WriteBuffer) error {
 }
 
 func (m *DF1ResponseMessage) SerializeParent(writeBuffer utils.WriteBuffer, child IDF1ResponseMessage, serializeChildFunction func() error) error {
-	if pushErr := writeBuffer.PushContext("DF1ResponseMessage"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("DF1ResponseMessage"); pushErr != nil {
 		return pushErr
 	}
 
@@ -282,3 +284,6 @@ func (m *DF1ResponseMessage) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go
index 616c149..c8cd0b7 100644
--- a/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/ads/readwrite/XmlParserHelper.go
@@ -23,8 +23,8 @@ import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/ads/readwrite/model"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
-	"strconv"
-	"strings"
+    "strings"
+    "strconv"
 )
 
 // Code generated by code-generation. DO NOT EDIT.
@@ -41,36 +41,36 @@ func init() {
 }
 
 func (m AdsXmlParserHelper) Parse(typeName string, xmlString string, parserArguments ...string) (interface{}, error) {
-	switch typeName {
-	case "AdsMultiRequestItem":
-		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
-		if err != nil {
-			return nil, err
-		}
-		indexGroup := uint32(parsedUint0)
-		return model.AdsMultiRequestItemParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), indexGroup)
-	case "AmsTCPPacket":
-		return model.AmsTCPPacketParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "State":
-		return model.StateParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "AmsPacket":
-		return model.AmsPacketParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "AmsSerialFrame":
-		return model.AmsSerialFrameParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "AmsSerialAcknowledgeFrame":
-		return model.AmsSerialAcknowledgeFrameParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "AdsData":
-		commandId := model.CommandIdByName(parserArguments[0])
-		response := parserArguments[1] == "true"
-		return model.AdsDataParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), commandId, response)
-	case "AmsNetId":
-		return model.AmsNetIdParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "AdsStampHeader":
-		return model.AdsStampHeaderParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "AmsSerialResetFrame":
-		return model.AmsSerialResetFrameParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "AdsNotificationSample":
-		return model.AdsNotificationSampleParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	}
-	return nil, errors.Errorf("Unsupported type %s", typeName)
+    switch typeName {
+        case "AdsMultiRequestItem":
+			parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
+			if err!=nil {
+				return nil, err
+			}
+			indexGroup := uint32(parsedUint0)
+            return model.AdsMultiRequestItemParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), indexGroup  )
+        case "AmsTCPPacket":
+			return model.AmsTCPPacketParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "State":
+			return model.StateParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "AmsPacket":
+			return model.AmsPacketParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "AmsSerialFrame":
+			return model.AmsSerialFrameParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "AmsSerialAcknowledgeFrame":
+			return model.AmsSerialAcknowledgeFrameParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "AdsData":
+            commandId := model.CommandIdByName(parserArguments[0])
+            response := parserArguments[1] == "true"
+            return model.AdsDataParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), commandId,  response  )
+        case "AmsNetId":
+			return model.AmsNetIdParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "AdsStampHeader":
+			return model.AdsStampHeaderParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "AmsSerialResetFrame":
+			return model.AmsSerialResetFrameParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+        case "AdsNotificationSample":
+			return model.AdsNotificationSampleParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+    }
+    return nil, errors.Errorf("Unsupported type %s", typeName)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
index 222528a..84ace91 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
@@ -19,6 +19,7 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
@@ -26,17 +27,18 @@ import (
 	"math/big"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsAddDeviceNotificationRequest struct {
-	IndexGroup       uint32
-	IndexOffset      uint32
-	Length           uint32
+	IndexGroup uint32
+	IndexOffset uint32
+	Length uint32
 	TransmissionMode uint32
-	MaxDelay         uint32
-	CycleTime        uint32
-	Parent           *AdsData
+	MaxDelay uint32
+	CycleTime uint32
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -57,18 +59,19 @@ func (m *AdsAddDeviceNotificationRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsAddDeviceNotificationRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsAddDeviceNotificationRequest(indexGroup uint32, indexOffset uint32, length uint32, transmissionMode uint32, maxDelay uint32, cycleTime uint32) *AdsData {
 	child := &AdsAddDeviceNotificationRequest{
-		IndexGroup:       indexGroup,
-		IndexOffset:      indexOffset,
-		Length:           length,
+		IndexGroup: indexGroup,
+		IndexOffset: indexOffset,
+		Length: length,
 		TransmissionMode: transmissionMode,
-		MaxDelay:         maxDelay,
-		CycleTime:        cycleTime,
-		Parent:           NewAdsData(),
+		MaxDelay: maxDelay,
+		CycleTime: cycleTime,
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -105,22 +108,22 @@ func (m *AdsAddDeviceNotificationRequest) LengthInBitsConditional(lastItem bool)
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (indexGroup)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (indexOffset)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (length)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (transmissionMode)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (maxDelay)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (cycleTime)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Reserved Field (reserved)
 	lengthInBits += 128
@@ -128,47 +131,48 @@ func (m *AdsAddDeviceNotificationRequest) LengthInBitsConditional(lastItem bool)
 	return lengthInBits
 }
 
+
 func (m *AdsAddDeviceNotificationRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsAddDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsAddDeviceNotificationRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsAddDeviceNotificationRequest"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (indexGroup)
-	indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
+indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
 	if _indexGroupErr != nil {
 		return nil, errors.Wrap(_indexGroupErr, "Error parsing 'indexGroup' field")
 	}
 
 	// Simple Field (indexOffset)
-	indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
+indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
 	if _indexOffsetErr != nil {
 		return nil, errors.Wrap(_indexOffsetErr, "Error parsing 'indexOffset' field")
 	}
 
 	// Simple Field (length)
-	length, _lengthErr := readBuffer.ReadUint32("length", 32)
+length, _lengthErr := readBuffer.ReadUint32("length", 32)
 	if _lengthErr != nil {
 		return nil, errors.Wrap(_lengthErr, "Error parsing 'length' field")
 	}
 
 	// Simple Field (transmissionMode)
-	transmissionMode, _transmissionModeErr := readBuffer.ReadUint32("transmissionMode", 32)
+transmissionMode, _transmissionModeErr := readBuffer.ReadUint32("transmissionMode", 32)
 	if _transmissionModeErr != nil {
 		return nil, errors.Wrap(_transmissionModeErr, "Error parsing 'transmissionMode' field")
 	}
 
 	// Simple Field (maxDelay)
-	maxDelay, _maxDelayErr := readBuffer.ReadUint32("maxDelay", 32)
+maxDelay, _maxDelayErr := readBuffer.ReadUint32("maxDelay", 32)
 	if _maxDelayErr != nil {
 		return nil, errors.Wrap(_maxDelayErr, "Error parsing 'maxDelay' field")
 	}
 
 	// Simple Field (cycleTime)
-	cycleTime, _cycleTimeErr := readBuffer.ReadUint32("cycleTime", 32)
+cycleTime, _cycleTimeErr := readBuffer.ReadUint32("cycleTime", 32)
 	if _cycleTimeErr != nil {
 		return nil, errors.Wrap(_cycleTimeErr, "Error parsing 'cycleTime' field")
 	}
@@ -182,7 +186,7 @@ func AdsAddDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (*AdsData
 		if reserved.Cmp(big.NewInt(0x0000)) != 0 {
 			log.Info().Fields(map[string]interface{}{
 				"expected value": big.NewInt(0x0000),
-				"got value":      reserved,
+				"got value": reserved,
 			}).Msg("Got unexpected response.")
 		}
 	}
@@ -193,13 +197,13 @@ func AdsAddDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (*AdsData
 
 	// Create a partially initialized instance
 	_child := &AdsAddDeviceNotificationRequest{
-		IndexGroup:       indexGroup,
-		IndexOffset:      indexOffset,
-		Length:           length,
+		IndexGroup: indexGroup,
+		IndexOffset: indexOffset,
+		Length: length,
 		TransmissionMode: transmissionMode,
-		MaxDelay:         maxDelay,
-		CycleTime:        cycleTime,
-		Parent:           &AdsData{},
+		MaxDelay: maxDelay,
+		CycleTime: cycleTime,
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -211,55 +215,55 @@ func (m *AdsAddDeviceNotificationRequest) Serialize(writeBuffer utils.WriteBuffe
 			return pushErr
 		}
 
-		// Simple Field (indexGroup)
-		indexGroup := uint32(m.IndexGroup)
-		_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
-		if _indexGroupErr != nil {
-			return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
-		}
+	// Simple Field (indexGroup)
+	indexGroup := uint32(m.IndexGroup)
+	_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
+	if _indexGroupErr != nil {
+		return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
+	}
 
-		// Simple Field (indexOffset)
-		indexOffset := uint32(m.IndexOffset)
-		_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
-		if _indexOffsetErr != nil {
-			return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
-		}
+	// Simple Field (indexOffset)
+	indexOffset := uint32(m.IndexOffset)
+	_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
+	if _indexOffsetErr != nil {
+		return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
+	}
 
-		// Simple Field (length)
-		length := uint32(m.Length)
-		_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
-		if _lengthErr != nil {
-			return errors.Wrap(_lengthErr, "Error serializing 'length' field")
-		}
+	// Simple Field (length)
+	length := uint32(m.Length)
+	_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
+	if _lengthErr != nil {
+		return errors.Wrap(_lengthErr, "Error serializing 'length' field")
+	}
 
-		// Simple Field (transmissionMode)
-		transmissionMode := uint32(m.TransmissionMode)
-		_transmissionModeErr := writeBuffer.WriteUint32("transmissionMode", 32, (transmissionMode))
-		if _transmissionModeErr != nil {
-			return errors.Wrap(_transmissionModeErr, "Error serializing 'transmissionMode' field")
-		}
+	// Simple Field (transmissionMode)
+	transmissionMode := uint32(m.TransmissionMode)
+	_transmissionModeErr := writeBuffer.WriteUint32("transmissionMode", 32, (transmissionMode))
+	if _transmissionModeErr != nil {
+		return errors.Wrap(_transmissionModeErr, "Error serializing 'transmissionMode' field")
+	}
 
-		// Simple Field (maxDelay)
-		maxDelay := uint32(m.MaxDelay)
-		_maxDelayErr := writeBuffer.WriteUint32("maxDelay", 32, (maxDelay))
-		if _maxDelayErr != nil {
-			return errors.Wrap(_maxDelayErr, "Error serializing 'maxDelay' field")
-		}
+	// Simple Field (maxDelay)
+	maxDelay := uint32(m.MaxDelay)
+	_maxDelayErr := writeBuffer.WriteUint32("maxDelay", 32, (maxDelay))
+	if _maxDelayErr != nil {
+		return errors.Wrap(_maxDelayErr, "Error serializing 'maxDelay' field")
+	}
 
-		// Simple Field (cycleTime)
-		cycleTime := uint32(m.CycleTime)
-		_cycleTimeErr := writeBuffer.WriteUint32("cycleTime", 32, (cycleTime))
-		if _cycleTimeErr != nil {
-			return errors.Wrap(_cycleTimeErr, "Error serializing 'cycleTime' field")
-		}
+	// Simple Field (cycleTime)
+	cycleTime := uint32(m.CycleTime)
+	_cycleTimeErr := writeBuffer.WriteUint32("cycleTime", 32, (cycleTime))
+	if _cycleTimeErr != nil {
+		return errors.Wrap(_cycleTimeErr, "Error serializing 'cycleTime' field")
+	}
 
-		// Reserved Field (reserved)
-		{
-			_err := writeBuffer.WriteBigInt("reserved", 128, big.NewInt(0x0000))
-			if _err != nil {
-				return errors.Wrap(_err, "Error serializing 'reserved' field")
-			}
+	// Reserved Field (reserved)
+	{
+		_err := writeBuffer.WriteBigInt("reserved", 128, big.NewInt(0x0000))
+		if _err != nil {
+			return errors.Wrap(_err, "Error serializing 'reserved' field")
 		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsAddDeviceNotificationRequest"); popErr != nil {
 			return popErr
@@ -277,3 +281,6 @@ func (m *AdsAddDeviceNotificationRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
index c60af8d..a23e1c5 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
@@ -19,18 +19,20 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsAddDeviceNotificationResponse struct {
-	Result             ReturnCode
+	Result ReturnCode
 	NotificationHandle uint32
-	Parent             *AdsData
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -51,14 +53,15 @@ func (m *AdsAddDeviceNotificationResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsAddDeviceNotificationResponse) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsAddDeviceNotificationResponse(result ReturnCode, notificationHandle uint32) *AdsData {
 	child := &AdsAddDeviceNotificationResponse{
-		Result:             result,
+		Result: result,
 		NotificationHandle: notificationHandle,
-		Parent:             NewAdsData(),
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -98,16 +101,17 @@ func (m *AdsAddDeviceNotificationResponse) LengthInBitsConditional(lastItem bool
 	lengthInBits += 32
 
 	// Simple field (notificationHandle)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	return lengthInBits
 }
 
+
 func (m *AdsAddDeviceNotificationResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsAddDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsAddDeviceNotificationResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsAddDeviceNotificationResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -116,7 +120,7 @@ func AdsAddDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (*AdsDat
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -125,7 +129,7 @@ func AdsAddDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (*AdsDat
 	}
 
 	// Simple Field (notificationHandle)
-	notificationHandle, _notificationHandleErr := readBuffer.ReadUint32("notificationHandle", 32)
+notificationHandle, _notificationHandleErr := readBuffer.ReadUint32("notificationHandle", 32)
 	if _notificationHandleErr != nil {
 		return nil, errors.Wrap(_notificationHandleErr, "Error parsing 'notificationHandle' field")
 	}
@@ -136,9 +140,9 @@ func AdsAddDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (*AdsDat
 
 	// Create a partially initialized instance
 	_child := &AdsAddDeviceNotificationResponse{
-		Result:             result,
+		Result: result,
 		NotificationHandle: notificationHandle,
-		Parent:             &AdsData{},
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -150,24 +154,24 @@ func (m *AdsAddDeviceNotificationResponse) Serialize(writeBuffer utils.WriteBuff
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
-		// Simple Field (notificationHandle)
-		notificationHandle := uint32(m.NotificationHandle)
-		_notificationHandleErr := writeBuffer.WriteUint32("notificationHandle", 32, (notificationHandle))
-		if _notificationHandleErr != nil {
-			return errors.Wrap(_notificationHandleErr, "Error serializing 'notificationHandle' field")
-		}
+	// Simple Field (notificationHandle)
+	notificationHandle := uint32(m.NotificationHandle)
+	_notificationHandleErr := writeBuffer.WriteUint32("notificationHandle", 32, (notificationHandle))
+	if _notificationHandleErr != nil {
+		return errors.Wrap(_notificationHandleErr, "Error serializing 'notificationHandle' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsAddDeviceNotificationResponse"); popErr != nil {
 			return popErr
@@ -185,3 +189,6 @@ func (m *AdsAddDeviceNotificationResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
index a6b631a..892c136 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
@@ -19,12 +19,14 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsData struct {
@@ -100,46 +102,46 @@ func AdsDataParse(readBuffer utils.ReadBuffer, commandId CommandId, response boo
 	var _parent *AdsData
 	var typeSwitchError error
 	switch {
-	case commandId == CommandId_INVALID && response == false: // AdsInvalidRequest
-		_parent, typeSwitchError = AdsInvalidRequestParse(readBuffer)
-	case commandId == CommandId_INVALID && response == true: // AdsInvalidResponse
-		_parent, typeSwitchError = AdsInvalidResponseParse(readBuffer)
-	case commandId == CommandId_ADS_READ_DEVICE_INFO && response == false: // AdsReadDeviceInfoRequest
-		_parent, typeSwitchError = AdsReadDeviceInfoRequestParse(readBuffer)
-	case commandId == CommandId_ADS_READ_DEVICE_INFO && response == true: // AdsReadDeviceInfoResponse
-		_parent, typeSwitchError = AdsReadDeviceInfoResponseParse(readBuffer)
-	case commandId == CommandId_ADS_READ && response == false: // AdsReadRequest
-		_parent, typeSwitchError = AdsReadRequestParse(readBuffer)
-	case commandId == CommandId_ADS_READ && response == true: // AdsReadResponse
-		_parent, typeSwitchError = AdsReadResponseParse(readBuffer)
-	case commandId == CommandId_ADS_WRITE && response == false: // AdsWriteRequest
-		_parent, typeSwitchError = AdsWriteRequestParse(readBuffer)
-	case commandId == CommandId_ADS_WRITE && response == true: // AdsWriteResponse
-		_parent, typeSwitchError = AdsWriteResponseParse(readBuffer)
-	case commandId == CommandId_ADS_READ_STATE && response == false: // AdsReadStateRequest
-		_parent, typeSwitchError = AdsReadStateRequestParse(readBuffer)
-	case commandId == CommandId_ADS_READ_STATE && response == true: // AdsReadStateResponse
-		_parent, typeSwitchError = AdsReadStateResponseParse(readBuffer)
-	case commandId == CommandId_ADS_WRITE_CONTROL && response == false: // AdsWriteControlRequest
-		_parent, typeSwitchError = AdsWriteControlRequestParse(readBuffer)
-	case commandId == CommandId_ADS_WRITE_CONTROL && response == true: // AdsWriteControlResponse
-		_parent, typeSwitchError = AdsWriteControlResponseParse(readBuffer)
-	case commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == false: // AdsAddDeviceNotificationRequest
-		_parent, typeSwitchError = AdsAddDeviceNotificationRequestParse(readBuffer)
-	case commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == true: // AdsAddDeviceNotificationResponse
-		_parent, typeSwitchError = AdsAddDeviceNotificationResponseParse(readBuffer)
-	case commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == false: // AdsDeleteDeviceNotificationRequest
-		_parent, typeSwitchError = AdsDeleteDeviceNotificationRequestParse(readBuffer)
-	case commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == true: // AdsDeleteDeviceNotificationResponse
-		_parent, typeSwitchError = AdsDeleteDeviceNotificationResponseParse(readBuffer)
-	case commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == false: // AdsDeviceNotificationRequest
-		_parent, typeSwitchError = AdsDeviceNotificationRequestParse(readBuffer)
-	case commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == true: // AdsDeviceNotificationResponse
-		_parent, typeSwitchError = AdsDeviceNotificationResponseParse(readBuffer)
-	case commandId == CommandId_ADS_READ_WRITE && response == false: // AdsReadWriteRequest
-		_parent, typeSwitchError = AdsReadWriteRequestParse(readBuffer)
-	case commandId == CommandId_ADS_READ_WRITE && response == true: // AdsReadWriteResponse
-		_parent, typeSwitchError = AdsReadWriteResponseParse(readBuffer)
+case commandId == CommandId_INVALID && response == false : // AdsInvalidRequest
+		_parent, typeSwitchError = AdsInvalidRequestParse(readBuffer, )
+case commandId == CommandId_INVALID && response == true : // AdsInvalidResponse
+		_parent, typeSwitchError = AdsInvalidResponseParse(readBuffer, )
+case commandId == CommandId_ADS_READ_DEVICE_INFO && response == false : // AdsReadDeviceInfoRequest
+		_parent, typeSwitchError = AdsReadDeviceInfoRequestParse(readBuffer, )
+case commandId == CommandId_ADS_READ_DEVICE_INFO && response == true : // AdsReadDeviceInfoResponse
+		_parent, typeSwitchError = AdsReadDeviceInfoResponseParse(readBuffer, )
+case commandId == CommandId_ADS_READ && response == false : // AdsReadRequest
+		_parent, typeSwitchError = AdsReadRequestParse(readBuffer, )
+case commandId == CommandId_ADS_READ && response == true : // AdsReadResponse
+		_parent, typeSwitchError = AdsReadResponseParse(readBuffer, )
+case commandId == CommandId_ADS_WRITE && response == false : // AdsWriteRequest
+		_parent, typeSwitchError = AdsWriteRequestParse(readBuffer, )
+case commandId == CommandId_ADS_WRITE && response == true : // AdsWriteResponse
+		_parent, typeSwitchError = AdsWriteResponseParse(readBuffer, )
+case commandId == CommandId_ADS_READ_STATE && response == false : // AdsReadStateRequest
+		_parent, typeSwitchError = AdsReadStateRequestParse(readBuffer, )
+case commandId == CommandId_ADS_READ_STATE && response == true : // AdsReadStateResponse
+		_parent, typeSwitchError = AdsReadStateResponseParse(readBuffer, )
+case commandId == CommandId_ADS_WRITE_CONTROL && response == false : // AdsWriteControlRequest
+		_parent, typeSwitchError = AdsWriteControlRequestParse(readBuffer, )
+case commandId == CommandId_ADS_WRITE_CONTROL && response == true : // AdsWriteControlResponse
+		_parent, typeSwitchError = AdsWriteControlResponseParse(readBuffer, )
+case commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == false : // AdsAddDeviceNotificationRequest
+		_parent, typeSwitchError = AdsAddDeviceNotificationRequestParse(readBuffer, )
+case commandId == CommandId_ADS_ADD_DEVICE_NOTIFICATION && response == true : // AdsAddDeviceNotificationResponse
+		_parent, typeSwitchError = AdsAddDeviceNotificationResponseParse(readBuffer, )
+case commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == false : // AdsDeleteDeviceNotificationRequest
+		_parent, typeSwitchError = AdsDeleteDeviceNotificationRequestParse(readBuffer, )
+case commandId == CommandId_ADS_DELETE_DEVICE_NOTIFICATION && response == true : // AdsDeleteDeviceNotificationResponse
+		_parent, typeSwitchError = AdsDeleteDeviceNotificationResponseParse(readBuffer, )
+case commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == false : // AdsDeviceNotificationRequest
+		_parent, typeSwitchError = AdsDeviceNotificationRequestParse(readBuffer, )
+case commandId == CommandId_ADS_DEVICE_NOTIFICATION && response == true : // AdsDeviceNotificationResponse
+		_parent, typeSwitchError = AdsDeviceNotificationResponseParse(readBuffer, )
+case commandId == CommandId_ADS_READ_WRITE && response == false : // AdsReadWriteRequest
+		_parent, typeSwitchError = AdsReadWriteRequestParse(readBuffer, )
+case commandId == CommandId_ADS_READ_WRITE && response == true : // AdsReadWriteResponse
+		_parent, typeSwitchError = AdsReadWriteResponseParse(readBuffer, )
 	default:
 		// TODO: return actual type
 		typeSwitchError = errors.New("Unmapped type")
@@ -162,7 +164,7 @@ func (m *AdsData) Serialize(writeBuffer utils.WriteBuffer) error {
 }
 
 func (m *AdsData) SerializeParent(writeBuffer utils.WriteBuffer, child IAdsData, serializeChildFunction func() error) error {
-	if pushErr := writeBuffer.PushContext("AdsData"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AdsData"); pushErr != nil {
 		return pushErr
 	}
 
@@ -186,3 +188,6 @@ func (m *AdsData) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
index ba9169a..b8ded20 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
@@ -34,54 +34,54 @@ type IAdsDataType interface {
 	Serialize(writeBuffer utils.WriteBuffer) error
 }
 
-const (
-	AdsDataType_BOOL          AdsDataType = 0x01
-	AdsDataType_BIT           AdsDataType = 0x02
-	AdsDataType_BIT8          AdsDataType = 0x03
-	AdsDataType_BYTE          AdsDataType = 0x04
-	AdsDataType_BITARR8       AdsDataType = 0x05
-	AdsDataType_WORD          AdsDataType = 0x06
-	AdsDataType_BITARR16      AdsDataType = 0x07
-	AdsDataType_DWORD         AdsDataType = 0x08
-	AdsDataType_BITARR32      AdsDataType = 0x09
-	AdsDataType_SINT          AdsDataType = 0x0A
-	AdsDataType_INT8          AdsDataType = 0x0B
-	AdsDataType_USINT         AdsDataType = 0x0C
-	AdsDataType_UINT8         AdsDataType = 0x0D
-	AdsDataType_INT           AdsDataType = 0x0E
-	AdsDataType_INT16         AdsDataType = 0x0F
-	AdsDataType_UINT          AdsDataType = 0x10
-	AdsDataType_UINT16        AdsDataType = 0x11
-	AdsDataType_DINT          AdsDataType = 0x12
-	AdsDataType_INT32         AdsDataType = 0x13
-	AdsDataType_UDINT         AdsDataType = 0x14
-	AdsDataType_UINT32        AdsDataType = 0x15
-	AdsDataType_LINT          AdsDataType = 0x16
-	AdsDataType_INT64         AdsDataType = 0x17
-	AdsDataType_ULINT         AdsDataType = 0x18
-	AdsDataType_UINT64        AdsDataType = 0x19
-	AdsDataType_REAL          AdsDataType = 0x1A
-	AdsDataType_FLOAT         AdsDataType = 0x1B
-	AdsDataType_LREAL         AdsDataType = 0x1C
-	AdsDataType_DOUBLE        AdsDataType = 0x1D
-	AdsDataType_CHAR          AdsDataType = 0x1E
-	AdsDataType_WCHAR         AdsDataType = 0x1F
-	AdsDataType_STRING        AdsDataType = 0x20
-	AdsDataType_WSTRING       AdsDataType = 0x21
-	AdsDataType_TIME          AdsDataType = 0x22
-	AdsDataType_LTIME         AdsDataType = 0x23
-	AdsDataType_DATE          AdsDataType = 0x24
-	AdsDataType_TIME_OF_DAY   AdsDataType = 0x25
-	AdsDataType_TOD           AdsDataType = 0x26
+const(
+	AdsDataType_BOOL AdsDataType = 0x01
+	AdsDataType_BIT AdsDataType = 0x02
+	AdsDataType_BIT8 AdsDataType = 0x03
+	AdsDataType_BYTE AdsDataType = 0x04
+	AdsDataType_BITARR8 AdsDataType = 0x05
+	AdsDataType_WORD AdsDataType = 0x06
+	AdsDataType_BITARR16 AdsDataType = 0x07
+	AdsDataType_DWORD AdsDataType = 0x08
+	AdsDataType_BITARR32 AdsDataType = 0x09
+	AdsDataType_SINT AdsDataType = 0x0A
+	AdsDataType_INT8 AdsDataType = 0x0B
+	AdsDataType_USINT AdsDataType = 0x0C
+	AdsDataType_UINT8 AdsDataType = 0x0D
+	AdsDataType_INT AdsDataType = 0x0E
+	AdsDataType_INT16 AdsDataType = 0x0F
+	AdsDataType_UINT AdsDataType = 0x10
+	AdsDataType_UINT16 AdsDataType = 0x11
+	AdsDataType_DINT AdsDataType = 0x12
+	AdsDataType_INT32 AdsDataType = 0x13
+	AdsDataType_UDINT AdsDataType = 0x14
+	AdsDataType_UINT32 AdsDataType = 0x15
+	AdsDataType_LINT AdsDataType = 0x16
+	AdsDataType_INT64 AdsDataType = 0x17
+	AdsDataType_ULINT AdsDataType = 0x18
+	AdsDataType_UINT64 AdsDataType = 0x19
+	AdsDataType_REAL AdsDataType = 0x1A
+	AdsDataType_FLOAT AdsDataType = 0x1B
+	AdsDataType_LREAL AdsDataType = 0x1C
+	AdsDataType_DOUBLE AdsDataType = 0x1D
+	AdsDataType_CHAR AdsDataType = 0x1E
+	AdsDataType_WCHAR AdsDataType = 0x1F
+	AdsDataType_STRING AdsDataType = 0x20
+	AdsDataType_WSTRING AdsDataType = 0x21
+	AdsDataType_TIME AdsDataType = 0x22
+	AdsDataType_LTIME AdsDataType = 0x23
+	AdsDataType_DATE AdsDataType = 0x24
+	AdsDataType_TIME_OF_DAY AdsDataType = 0x25
+	AdsDataType_TOD AdsDataType = 0x26
 	AdsDataType_DATE_AND_TIME AdsDataType = 0x27
-	AdsDataType_DT            AdsDataType = 0x28
+	AdsDataType_DT AdsDataType = 0x28
 )
 
 var AdsDataTypeValues []AdsDataType
 
 func init() {
 	_ = errors.New
-	AdsDataTypeValues = []AdsDataType{
+	AdsDataTypeValues = []AdsDataType {
 		AdsDataType_BOOL,
 		AdsDataType_BIT,
 		AdsDataType_BIT8,
@@ -125,170 +125,130 @@ func init() {
 	}
 }
 
+
 func (e AdsDataType) NumBytes() uint16 {
-	switch e {
-	case 0x01:
-		{ /* '0x01' */
-			return 1
+	switch e  {
+		case 0x01: { /* '0x01' */
+            return 1
 		}
-	case 0x02:
-		{ /* '0x02' */
-			return 1
+		case 0x02: { /* '0x02' */
+            return 1
 		}
-	case 0x03:
-		{ /* '0x03' */
-			return 1
+		case 0x03: { /* '0x03' */
+            return 1
 		}
-	case 0x04:
-		{ /* '0x04' */
-			return 1
+		case 0x04: { /* '0x04' */
+            return 1
 		}
-	case 0x05:
-		{ /* '0x05' */
-			return 1
+		case 0x05: { /* '0x05' */
+            return 1
 		}
-	case 0x06:
-		{ /* '0x06' */
-			return 2
+		case 0x06: { /* '0x06' */
+            return 2
 		}
-	case 0x07:
-		{ /* '0x07' */
-			return 2
+		case 0x07: { /* '0x07' */
+            return 2
 		}
-	case 0x08:
-		{ /* '0x08' */
-			return 4
+		case 0x08: { /* '0x08' */
+            return 4
 		}
-	case 0x09:
-		{ /* '0x09' */
-			return 4
+		case 0x09: { /* '0x09' */
+            return 4
 		}
-	case 0x0A:
-		{ /* '0x0A' */
-			return 1
+		case 0x0A: { /* '0x0A' */
+            return 1
 		}
-	case 0x0B:
-		{ /* '0x0B' */
-			return 1
+		case 0x0B: { /* '0x0B' */
+            return 1
 		}
-	case 0x0C:
-		{ /* '0x0C' */
-			return 1
+		case 0x0C: { /* '0x0C' */
+            return 1
 		}
-	case 0x0D:
-		{ /* '0x0D' */
-			return 1
+		case 0x0D: { /* '0x0D' */
+            return 1
 		}
-	case 0x0E:
-		{ /* '0x0E' */
-			return 2
+		case 0x0E: { /* '0x0E' */
+            return 2
 		}
-	case 0x0F:
-		{ /* '0x0F' */
-			return 2
+		case 0x0F: { /* '0x0F' */
+            return 2
 		}
-	case 0x10:
-		{ /* '0x10' */
-			return 2
+		case 0x10: { /* '0x10' */
+            return 2
 		}
-	case 0x11:
-		{ /* '0x11' */
-			return 2
+		case 0x11: { /* '0x11' */
+            return 2
 		}
-	case 0x12:
-		{ /* '0x12' */
-			return 4
+		case 0x12: { /* '0x12' */
+            return 4
 		}
-	case 0x13:
-		{ /* '0x13' */
-			return 4
+		case 0x13: { /* '0x13' */
+            return 4
 		}
-	case 0x14:
-		{ /* '0x14' */
-			return 4
+		case 0x14: { /* '0x14' */
+            return 4
 		}
-	case 0x15:
-		{ /* '0x15' */
-			return 4
+		case 0x15: { /* '0x15' */
+            return 4
 		}
-	case 0x16:
-		{ /* '0x16' */
-			return 8
+		case 0x16: { /* '0x16' */
+            return 8
 		}
-	case 0x17:
-		{ /* '0x17' */
-			return 8
+		case 0x17: { /* '0x17' */
+            return 8
 		}
-	case 0x18:
-		{ /* '0x18' */
-			return 8
+		case 0x18: { /* '0x18' */
+            return 8
 		}
-	case 0x19:
-		{ /* '0x19' */
-			return 8
+		case 0x19: { /* '0x19' */
+            return 8
 		}
-	case 0x1A:
-		{ /* '0x1A' */
-			return 4
+		case 0x1A: { /* '0x1A' */
+            return 4
 		}
-	case 0x1B:
-		{ /* '0x1B' */
-			return 4
+		case 0x1B: { /* '0x1B' */
+            return 4
 		}
-	case 0x1C:
-		{ /* '0x1C' */
-			return 8
+		case 0x1C: { /* '0x1C' */
+            return 8
 		}
-	case 0x1D:
-		{ /* '0x1D' */
-			return 8
+		case 0x1D: { /* '0x1D' */
+            return 8
 		}
-	case 0x1E:
-		{ /* '0x1E' */
-			return 1
+		case 0x1E: { /* '0x1E' */
+            return 1
 		}
-	case 0x1F:
-		{ /* '0x1F' */
-			return 2
+		case 0x1F: { /* '0x1F' */
+            return 2
 		}
-	case 0x20:
-		{ /* '0x20' */
-			return 256
+		case 0x20: { /* '0x20' */
+            return 256
 		}
-	case 0x21:
-		{ /* '0x21' */
-			return 512
+		case 0x21: { /* '0x21' */
+            return 512
 		}
-	case 0x22:
-		{ /* '0x22' */
-			return 4
+		case 0x22: { /* '0x22' */
+            return 4
 		}
-	case 0x23:
-		{ /* '0x23' */
-			return 8
+		case 0x23: { /* '0x23' */
+            return 8
 		}
-	case 0x24:
-		{ /* '0x24' */
-			return 4
+		case 0x24: { /* '0x24' */
+            return 4
 		}
-	case 0x25:
-		{ /* '0x25' */
-			return 4
+		case 0x25: { /* '0x25' */
+            return 4
 		}
-	case 0x26:
-		{ /* '0x26' */
-			return 4
+		case 0x26: { /* '0x26' */
+            return 4
 		}
-	case 0x27:
-		{ /* '0x27' */
-			return 4
+		case 0x27: { /* '0x27' */
+            return 4
 		}
-	case 0x28:
-		{ /* '0x28' */
-			return 4
+		case 0x28: { /* '0x28' */
+            return 4
 		}
-	default:
-		{
+		default: {
 			return 0
 		}
 	}
@@ -304,169 +264,128 @@ func AdsDataTypeFirstEnumForFieldNumBytes(value uint16) (AdsDataType, error) {
 }
 
 func (e AdsDataType) DataFormatName() string {
-	switch e {
-	case 0x01:
-		{ /* '0x01' */
-			return "IEC61131_BOOL"
+	switch e  {
+		case 0x01: { /* '0x01' */
+            return "IEC61131_BOOL"
 		}
-	case 0x02:
-		{ /* '0x02' */
-			return "IEC61131_BOOL"
+		case 0x02: { /* '0x02' */
+            return "IEC61131_BOOL"
 		}
-	case 0x03:
-		{ /* '0x03' */
-			return "IEC61131_BOOL"
+		case 0x03: { /* '0x03' */
+            return "IEC61131_BOOL"
 		}
-	case 0x04:
-		{ /* '0x04' */
-			return "IEC61131_BYTE"
+		case 0x04: { /* '0x04' */
+            return "IEC61131_BYTE"
 		}
-	case 0x05:
-		{ /* '0x05' */
-			return "IEC61131_BYTE"
+		case 0x05: { /* '0x05' */
+            return "IEC61131_BYTE"
 		}
-	case 0x06:
-		{ /* '0x06' */
-			return "IEC61131_WORD"
+		case 0x06: { /* '0x06' */
+            return "IEC61131_WORD"
 		}
-	case 0x07:
-		{ /* '0x07' */
-			return "IEC61131_WORD"
+		case 0x07: { /* '0x07' */
+            return "IEC61131_WORD"
 		}
-	case 0x08:
-		{ /* '0x08' */
-			return "IEC61131_DWORD"
+		case 0x08: { /* '0x08' */
+            return "IEC61131_DWORD"
 		}
-	case 0x09:
-		{ /* '0x09' */
-			return "IEC61131_DWORD"
+		case 0x09: { /* '0x09' */
+            return "IEC61131_DWORD"
 		}
-	case 0x0A:
-		{ /* '0x0A' */
-			return "IEC61131_SINT"
+		case 0x0A: { /* '0x0A' */
+            return "IEC61131_SINT"
 		}
-	case 0x0B:
-		{ /* '0x0B' */
-			return "IEC61131_SINT"
+		case 0x0B: { /* '0x0B' */
+            return "IEC61131_SINT"
 		}
-	case 0x0C:
-		{ /* '0x0C' */
-			return "IEC61131_USINT"
+		case 0x0C: { /* '0x0C' */
+            return "IEC61131_USINT"
 		}
-	case 0x0D:
-		{ /* '0x0D' */
-			return "IEC61131_USINT"
+		case 0x0D: { /* '0x0D' */
+            return "IEC61131_USINT"
 		}
-	case 0x0E:
-		{ /* '0x0E' */
-			return "IEC61131_INT"
+		case 0x0E: { /* '0x0E' */
+            return "IEC61131_INT"
 		}
-	case 0x0F:
-		{ /* '0x0F' */
-			return "IEC61131_INT"
+		case 0x0F: { /* '0x0F' */
+            return "IEC61131_INT"
 		}
-	case 0x10:
-		{ /* '0x10' */
-			return "IEC61131_UINT"
+		case 0x10: { /* '0x10' */
+            return "IEC61131_UINT"
 		}
-	case 0x11:
-		{ /* '0x11' */
-			return "IEC61131_UINT"
+		case 0x11: { /* '0x11' */
+            return "IEC61131_UINT"
 		}
-	case 0x12:
-		{ /* '0x12' */
-			return "IEC61131_DINT"
+		case 0x12: { /* '0x12' */
+            return "IEC61131_DINT"
 		}
-	case 0x13:
-		{ /* '0x13' */
-			return "IEC61131_DINT"
+		case 0x13: { /* '0x13' */
+            return "IEC61131_DINT"
 		}
-	case 0x14:
-		{ /* '0x14' */
-			return "IEC61131_UDINT"
+		case 0x14: { /* '0x14' */
+            return "IEC61131_UDINT"
 		}
-	case 0x15:
-		{ /* '0x15' */
-			return "IEC61131_UDINT"
+		case 0x15: { /* '0x15' */
+            return "IEC61131_UDINT"
 		}
-	case 0x16:
-		{ /* '0x16' */
-			return "IEC61131_LINT"
+		case 0x16: { /* '0x16' */
+            return "IEC61131_LINT"
 		}
-	case 0x17:
-		{ /* '0x17' */
-			return "IEC61131_LINT"
+		case 0x17: { /* '0x17' */
+            return "IEC61131_LINT"
 		}
-	case 0x18:
-		{ /* '0x18' */
-			return "IEC61131_ULINT"
+		case 0x18: { /* '0x18' */
+            return "IEC61131_ULINT"
 		}
-	case 0x19:
-		{ /* '0x19' */
-			return "IEC61131_ULINT"
+		case 0x19: { /* '0x19' */
+            return "IEC61131_ULINT"
 		}
-	case 0x1A:
-		{ /* '0x1A' */
-			return "IEC61131_REAL"
+		case 0x1A: { /* '0x1A' */
+            return "IEC61131_REAL"
 		}
-	case 0x1B:
-		{ /* '0x1B' */
-			return "IEC61131_REAL"
+		case 0x1B: { /* '0x1B' */
+            return "IEC61131_REAL"
 		}
-	case 0x1C:
-		{ /* '0x1C' */
-			return "IEC61131_LREAL"
+		case 0x1C: { /* '0x1C' */
+            return "IEC61131_LREAL"
 		}
-	case 0x1D:
-		{ /* '0x1D' */
-			return "IEC61131_LREAL"
+		case 0x1D: { /* '0x1D' */
+            return "IEC61131_LREAL"
 		}
-	case 0x1E:
-		{ /* '0x1E' */
-			return "IEC61131_CHAR"
+		case 0x1E: { /* '0x1E' */
+            return "IEC61131_CHAR"
 		}
-	case 0x1F:
-		{ /* '0x1F' */
-			return "IEC61131_WCHAR"
+		case 0x1F: { /* '0x1F' */
+            return "IEC61131_WCHAR"
 		}
-	case 0x20:
-		{ /* '0x20' */
-			return "IEC61131_STRING"
+		case 0x20: { /* '0x20' */
+            return "IEC61131_STRING"
 		}
-	case 0x21:
-		{ /* '0x21' */
-			return "IEC61131_WSTRING"
+		case 0x21: { /* '0x21' */
+            return "IEC61131_WSTRING"
 		}
-	case 0x22:
-		{ /* '0x22' */
-			return "IEC61131_TIME"
+		case 0x22: { /* '0x22' */
+            return "IEC61131_TIME"
 		}
-	case 0x23:
-		{ /* '0x23' */
-			return "IEC61131_LTIME"
+		case 0x23: { /* '0x23' */
+            return "IEC61131_LTIME"
 		}
-	case 0x24:
-		{ /* '0x24' */
-			return "IEC61131_DATE"
+		case 0x24: { /* '0x24' */
+            return "IEC61131_DATE"
 		}
-	case 0x25:
-		{ /* '0x25' */
-			return "IEC61131_TIME_OF_DAY"
+		case 0x25: { /* '0x25' */
+            return "IEC61131_TIME_OF_DAY"
 		}
-	case 0x26:
-		{ /* '0x26' */
-			return "IEC61131_TIME_OF_DAY"
+		case 0x26: { /* '0x26' */
+            return "IEC61131_TIME_OF_DAY"
 		}
-	case 0x27:
-		{ /* '0x27' */
-			return "IEC61131_DATE_AND_TIME"
+		case 0x27: { /* '0x27' */
+            return "IEC61131_DATE_AND_TIME"
 		}
-	case 0x28:
-		{ /* '0x28' */
-			return "IEC61131_DATE_AND_TIME"
+		case 0x28: { /* '0x28' */
+            return "IEC61131_DATE_AND_TIME"
 		}
-	default:
-		{
+		default: {
 			return ""
 		}
 	}
@@ -482,86 +401,86 @@ func AdsDataTypeFirstEnumForFieldDataFormatName(value string) (AdsDataType, erro
 }
 func AdsDataTypeByValue(value int8) AdsDataType {
 	switch value {
-	case 0x01:
-		return AdsDataType_BOOL
-	case 0x02:
-		return AdsDataType_BIT
-	case 0x03:
-		return AdsDataType_BIT8
-	case 0x04:
-		return AdsDataType_BYTE
-	case 0x05:
-		return AdsDataType_BITARR8
-	case 0x06:
-		return AdsDataType_WORD
-	case 0x07:
-		return AdsDataType_BITARR16
-	case 0x08:
-		return AdsDataType_DWORD
-	case 0x09:
-		return AdsDataType_BITARR32
-	case 0x0A:
-		return AdsDataType_SINT
-	case 0x0B:
-		return AdsDataType_INT8
-	case 0x0C:
-		return AdsDataType_USINT
-	case 0x0D:
-		return AdsDataType_UINT8
-	case 0x0E:
-		return AdsDataType_INT
-	case 0x0F:
-		return AdsDataType_INT16
-	case 0x10:
-		return AdsDataType_UINT
-	case 0x11:
-		return AdsDataType_UINT16
-	case 0x12:
-		return AdsDataType_DINT
-	case 0x13:
-		return AdsDataType_INT32
-	case 0x14:
-		return AdsDataType_UDINT
-	case 0x15:
-		return AdsDataType_UINT32
-	case 0x16:
-		return AdsDataType_LINT
-	case 0x17:
-		return AdsDataType_INT64
-	case 0x18:
-		return AdsDataType_ULINT
-	case 0x19:
-		return AdsDataType_UINT64
-	case 0x1A:
-		return AdsDataType_REAL
-	case 0x1B:
-		return AdsDataType_FLOAT
-	case 0x1C:
-		return AdsDataType_LREAL
-	case 0x1D:
-		return AdsDataType_DOUBLE
-	case 0x1E:
-		return AdsDataType_CHAR
-	case 0x1F:
-		return AdsDataType_WCHAR
-	case 0x20:
-		return AdsDataType_STRING
-	case 0x21:
-		return AdsDataType_WSTRING
-	case 0x22:
-		return AdsDataType_TIME
-	case 0x23:
-		return AdsDataType_LTIME
-	case 0x24:
-		return AdsDataType_DATE
-	case 0x25:
-		return AdsDataType_TIME_OF_DAY
-	case 0x26:
-		return AdsDataType_TOD
-	case 0x27:
-		return AdsDataType_DATE_AND_TIME
-	case 0x28:
-		return AdsDataType_DT
+		case 0x01:
+			return AdsDataType_BOOL
+		case 0x02:
+			return AdsDataType_BIT
+		case 0x03:
+			return AdsDataType_BIT8
+		case 0x04:
+			return AdsDataType_BYTE
+		case 0x05:
+			return AdsDataType_BITARR8
+		case 0x06:
+			return AdsDataType_WORD
+		case 0x07:
+			return AdsDataType_BITARR16
+		case 0x08:
+			return AdsDataType_DWORD
+		case 0x09:
+			return AdsDataType_BITARR32
+		case 0x0A:
+			return AdsDataType_SINT
+		case 0x0B:
+			return AdsDataType_INT8
+		case 0x0C:
+			return AdsDataType_USINT
+		case 0x0D:
+			return AdsDataType_UINT8
+		case 0x0E:
+			return AdsDataType_INT
+		case 0x0F:
+			return AdsDataType_INT16
+		case 0x10:
+			return AdsDataType_UINT
+		case 0x11:
+			return AdsDataType_UINT16
+		case 0x12:
+			return AdsDataType_DINT
+		case 0x13:
+			return AdsDataType_INT32
+		case 0x14:
+			return AdsDataType_UDINT
+		case 0x15:
+			return AdsDataType_UINT32
+		case 0x16:
+			return AdsDataType_LINT
+		case 0x17:
+			return AdsDataType_INT64
+		case 0x18:
+			return AdsDataType_ULINT
+		case 0x19:
+			return AdsDataType_UINT64
+		case 0x1A:
+			return AdsDataType_REAL
+		case 0x1B:
+			return AdsDataType_FLOAT
+		case 0x1C:
+			return AdsDataType_LREAL
+		case 0x1D:
+			return AdsDataType_DOUBLE
+		case 0x1E:
+			return AdsDataType_CHAR
+		case 0x1F:
+			return AdsDataType_WCHAR
+		case 0x20:
+			return AdsDataType_STRING
+		case 0x21:
+			return AdsDataType_WSTRING
+		case 0x22:
+			return AdsDataType_TIME
+		case 0x23:
+			return AdsDataType_LTIME
+		case 0x24:
+			return AdsDataType_DATE
+		case 0x25:
+			return AdsDataType_TIME_OF_DAY
+		case 0x26:
+			return AdsDataType_TOD
+		case 0x27:
+			return AdsDataType_DATE_AND_TIME
+		case 0x28:
+			return AdsDataType_DT
 	}
 	return 0
 }
@@ -771,3 +690,4 @@ func (e AdsDataType) name() string {
 func (e AdsDataType) String() string {
 	return e.name()
 }
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
index f7c3348..7209c83 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
@@ -19,17 +19,19 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsDeleteDeviceNotificationRequest struct {
 	NotificationHandle uint32
-	Parent             *AdsData
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -50,13 +52,14 @@ func (m *AdsDeleteDeviceNotificationRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsDeleteDeviceNotificationRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsDeleteDeviceNotificationRequest(notificationHandle uint32) *AdsData {
 	child := &AdsDeleteDeviceNotificationRequest{
 		NotificationHandle: notificationHandle,
-		Parent:             NewAdsData(),
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -93,22 +96,23 @@ func (m *AdsDeleteDeviceNotificationRequest) LengthInBitsConditional(lastItem bo
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (notificationHandle)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	return lengthInBits
 }
 
+
 func (m *AdsDeleteDeviceNotificationRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsDeleteDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsDeleteDeviceNotificationRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsDeleteDeviceNotificationRequest"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (notificationHandle)
-	notificationHandle, _notificationHandleErr := readBuffer.ReadUint32("notificationHandle", 32)
+notificationHandle, _notificationHandleErr := readBuffer.ReadUint32("notificationHandle", 32)
 	if _notificationHandleErr != nil {
 		return nil, errors.Wrap(_notificationHandleErr, "Error parsing 'notificationHandle' field")
 	}
@@ -120,7 +124,7 @@ func AdsDeleteDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (*AdsD
 	// Create a partially initialized instance
 	_child := &AdsDeleteDeviceNotificationRequest{
 		NotificationHandle: notificationHandle,
-		Parent:             &AdsData{},
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -132,12 +136,12 @@ func (m *AdsDeleteDeviceNotificationRequest) Serialize(writeBuffer utils.WriteBu
 			return pushErr
 		}
 
-		// Simple Field (notificationHandle)
-		notificationHandle := uint32(m.NotificationHandle)
-		_notificationHandleErr := writeBuffer.WriteUint32("notificationHandle", 32, (notificationHandle))
-		if _notificationHandleErr != nil {
-			return errors.Wrap(_notificationHandleErr, "Error serializing 'notificationHandle' field")
-		}
+	// Simple Field (notificationHandle)
+	notificationHandle := uint32(m.NotificationHandle)
+	_notificationHandleErr := writeBuffer.WriteUint32("notificationHandle", 32, (notificationHandle))
+	if _notificationHandleErr != nil {
+		return errors.Wrap(_notificationHandleErr, "Error serializing 'notificationHandle' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsDeleteDeviceNotificationRequest"); popErr != nil {
 			return popErr
@@ -155,3 +159,6 @@ func (m *AdsDeleteDeviceNotificationRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
index 3286eda..fe93f42 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
@@ -19,12 +19,14 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsDeleteDeviceNotificationResponse struct {
@@ -50,6 +52,7 @@ func (m *AdsDeleteDeviceNotificationResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsDeleteDeviceNotificationResponse) InitializeParent(parent *AdsData) {
 }
 
@@ -98,11 +101,12 @@ func (m *AdsDeleteDeviceNotificationResponse) LengthInBitsConditional(lastItem b
 	return lengthInBits
 }
 
+
 func (m *AdsDeleteDeviceNotificationResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsDeleteDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsDeleteDeviceNotificationResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsDeleteDeviceNotificationResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -111,7 +115,7 @@ func AdsDeleteDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (*Ads
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -138,17 +142,17 @@ func (m *AdsDeleteDeviceNotificationResponse) Serialize(writeBuffer utils.WriteB
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsDeleteDeviceNotificationResponse"); popErr != nil {
 			return popErr
@@ -166,3 +170,6 @@ func (m *AdsDeleteDeviceNotificationResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
index c778f43..f52fd59 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
@@ -19,19 +19,21 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsDeviceNotificationRequest struct {
-	Length          uint32
-	Stamps          uint32
+	Length uint32
+	Stamps uint32
 	AdsStampHeaders []*AdsStampHeader
-	Parent          *AdsData
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -52,15 +54,16 @@ func (m *AdsDeviceNotificationRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsDeviceNotificationRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsDeviceNotificationRequest(length uint32, stamps uint32, adsStampHeaders []*AdsStampHeader) *AdsData {
 	child := &AdsDeviceNotificationRequest{
-		Length:          length,
-		Stamps:          stamps,
+		Length: length,
+		Stamps: stamps,
 		AdsStampHeaders: adsStampHeaders,
-		Parent:          NewAdsData(),
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -97,15 +100,15 @@ func (m *AdsDeviceNotificationRequest) LengthInBitsConditional(lastItem bool) ui
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (length)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (stamps)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Array field
 	if len(m.AdsStampHeaders) > 0 {
 		for i, element := range m.AdsStampHeaders {
-			last := i == len(m.AdsStampHeaders)-1
+			last := i == len(m.AdsStampHeaders) -1
 			lengthInBits += element.LengthInBitsConditional(last)
 		}
 	}
@@ -113,23 +116,24 @@ func (m *AdsDeviceNotificationRequest) LengthInBitsConditional(lastItem bool) ui
 	return lengthInBits
 }
 
+
 func (m *AdsDeviceNotificationRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsDeviceNotificationRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsDeviceNotificationRequest"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (length)
-	length, _lengthErr := readBuffer.ReadUint32("length", 32)
+length, _lengthErr := readBuffer.ReadUint32("length", 32)
 	if _lengthErr != nil {
 		return nil, errors.Wrap(_lengthErr, "Error parsing 'length' field")
 	}
 
 	// Simple Field (stamps)
-	stamps, _stampsErr := readBuffer.ReadUint32("stamps", 32)
+stamps, _stampsErr := readBuffer.ReadUint32("stamps", 32)
 	if _stampsErr != nil {
 		return nil, errors.Wrap(_stampsErr, "Error parsing 'stamps' field")
 	}
@@ -157,10 +161,10 @@ func AdsDeviceNotificationRequestParse(readBuffer utils.ReadBuffer) (*AdsData, e
 
 	// Create a partially initialized instance
 	_child := &AdsDeviceNotificationRequest{
-		Length:          length,
-		Stamps:          stamps,
+		Length: length,
+		Stamps: stamps,
 		AdsStampHeaders: adsStampHeaders,
-		Parent:          &AdsData{},
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -172,35 +176,35 @@ func (m *AdsDeviceNotificationRequest) Serialize(writeBuffer utils.WriteBuffer)
 			return pushErr
 		}
 
-		// Simple Field (length)
-		length := uint32(m.Length)
-		_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
-		if _lengthErr != nil {
-			return errors.Wrap(_lengthErr, "Error serializing 'length' field")
-		}
+	// Simple Field (length)
+	length := uint32(m.Length)
+	_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
+	if _lengthErr != nil {
+		return errors.Wrap(_lengthErr, "Error serializing 'length' field")
+	}
 
-		// Simple Field (stamps)
-		stamps := uint32(m.Stamps)
-		_stampsErr := writeBuffer.WriteUint32("stamps", 32, (stamps))
-		if _stampsErr != nil {
-			return errors.Wrap(_stampsErr, "Error serializing 'stamps' field")
-		}
+	// Simple Field (stamps)
+	stamps := uint32(m.Stamps)
+	_stampsErr := writeBuffer.WriteUint32("stamps", 32, (stamps))
+	if _stampsErr != nil {
+		return errors.Wrap(_stampsErr, "Error serializing 'stamps' field")
+	}
 
-		// Array Field (adsStampHeaders)
-		if m.AdsStampHeaders != nil {
-			if pushErr := writeBuffer.PushContext("adsStampHeaders", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.AdsStampHeaders {
-				_elementErr := _element.Serialize(writeBuffer)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'adsStampHeaders' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("adsStampHeaders", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (adsStampHeaders)
+	if m.AdsStampHeaders != nil {
+		if pushErr := writeBuffer.PushContext("adsStampHeaders", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.AdsStampHeaders {
+			_elementErr := _element.Serialize(writeBuffer)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'adsStampHeaders' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("adsStampHeaders", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsDeviceNotificationRequest"); popErr != nil {
 			return popErr
@@ -218,3 +222,6 @@ func (m *AdsDeviceNotificationRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
index e39a126..c201237 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
@@ -19,11 +19,13 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsDeviceNotificationResponse struct {
@@ -48,6 +50,7 @@ func (m *AdsDeviceNotificationResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsDeviceNotificationResponse) InitializeParent(parent *AdsData) {
 }
 
@@ -92,11 +95,12 @@ func (m *AdsDeviceNotificationResponse) LengthInBitsConditional(lastItem bool) u
 	return lengthInBits
 }
 
+
 func (m *AdsDeviceNotificationResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsDeviceNotificationResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsDeviceNotificationResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsDeviceNotificationResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -135,3 +139,6 @@ func (m *AdsDeviceNotificationResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
index 8af6fab..2c9604f 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
@@ -19,11 +19,13 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsInvalidRequest struct {
@@ -48,6 +50,7 @@ func (m *AdsInvalidRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsInvalidRequest) InitializeParent(parent *AdsData) {
 }
 
@@ -92,11 +95,12 @@ func (m *AdsInvalidRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsInvalidRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsInvalidRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsInvalidRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsInvalidRequest"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -135,3 +139,6 @@ func (m *AdsInvalidRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
index b440038..49899be 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
@@ -19,11 +19,13 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsInvalidResponse struct {
@@ -48,6 +50,7 @@ func (m *AdsInvalidResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsInvalidResponse) InitializeParent(parent *AdsData) {
 }
 
@@ -92,11 +95,12 @@ func (m *AdsInvalidResponse) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsInvalidResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsInvalidResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsInvalidResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsInvalidResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -135,3 +139,6 @@ func (m *AdsInvalidResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
index ea9b085..dbbacce 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
@@ -19,12 +19,14 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsMultiRequestItem struct {
@@ -99,12 +101,12 @@ func AdsMultiRequestItemParse(readBuffer utils.ReadBuffer, indexGroup uint32) (*
 	var _parent *AdsMultiRequestItem
 	var typeSwitchError error
 	switch {
-	case indexGroup == 61568: // AdsMultiRequestItemRead
-		_parent, typeSwitchError = AdsMultiRequestItemReadParse(readBuffer)
-	case indexGroup == 61569: // AdsMultiRequestItemWrite
-		_parent, typeSwitchError = AdsMultiRequestItemWriteParse(readBuffer)
-	case indexGroup == 61570: // AdsMultiRequestItemReadWrite
-		_parent, typeSwitchError = AdsMultiRequestItemReadWriteParse(readBuffer)
+case indexGroup == 61568 : // AdsMultiRequestItemRead
+		_parent, typeSwitchError = AdsMultiRequestItemReadParse(readBuffer, )
+case indexGroup == 61569 : // AdsMultiRequestItemWrite
+		_parent, typeSwitchError = AdsMultiRequestItemWriteParse(readBuffer, )
+case indexGroup == 61570 : // AdsMultiRequestItemReadWrite
+		_parent, typeSwitchError = AdsMultiRequestItemReadWriteParse(readBuffer, )
 	default:
 		// TODO: return actual type
 		typeSwitchError = errors.New("Unmapped type")
@@ -127,7 +129,7 @@ func (m *AdsMultiRequestItem) Serialize(writeBuffer utils.WriteBuffer) error {
 }
 
 func (m *AdsMultiRequestItem) SerializeParent(writeBuffer utils.WriteBuffer, child IAdsMultiRequestItem, serializeChildFunction func() error) error {
-	if pushErr := writeBuffer.PushContext("AdsMultiRequestItem"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AdsMultiRequestItem"); pushErr != nil {
 		return pushErr
 	}
 
@@ -151,3 +153,6 @@ func (m *AdsMultiRequestItem) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
index 4bb70d0..09a0467 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
@@ -19,19 +19,21 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsMultiRequestItemRead struct {
-	ItemIndexGroup  uint32
+	ItemIndexGroup uint32
 	ItemIndexOffset uint32
-	ItemReadLength  uint32
-	Parent          *AdsMultiRequestItem
+	ItemReadLength uint32
+	Parent *AdsMultiRequestItem
 }
 
 // The corresponding interface
@@ -48,15 +50,16 @@ func (m *AdsMultiRequestItemRead) IndexGroup() uint32 {
 	return 61568
 }
 
+
 func (m *AdsMultiRequestItemRead) InitializeParent(parent *AdsMultiRequestItem) {
 }
 
 func NewAdsMultiRequestItemRead(itemIndexGroup uint32, itemIndexOffset uint32, itemReadLength uint32) *AdsMultiRequestItem {
 	child := &AdsMultiRequestItemRead{
-		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexGroup: itemIndexGroup,
 		ItemIndexOffset: itemIndexOffset,
-		ItemReadLength:  itemReadLength,
-		Parent:          NewAdsMultiRequestItem(),
+		ItemReadLength: itemReadLength,
+		Parent: NewAdsMultiRequestItem(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -93,40 +96,41 @@ func (m *AdsMultiRequestItemRead) LengthInBitsConditional(lastItem bool) uint16
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (itemIndexGroup)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (itemIndexOffset)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (itemReadLength)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	return lengthInBits
 }
 
+
 func (m *AdsMultiRequestItemRead) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsMultiRequestItemReadParse(readBuffer utils.ReadBuffer) (*AdsMultiRequestItem, error) {
+func AdsMultiRequestItemReadParse(readBuffer utils.ReadBuffer, ) (*AdsMultiRequestItem, error) {
 	if pullErr := readBuffer.PullContext("AdsMultiRequestItemRead"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (itemIndexGroup)
-	itemIndexGroup, _itemIndexGroupErr := readBuffer.ReadUint32("itemIndexGroup", 32)
+itemIndexGroup, _itemIndexGroupErr := readBuffer.ReadUint32("itemIndexGroup", 32)
 	if _itemIndexGroupErr != nil {
 		return nil, errors.Wrap(_itemIndexGroupErr, "Error parsing 'itemIndexGroup' field")
 	}
 
 	// Simple Field (itemIndexOffset)
-	itemIndexOffset, _itemIndexOffsetErr := readBuffer.ReadUint32("itemIndexOffset", 32)
+itemIndexOffset, _itemIndexOffsetErr := readBuffer.ReadUint32("itemIndexOffset", 32)
 	if _itemIndexOffsetErr != nil {
 		return nil, errors.Wrap(_itemIndexOffsetErr, "Error parsing 'itemIndexOffset' field")
 	}
 
 	// Simple Field (itemReadLength)
-	itemReadLength, _itemReadLengthErr := readBuffer.ReadUint32("itemReadLength", 32)
+itemReadLength, _itemReadLengthErr := readBuffer.ReadUint32("itemReadLength", 32)
 	if _itemReadLengthErr != nil {
 		return nil, errors.Wrap(_itemReadLengthErr, "Error parsing 'itemReadLength' field")
 	}
@@ -137,10 +141,10 @@ func AdsMultiRequestItemReadParse(readBuffer utils.ReadBuffer) (*AdsMultiRequest
 
 	// Create a partially initialized instance
 	_child := &AdsMultiRequestItemRead{
-		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexGroup: itemIndexGroup,
 		ItemIndexOffset: itemIndexOffset,
-		ItemReadLength:  itemReadLength,
-		Parent:          &AdsMultiRequestItem{},
+		ItemReadLength: itemReadLength,
+		Parent: &AdsMultiRequestItem{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -152,26 +156,26 @@ func (m *AdsMultiRequestItemRead) Serialize(writeBuffer utils.WriteBuffer) error
 			return pushErr
 		}
 
-		// Simple Field (itemIndexGroup)
-		itemIndexGroup := uint32(m.ItemIndexGroup)
-		_itemIndexGroupErr := writeBuffer.WriteUint32("itemIndexGroup", 32, (itemIndexGroup))
-		if _itemIndexGroupErr != nil {
-			return errors.Wrap(_itemIndexGroupErr, "Error serializing 'itemIndexGroup' field")
-		}
+	// Simple Field (itemIndexGroup)
+	itemIndexGroup := uint32(m.ItemIndexGroup)
+	_itemIndexGroupErr := writeBuffer.WriteUint32("itemIndexGroup", 32, (itemIndexGroup))
+	if _itemIndexGroupErr != nil {
+		return errors.Wrap(_itemIndexGroupErr, "Error serializing 'itemIndexGroup' field")
+	}
 
-		// Simple Field (itemIndexOffset)
-		itemIndexOffset := uint32(m.ItemIndexOffset)
-		_itemIndexOffsetErr := writeBuffer.WriteUint32("itemIndexOffset", 32, (itemIndexOffset))
-		if _itemIndexOffsetErr != nil {
-			return errors.Wrap(_itemIndexOffsetErr, "Error serializing 'itemIndexOffset' field")
-		}
+	// Simple Field (itemIndexOffset)
+	itemIndexOffset := uint32(m.ItemIndexOffset)
+	_itemIndexOffsetErr := writeBuffer.WriteUint32("itemIndexOffset", 32, (itemIndexOffset))
+	if _itemIndexOffsetErr != nil {
+		return errors.Wrap(_itemIndexOffsetErr, "Error serializing 'itemIndexOffset' field")
+	}
 
-		// Simple Field (itemReadLength)
-		itemReadLength := uint32(m.ItemReadLength)
-		_itemReadLengthErr := writeBuffer.WriteUint32("itemReadLength", 32, (itemReadLength))
-		if _itemReadLengthErr != nil {
-			return errors.Wrap(_itemReadLengthErr, "Error serializing 'itemReadLength' field")
-		}
+	// Simple Field (itemReadLength)
+	itemReadLength := uint32(m.ItemReadLength)
+	_itemReadLengthErr := writeBuffer.WriteUint32("itemReadLength", 32, (itemReadLength))
+	if _itemReadLengthErr != nil {
+		return errors.Wrap(_itemReadLengthErr, "Error serializing 'itemReadLength' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsMultiRequestItemRead"); popErr != nil {
 			return popErr
@@ -189,3 +193,6 @@ func (m *AdsMultiRequestItemRead) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
index 8777f31..a8679cd 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
@@ -19,20 +19,22 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsMultiRequestItemReadWrite struct {
-	ItemIndexGroup  uint32
+	ItemIndexGroup uint32
 	ItemIndexOffset uint32
-	ItemReadLength  uint32
+	ItemReadLength uint32
 	ItemWriteLength uint32
-	Parent          *AdsMultiRequestItem
+	Parent *AdsMultiRequestItem
 }
 
 // The corresponding interface
@@ -49,16 +51,17 @@ func (m *AdsMultiRequestItemReadWrite) IndexGroup() uint32 {
 	return 61570
 }
 
+
 func (m *AdsMultiRequestItemReadWrite) InitializeParent(parent *AdsMultiRequestItem) {
 }
 
 func NewAdsMultiRequestItemReadWrite(itemIndexGroup uint32, itemIndexOffset uint32, itemReadLength uint32, itemWriteLength uint32) *AdsMultiRequestItem {
 	child := &AdsMultiRequestItemReadWrite{
-		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexGroup: itemIndexGroup,
 		ItemIndexOffset: itemIndexOffset,
-		ItemReadLength:  itemReadLength,
+		ItemReadLength: itemReadLength,
 		ItemWriteLength: itemWriteLength,
-		Parent:          NewAdsMultiRequestItem(),
+		Parent: NewAdsMultiRequestItem(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -95,49 +98,50 @@ func (m *AdsMultiRequestItemReadWrite) LengthInBitsConditional(lastItem bool) ui
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (itemIndexGroup)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (itemIndexOffset)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (itemReadLength)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (itemWriteLength)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	return lengthInBits
 }
 
+
 func (m *AdsMultiRequestItemReadWrite) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsMultiRequestItemReadWriteParse(readBuffer utils.ReadBuffer) (*AdsMultiRequestItem, error) {
+func AdsMultiRequestItemReadWriteParse(readBuffer utils.ReadBuffer, ) (*AdsMultiRequestItem, error) {
 	if pullErr := readBuffer.PullContext("AdsMultiRequestItemReadWrite"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (itemIndexGroup)
-	itemIndexGroup, _itemIndexGroupErr := readBuffer.ReadUint32("itemIndexGroup", 32)
+itemIndexGroup, _itemIndexGroupErr := readBuffer.ReadUint32("itemIndexGroup", 32)
 	if _itemIndexGroupErr != nil {
 		return nil, errors.Wrap(_itemIndexGroupErr, "Error parsing 'itemIndexGroup' field")
 	}
 
 	// Simple Field (itemIndexOffset)
-	itemIndexOffset, _itemIndexOffsetErr := readBuffer.ReadUint32("itemIndexOffset", 32)
+itemIndexOffset, _itemIndexOffsetErr := readBuffer.ReadUint32("itemIndexOffset", 32)
 	if _itemIndexOffsetErr != nil {
 		return nil, errors.Wrap(_itemIndexOffsetErr, "Error parsing 'itemIndexOffset' field")
 	}
 
 	// Simple Field (itemReadLength)
-	itemReadLength, _itemReadLengthErr := readBuffer.ReadUint32("itemReadLength", 32)
+itemReadLength, _itemReadLengthErr := readBuffer.ReadUint32("itemReadLength", 32)
 	if _itemReadLengthErr != nil {
 		return nil, errors.Wrap(_itemReadLengthErr, "Error parsing 'itemReadLength' field")
 	}
 
 	// Simple Field (itemWriteLength)
-	itemWriteLength, _itemWriteLengthErr := readBuffer.ReadUint32("itemWriteLength", 32)
+itemWriteLength, _itemWriteLengthErr := readBuffer.ReadUint32("itemWriteLength", 32)
 	if _itemWriteLengthErr != nil {
 		return nil, errors.Wrap(_itemWriteLengthErr, "Error parsing 'itemWriteLength' field")
 	}
@@ -148,11 +152,11 @@ func AdsMultiRequestItemReadWriteParse(readBuffer utils.ReadBuffer) (*AdsMultiRe
 
 	// Create a partially initialized instance
 	_child := &AdsMultiRequestItemReadWrite{
-		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexGroup: itemIndexGroup,
 		ItemIndexOffset: itemIndexOffset,
-		ItemReadLength:  itemReadLength,
+		ItemReadLength: itemReadLength,
 		ItemWriteLength: itemWriteLength,
-		Parent:          &AdsMultiRequestItem{},
+		Parent: &AdsMultiRequestItem{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -164,33 +168,33 @@ func (m *AdsMultiRequestItemReadWrite) Serialize(writeBuffer utils.WriteBuffer)
 			return pushErr
 		}
 
-		// Simple Field (itemIndexGroup)
-		itemIndexGroup := uint32(m.ItemIndexGroup)
-		_itemIndexGroupErr := writeBuffer.WriteUint32("itemIndexGroup", 32, (itemIndexGroup))
-		if _itemIndexGroupErr != nil {
-			return errors.Wrap(_itemIndexGroupErr, "Error serializing 'itemIndexGroup' field")
-		}
+	// Simple Field (itemIndexGroup)
+	itemIndexGroup := uint32(m.ItemIndexGroup)
+	_itemIndexGroupErr := writeBuffer.WriteUint32("itemIndexGroup", 32, (itemIndexGroup))
+	if _itemIndexGroupErr != nil {
+		return errors.Wrap(_itemIndexGroupErr, "Error serializing 'itemIndexGroup' field")
+	}
 
-		// Simple Field (itemIndexOffset)
-		itemIndexOffset := uint32(m.ItemIndexOffset)
-		_itemIndexOffsetErr := writeBuffer.WriteUint32("itemIndexOffset", 32, (itemIndexOffset))
-		if _itemIndexOffsetErr != nil {
-			return errors.Wrap(_itemIndexOffsetErr, "Error serializing 'itemIndexOffset' field")
-		}
+	// Simple Field (itemIndexOffset)
+	itemIndexOffset := uint32(m.ItemIndexOffset)
+	_itemIndexOffsetErr := writeBuffer.WriteUint32("itemIndexOffset", 32, (itemIndexOffset))
+	if _itemIndexOffsetErr != nil {
+		return errors.Wrap(_itemIndexOffsetErr, "Error serializing 'itemIndexOffset' field")
+	}
 
-		// Simple Field (itemReadLength)
-		itemReadLength := uint32(m.ItemReadLength)
-		_itemReadLengthErr := writeBuffer.WriteUint32("itemReadLength", 32, (itemReadLength))
-		if _itemReadLengthErr != nil {
-			return errors.Wrap(_itemReadLengthErr, "Error serializing 'itemReadLength' field")
-		}
+	// Simple Field (itemReadLength)
+	itemReadLength := uint32(m.ItemReadLength)
+	_itemReadLengthErr := writeBuffer.WriteUint32("itemReadLength", 32, (itemReadLength))
+	if _itemReadLengthErr != nil {
+		return errors.Wrap(_itemReadLengthErr, "Error serializing 'itemReadLength' field")
+	}
 
-		// Simple Field (itemWriteLength)
-		itemWriteLength := uint32(m.ItemWriteLength)
-		_itemWriteLengthErr := writeBuffer.WriteUint32("itemWriteLength", 32, (itemWriteLength))
-		if _itemWriteLengthErr != nil {
-			return errors.Wrap(_itemWriteLengthErr, "Error serializing 'itemWriteLength' field")
-		}
+	// Simple Field (itemWriteLength)
+	itemWriteLength := uint32(m.ItemWriteLength)
+	_itemWriteLengthErr := writeBuffer.WriteUint32("itemWriteLength", 32, (itemWriteLength))
+	if _itemWriteLengthErr != nil {
+		return errors.Wrap(_itemWriteLengthErr, "Error serializing 'itemWriteLength' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsMultiRequestItemReadWrite"); popErr != nil {
 			return popErr
@@ -208,3 +212,6 @@ func (m *AdsMultiRequestItemReadWrite) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
index eb745be..71bfcbb 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
@@ -19,19 +19,21 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsMultiRequestItemWrite struct {
-	ItemIndexGroup  uint32
+	ItemIndexGroup uint32
 	ItemIndexOffset uint32
 	ItemWriteLength uint32
-	Parent          *AdsMultiRequestItem
+	Parent *AdsMultiRequestItem
 }
 
 // The corresponding interface
@@ -48,15 +50,16 @@ func (m *AdsMultiRequestItemWrite) IndexGroup() uint32 {
 	return 61569
 }
 
+
 func (m *AdsMultiRequestItemWrite) InitializeParent(parent *AdsMultiRequestItem) {
 }
 
 func NewAdsMultiRequestItemWrite(itemIndexGroup uint32, itemIndexOffset uint32, itemWriteLength uint32) *AdsMultiRequestItem {
 	child := &AdsMultiRequestItemWrite{
-		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexGroup: itemIndexGroup,
 		ItemIndexOffset: itemIndexOffset,
 		ItemWriteLength: itemWriteLength,
-		Parent:          NewAdsMultiRequestItem(),
+		Parent: NewAdsMultiRequestItem(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -93,40 +96,41 @@ func (m *AdsMultiRequestItemWrite) LengthInBitsConditional(lastItem bool) uint16
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (itemIndexGroup)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (itemIndexOffset)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (itemWriteLength)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	return lengthInBits
 }
 
+
 func (m *AdsMultiRequestItemWrite) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsMultiRequestItemWriteParse(readBuffer utils.ReadBuffer) (*AdsMultiRequestItem, error) {
+func AdsMultiRequestItemWriteParse(readBuffer utils.ReadBuffer, ) (*AdsMultiRequestItem, error) {
 	if pullErr := readBuffer.PullContext("AdsMultiRequestItemWrite"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (itemIndexGroup)
-	itemIndexGroup, _itemIndexGroupErr := readBuffer.ReadUint32("itemIndexGroup", 32)
+itemIndexGroup, _itemIndexGroupErr := readBuffer.ReadUint32("itemIndexGroup", 32)
 	if _itemIndexGroupErr != nil {
 		return nil, errors.Wrap(_itemIndexGroupErr, "Error parsing 'itemIndexGroup' field")
 	}
 
 	// Simple Field (itemIndexOffset)
-	itemIndexOffset, _itemIndexOffsetErr := readBuffer.ReadUint32("itemIndexOffset", 32)
+itemIndexOffset, _itemIndexOffsetErr := readBuffer.ReadUint32("itemIndexOffset", 32)
 	if _itemIndexOffsetErr != nil {
 		return nil, errors.Wrap(_itemIndexOffsetErr, "Error parsing 'itemIndexOffset' field")
 	}
 
 	// Simple Field (itemWriteLength)
-	itemWriteLength, _itemWriteLengthErr := readBuffer.ReadUint32("itemWriteLength", 32)
+itemWriteLength, _itemWriteLengthErr := readBuffer.ReadUint32("itemWriteLength", 32)
 	if _itemWriteLengthErr != nil {
 		return nil, errors.Wrap(_itemWriteLengthErr, "Error parsing 'itemWriteLength' field")
 	}
@@ -137,10 +141,10 @@ func AdsMultiRequestItemWriteParse(readBuffer utils.ReadBuffer) (*AdsMultiReques
 
 	// Create a partially initialized instance
 	_child := &AdsMultiRequestItemWrite{
-		ItemIndexGroup:  itemIndexGroup,
+		ItemIndexGroup: itemIndexGroup,
 		ItemIndexOffset: itemIndexOffset,
 		ItemWriteLength: itemWriteLength,
-		Parent:          &AdsMultiRequestItem{},
+		Parent: &AdsMultiRequestItem{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -152,26 +156,26 @@ func (m *AdsMultiRequestItemWrite) Serialize(writeBuffer utils.WriteBuffer) erro
 			return pushErr
 		}
 
-		// Simple Field (itemIndexGroup)
-		itemIndexGroup := uint32(m.ItemIndexGroup)
-		_itemIndexGroupErr := writeBuffer.WriteUint32("itemIndexGroup", 32, (itemIndexGroup))
-		if _itemIndexGroupErr != nil {
-			return errors.Wrap(_itemIndexGroupErr, "Error serializing 'itemIndexGroup' field")
-		}
+	// Simple Field (itemIndexGroup)
+	itemIndexGroup := uint32(m.ItemIndexGroup)
+	_itemIndexGroupErr := writeBuffer.WriteUint32("itemIndexGroup", 32, (itemIndexGroup))
+	if _itemIndexGroupErr != nil {
+		return errors.Wrap(_itemIndexGroupErr, "Error serializing 'itemIndexGroup' field")
+	}
 
-		// Simple Field (itemIndexOffset)
-		itemIndexOffset := uint32(m.ItemIndexOffset)
-		_itemIndexOffsetErr := writeBuffer.WriteUint32("itemIndexOffset", 32, (itemIndexOffset))
-		if _itemIndexOffsetErr != nil {
-			return errors.Wrap(_itemIndexOffsetErr, "Error serializing 'itemIndexOffset' field")
-		}
+	// Simple Field (itemIndexOffset)
+	itemIndexOffset := uint32(m.ItemIndexOffset)
+	_itemIndexOffsetErr := writeBuffer.WriteUint32("itemIndexOffset", 32, (itemIndexOffset))
+	if _itemIndexOffsetErr != nil {
+		return errors.Wrap(_itemIndexOffsetErr, "Error serializing 'itemIndexOffset' field")
+	}
 
-		// Simple Field (itemWriteLength)
-		itemWriteLength := uint32(m.ItemWriteLength)
-		_itemWriteLengthErr := writeBuffer.WriteUint32("itemWriteLength", 32, (itemWriteLength))
-		if _itemWriteLengthErr != nil {
-			return errors.Wrap(_itemWriteLengthErr, "Error serializing 'itemWriteLength' field")
-		}
+	// Simple Field (itemWriteLength)
+	itemWriteLength := uint32(m.ItemWriteLength)
+	_itemWriteLengthErr := writeBuffer.WriteUint32("itemWriteLength", 32, (itemWriteLength))
+	if _itemWriteLengthErr != nil {
+		return errors.Wrap(_itemWriteLengthErr, "Error serializing 'itemWriteLength' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsMultiRequestItemWrite"); popErr != nil {
 			return popErr
@@ -189,3 +193,6 @@ func (m *AdsMultiRequestItemWrite) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
index 66d724e..2cb24aa 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
@@ -19,18 +19,20 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsNotificationSample struct {
 	NotificationHandle uint32
-	SampleSize         uint32
-	Data               []int8
+	SampleSize uint32
+	Data []int8
 }
 
 // The corresponding interface
@@ -69,10 +71,10 @@ func (m *AdsNotificationSample) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (notificationHandle)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (sampleSize)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Array field
 	if len(m.Data) > 0 {
@@ -82,6 +84,7 @@ func (m *AdsNotificationSample) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsNotificationSample) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -92,13 +95,13 @@ func AdsNotificationSampleParse(readBuffer utils.ReadBuffer) (*AdsNotificationSa
 	}
 
 	// Simple Field (notificationHandle)
-	notificationHandle, _notificationHandleErr := readBuffer.ReadUint32("notificationHandle", 32)
+notificationHandle, _notificationHandleErr := readBuffer.ReadUint32("notificationHandle", 32)
 	if _notificationHandleErr != nil {
 		return nil, errors.Wrap(_notificationHandleErr, "Error parsing 'notificationHandle' field")
 	}
 
 	// Simple Field (sampleSize)
-	sampleSize, _sampleSizeErr := readBuffer.ReadUint32("sampleSize", 32)
+sampleSize, _sampleSizeErr := readBuffer.ReadUint32("sampleSize", 32)
 	if _sampleSizeErr != nil {
 		return nil, errors.Wrap(_sampleSizeErr, "Error parsing 'sampleSize' field")
 	}
@@ -129,7 +132,7 @@ func AdsNotificationSampleParse(readBuffer utils.ReadBuffer) (*AdsNotificationSa
 }
 
 func (m *AdsNotificationSample) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AdsNotificationSample"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AdsNotificationSample"); pushErr != nil {
 		return pushErr
 	}
 
@@ -177,3 +180,6 @@ func (m *AdsNotificationSample) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
index 219d2e8..dccde2c 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
@@ -19,11 +19,13 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadDeviceInfoRequest struct {
@@ -48,6 +50,7 @@ func (m *AdsReadDeviceInfoRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsReadDeviceInfoRequest) InitializeParent(parent *AdsData) {
 }
 
@@ -92,11 +95,12 @@ func (m *AdsReadDeviceInfoRequest) LengthInBitsConditional(lastItem bool) uint16
 	return lengthInBits
 }
 
+
 func (m *AdsReadDeviceInfoRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadDeviceInfoRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadDeviceInfoRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadDeviceInfoRequest"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -135,3 +139,6 @@ func (m *AdsReadDeviceInfoRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
index 0981bb1..e2b5684 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadDeviceInfoResponse struct {
-	Result       ReturnCode
+	Result ReturnCode
 	MajorVersion uint8
 	MinorVersion uint8
-	Version      uint16
-	Device       []int8
-	Parent       *AdsData
+	Version uint16
+	Device []int8
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -54,17 +56,18 @@ func (m *AdsReadDeviceInfoResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsReadDeviceInfoResponse) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsReadDeviceInfoResponse(result ReturnCode, majorVersion uint8, minorVersion uint8, version uint16, device []int8) *AdsData {
 	child := &AdsReadDeviceInfoResponse{
-		Result:       result,
+		Result: result,
 		MajorVersion: majorVersion,
 		MinorVersion: minorVersion,
-		Version:      version,
-		Device:       device,
-		Parent:       NewAdsData(),
+		Version: version,
+		Device: device,
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -104,13 +107,13 @@ func (m *AdsReadDeviceInfoResponse) LengthInBitsConditional(lastItem bool) uint1
 	lengthInBits += 32
 
 	// Simple field (majorVersion)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (minorVersion)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (version)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Array field
 	if len(m.Device) > 0 {
@@ -120,11 +123,12 @@ func (m *AdsReadDeviceInfoResponse) LengthInBitsConditional(lastItem bool) uint1
 	return lengthInBits
 }
 
+
 func (m *AdsReadDeviceInfoResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadDeviceInfoResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadDeviceInfoResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadDeviceInfoResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -133,7 +137,7 @@ func AdsReadDeviceInfoResponseParse(readBuffer utils.ReadBuffer) (*AdsData, erro
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -142,19 +146,19 @@ func AdsReadDeviceInfoResponseParse(readBuffer utils.ReadBuffer) (*AdsData, erro
 	}
 
 	// Simple Field (majorVersion)
-	majorVersion, _majorVersionErr := readBuffer.ReadUint8("majorVersion", 8)
+majorVersion, _majorVersionErr := readBuffer.ReadUint8("majorVersion", 8)
 	if _majorVersionErr != nil {
 		return nil, errors.Wrap(_majorVersionErr, "Error parsing 'majorVersion' field")
 	}
 
 	// Simple Field (minorVersion)
-	minorVersion, _minorVersionErr := readBuffer.ReadUint8("minorVersion", 8)
+minorVersion, _minorVersionErr := readBuffer.ReadUint8("minorVersion", 8)
 	if _minorVersionErr != nil {
 		return nil, errors.Wrap(_minorVersionErr, "Error parsing 'minorVersion' field")
 	}
 
 	// Simple Field (version)
-	version, _versionErr := readBuffer.ReadUint16("version", 16)
+version, _versionErr := readBuffer.ReadUint16("version", 16)
 	if _versionErr != nil {
 		return nil, errors.Wrap(_versionErr, "Error parsing 'version' field")
 	}
@@ -182,12 +186,12 @@ func AdsReadDeviceInfoResponseParse(readBuffer utils.ReadBuffer) (*AdsData, erro
 
 	// Create a partially initialized instance
 	_child := &AdsReadDeviceInfoResponse{
-		Result:       result,
+		Result: result,
 		MajorVersion: majorVersion,
 		MinorVersion: minorVersion,
-		Version:      version,
-		Device:       device,
-		Parent:       &AdsData{},
+		Version: version,
+		Device: device,
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -199,54 +203,54 @@ func (m *AdsReadDeviceInfoResponse) Serialize(writeBuffer utils.WriteBuffer) err
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
-		// Simple Field (majorVersion)
-		majorVersion := uint8(m.MajorVersion)
-		_majorVersionErr := writeBuffer.WriteUint8("majorVersion", 8, (majorVersion))
-		if _majorVersionErr != nil {
-			return errors.Wrap(_majorVersionErr, "Error serializing 'majorVersion' field")
-		}
+	// Simple Field (majorVersion)
+	majorVersion := uint8(m.MajorVersion)
+	_majorVersionErr := writeBuffer.WriteUint8("majorVersion", 8, (majorVersion))
+	if _majorVersionErr != nil {
+		return errors.Wrap(_majorVersionErr, "Error serializing 'majorVersion' field")
+	}
 
-		// Simple Field (minorVersion)
-		minorVersion := uint8(m.MinorVersion)
-		_minorVersionErr := writeBuffer.WriteUint8("minorVersion", 8, (minorVersion))
-		if _minorVersionErr != nil {
-			return errors.Wrap(_minorVersionErr, "Error serializing 'minorVersion' field")
-		}
+	// Simple Field (minorVersion)
+	minorVersion := uint8(m.MinorVersion)
+	_minorVersionErr := writeBuffer.WriteUint8("minorVersion", 8, (minorVersion))
+	if _minorVersionErr != nil {
+		return errors.Wrap(_minorVersionErr, "Error serializing 'minorVersion' field")
+	}
 
-		// Simple Field (version)
-		version := uint16(m.Version)
-		_versionErr := writeBuffer.WriteUint16("version", 16, (version))
-		if _versionErr != nil {
-			return errors.Wrap(_versionErr, "Error serializing 'version' field")
-		}
+	// Simple Field (version)
+	version := uint16(m.Version)
+	_versionErr := writeBuffer.WriteUint16("version", 16, (version))
+	if _versionErr != nil {
+		return errors.Wrap(_versionErr, "Error serializing 'version' field")
+	}
 
-		// Array Field (device)
-		if m.Device != nil {
-			if pushErr := writeBuffer.PushContext("device", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Device {
-				_elementErr := writeBuffer.WriteInt8("", 8, _element)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'device' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("device", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (device)
+	if m.Device != nil {
+		if pushErr := writeBuffer.PushContext("device", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Device {
+			_elementErr := writeBuffer.WriteInt8("", 8, _element)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'device' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("device", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsReadDeviceInfoResponse"); popErr != nil {
 			return popErr
@@ -264,3 +268,6 @@ func (m *AdsReadDeviceInfoResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
index cade5a9..1adf5768 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
@@ -19,19 +19,21 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadRequest struct {
-	IndexGroup  uint32
+	IndexGroup uint32
 	IndexOffset uint32
-	Length      uint32
-	Parent      *AdsData
+	Length uint32
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -52,15 +54,16 @@ func (m *AdsReadRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsReadRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsReadRequest(indexGroup uint32, indexOffset uint32, length uint32) *AdsData {
 	child := &AdsReadRequest{
-		IndexGroup:  indexGroup,
+		IndexGroup: indexGroup,
 		IndexOffset: indexOffset,
-		Length:      length,
-		Parent:      NewAdsData(),
+		Length: length,
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -97,40 +100,41 @@ func (m *AdsReadRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (indexGroup)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (indexOffset)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (length)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	return lengthInBits
 }
 
+
 func (m *AdsReadRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadRequest"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (indexGroup)
-	indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
+indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
 	if _indexGroupErr != nil {
 		return nil, errors.Wrap(_indexGroupErr, "Error parsing 'indexGroup' field")
 	}
 
 	// Simple Field (indexOffset)
-	indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
+indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
 	if _indexOffsetErr != nil {
 		return nil, errors.Wrap(_indexOffsetErr, "Error parsing 'indexOffset' field")
 	}
 
 	// Simple Field (length)
-	length, _lengthErr := readBuffer.ReadUint32("length", 32)
+length, _lengthErr := readBuffer.ReadUint32("length", 32)
 	if _lengthErr != nil {
 		return nil, errors.Wrap(_lengthErr, "Error parsing 'length' field")
 	}
@@ -141,10 +145,10 @@ func AdsReadRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 
 	// Create a partially initialized instance
 	_child := &AdsReadRequest{
-		IndexGroup:  indexGroup,
+		IndexGroup: indexGroup,
 		IndexOffset: indexOffset,
-		Length:      length,
-		Parent:      &AdsData{},
+		Length: length,
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -156,26 +160,26 @@ func (m *AdsReadRequest) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-		// Simple Field (indexGroup)
-		indexGroup := uint32(m.IndexGroup)
-		_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
-		if _indexGroupErr != nil {
-			return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
-		}
+	// Simple Field (indexGroup)
+	indexGroup := uint32(m.IndexGroup)
+	_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
+	if _indexGroupErr != nil {
+		return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
+	}
 
-		// Simple Field (indexOffset)
-		indexOffset := uint32(m.IndexOffset)
-		_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
-		if _indexOffsetErr != nil {
-			return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
-		}
+	// Simple Field (indexOffset)
+	indexOffset := uint32(m.IndexOffset)
+	_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
+	if _indexOffsetErr != nil {
+		return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
+	}
 
-		// Simple Field (length)
-		length := uint32(m.Length)
-		_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
-		if _lengthErr != nil {
-			return errors.Wrap(_lengthErr, "Error serializing 'length' field")
-		}
+	// Simple Field (length)
+	length := uint32(m.Length)
+	_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
+	if _lengthErr != nil {
+		return errors.Wrap(_lengthErr, "Error serializing 'length' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsReadRequest"); popErr != nil {
 			return popErr
@@ -193,3 +197,6 @@ func (m *AdsReadRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
index 9eb97e3..8626463 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
@@ -19,17 +19,19 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadResponse struct {
 	Result ReturnCode
-	Data   []int8
+	Data []int8
 	Parent *AdsData
 }
 
@@ -51,13 +53,14 @@ func (m *AdsReadResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsReadResponse) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsReadResponse(result ReturnCode, data []int8) *AdsData {
 	child := &AdsReadResponse{
 		Result: result,
-		Data:   data,
+		Data: data,
 		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
@@ -108,11 +111,12 @@ func (m *AdsReadResponse) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsReadResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -121,7 +125,7 @@ func AdsReadResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -160,7 +164,7 @@ func AdsReadResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 	// Create a partially initialized instance
 	_child := &AdsReadResponse{
 		Result: result,
-		Data:   data,
+		Data: data,
 		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
@@ -173,40 +177,40 @@ func (m *AdsReadResponse) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
-		// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-		length := uint32(uint32(len(m.Data)))
-		_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
-		if _lengthErr != nil {
-			return errors.Wrap(_lengthErr, "Error serializing 'length' field")
-		}
+	// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+	length := uint32(uint32(len(m.Data)))
+	_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
+	if _lengthErr != nil {
+		return errors.Wrap(_lengthErr, "Error serializing 'length' field")
+	}
 
-		// Array Field (data)
-		if m.Data != nil {
-			if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Data {
-				_elementErr := writeBuffer.WriteInt8("", 8, _element)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'data' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (data)
+	if m.Data != nil {
+		if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Data {
+			_elementErr := writeBuffer.WriteInt8("", 8, _element)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'data' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsReadResponse"); popErr != nil {
 			return popErr
@@ -224,3 +228,6 @@ func (m *AdsReadResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
index 44adbc8..3d05929 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
@@ -19,11 +19,13 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadStateRequest struct {
@@ -48,6 +50,7 @@ func (m *AdsReadStateRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsReadStateRequest) InitializeParent(parent *AdsData) {
 }
 
@@ -92,11 +95,12 @@ func (m *AdsReadStateRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsReadStateRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadStateRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadStateRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadStateRequest"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -135,3 +139,6 @@ func (m *AdsReadStateRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
index 70191d1..a02300d 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
@@ -19,19 +19,21 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadStateResponse struct {
-	Result      ReturnCode
-	AdsState    uint16
+	Result ReturnCode
+	AdsState uint16
 	DeviceState uint16
-	Parent      *AdsData
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -52,15 +54,16 @@ func (m *AdsReadStateResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsReadStateResponse) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsReadStateResponse(result ReturnCode, adsState uint16, deviceState uint16) *AdsData {
 	child := &AdsReadStateResponse{
-		Result:      result,
-		AdsState:    adsState,
+		Result: result,
+		AdsState: adsState,
 		DeviceState: deviceState,
-		Parent:      NewAdsData(),
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -100,19 +103,20 @@ func (m *AdsReadStateResponse) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits += 32
 
 	// Simple field (adsState)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Simple field (deviceState)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	return lengthInBits
 }
 
+
 func (m *AdsReadStateResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadStateResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadStateResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadStateResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -121,7 +125,7 @@ func AdsReadStateResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -130,13 +134,13 @@ func AdsReadStateResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 	}
 
 	// Simple Field (adsState)
-	adsState, _adsStateErr := readBuffer.ReadUint16("adsState", 16)
+adsState, _adsStateErr := readBuffer.ReadUint16("adsState", 16)
 	if _adsStateErr != nil {
 		return nil, errors.Wrap(_adsStateErr, "Error parsing 'adsState' field")
 	}
 
 	// Simple Field (deviceState)
-	deviceState, _deviceStateErr := readBuffer.ReadUint16("deviceState", 16)
+deviceState, _deviceStateErr := readBuffer.ReadUint16("deviceState", 16)
 	if _deviceStateErr != nil {
 		return nil, errors.Wrap(_deviceStateErr, "Error parsing 'deviceState' field")
 	}
@@ -147,10 +151,10 @@ func AdsReadStateResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 
 	// Create a partially initialized instance
 	_child := &AdsReadStateResponse{
-		Result:      result,
-		AdsState:    adsState,
+		Result: result,
+		AdsState: adsState,
 		DeviceState: deviceState,
-		Parent:      &AdsData{},
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -162,31 +166,31 @@ func (m *AdsReadStateResponse) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
-		// Simple Field (adsState)
-		adsState := uint16(m.AdsState)
-		_adsStateErr := writeBuffer.WriteUint16("adsState", 16, (adsState))
-		if _adsStateErr != nil {
-			return errors.Wrap(_adsStateErr, "Error serializing 'adsState' field")
-		}
+	// Simple Field (adsState)
+	adsState := uint16(m.AdsState)
+	_adsStateErr := writeBuffer.WriteUint16("adsState", 16, (adsState))
+	if _adsStateErr != nil {
+		return errors.Wrap(_adsStateErr, "Error serializing 'adsState' field")
+	}
 
-		// Simple Field (deviceState)
-		deviceState := uint16(m.DeviceState)
-		_deviceStateErr := writeBuffer.WriteUint16("deviceState", 16, (deviceState))
-		if _deviceStateErr != nil {
-			return errors.Wrap(_deviceStateErr, "Error serializing 'deviceState' field")
-		}
+	// Simple Field (deviceState)
+	deviceState := uint16(m.DeviceState)
+	_deviceStateErr := writeBuffer.WriteUint16("deviceState", 16, (deviceState))
+	if _deviceStateErr != nil {
+		return errors.Wrap(_deviceStateErr, "Error serializing 'deviceState' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsReadStateResponse"); popErr != nil {
 			return popErr
@@ -204,3 +208,6 @@ func (m *AdsReadStateResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
index df5b4ea..4c2b688 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadWriteRequest struct {
-	IndexGroup  uint32
+	IndexGroup uint32
 	IndexOffset uint32
-	ReadLength  uint32
-	Items       []*AdsMultiRequestItem
-	Data        []int8
-	Parent      *AdsData
+	ReadLength uint32
+	Items []*AdsMultiRequestItem
+	Data []int8
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -54,17 +56,18 @@ func (m *AdsReadWriteRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsReadWriteRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsReadWriteRequest(indexGroup uint32, indexOffset uint32, readLength uint32, items []*AdsMultiRequestItem, data []int8) *AdsData {
 	child := &AdsReadWriteRequest{
-		IndexGroup:  indexGroup,
+		IndexGroup: indexGroup,
 		IndexOffset: indexOffset,
-		ReadLength:  readLength,
-		Items:       items,
-		Data:        data,
-		Parent:      NewAdsData(),
+		ReadLength: readLength,
+		Items: items,
+		Data: data,
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -101,13 +104,13 @@ func (m *AdsReadWriteRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (indexGroup)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (indexOffset)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (readLength)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Implicit Field (writeLength)
 	lengthInBits += 32
@@ -115,7 +118,7 @@ func (m *AdsReadWriteRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	// Array field
 	if len(m.Items) > 0 {
 		for i, element := range m.Items {
-			last := i == len(m.Items)-1
+			last := i == len(m.Items) -1
 			lengthInBits += element.LengthInBitsConditional(last)
 		}
 	}
@@ -128,29 +131,30 @@ func (m *AdsReadWriteRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsReadWriteRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadWriteRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadWriteRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadWriteRequest"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (indexGroup)
-	indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
+indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
 	if _indexGroupErr != nil {
 		return nil, errors.Wrap(_indexGroupErr, "Error parsing 'indexGroup' field")
 	}
 
 	// Simple Field (indexOffset)
-	indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
+indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
 	if _indexOffsetErr != nil {
 		return nil, errors.Wrap(_indexOffsetErr, "Error parsing 'indexOffset' field")
 	}
 
 	// Simple Field (readLength)
-	readLength, _readLengthErr := readBuffer.ReadUint32("readLength", 32)
+readLength, _readLengthErr := readBuffer.ReadUint32("readLength", 32)
 	if _readLengthErr != nil {
 		return nil, errors.Wrap(_readLengthErr, "Error parsing 'readLength' field")
 	}
@@ -167,8 +171,8 @@ func AdsReadWriteRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 		return nil, pullErr
 	}
 	// Count array
-	items := make([]*AdsMultiRequestItem, utils.InlineIf(bool(bool(bool(bool(bool((indexGroup) == (61568)))) || bool(bool(bool((indexGroup) == (61569))))) || bool(bool(bool((indexGroup) == (61570))))), func() interface{} { return uint16(indexOffset) }, func() interface{} { return uint16(uint16(0)) }).(uint16))
-	for curItem := uint16(0); curItem < uint16(utils.InlineIf(bool(bool(bool(bool(bool((indexGroup) == (61568)))) || bool(bool(bool((indexGroup) == (61569))))) || bool(bool(bool((indexGroup) == (61570))))), func() interface{} { return uint16(indexOffset) }, func() interface{} { return uint16(uint16(0)) }).(uint16)); curItem++ {
+	items := make([]*AdsMultiRequestItem, utils.InlineIf(bool(bool(bool(bool(bool((indexGroup) == ((61568))))) || bool(bool(bool((indexGroup) == ((61569)))))) || bool(bool(bool((indexGroup) == ((61570)))))), func() interface{} {return uint16(indexOffset)}, func() interface{} {return uint16(uint16(0))}).(uint16))
+	for curItem := uint16(0); curItem < uint16(utils.InlineIf(bool(bool(bool(bool(bool((indexGroup) == ((61568))))) || bool(bool(bool((indexGroup) == ((61569)))))) || bool(bool(bool((indexGroup) == ((61570)))))), func() interface{} {return uint16(indexOffset)}, func() interface{} {return uint16(uint16(0))}).(uint16)); curItem++ {
 		_item, _err := AdsMultiRequestItemParse(readBuffer, indexGroup)
 		if _err != nil {
 			return nil, errors.Wrap(_err, "Error parsing 'items' field")
@@ -184,8 +188,8 @@ func AdsReadWriteRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 		return nil, pullErr
 	}
 	// Count array
-	data := make([]int8, uint16(writeLength)-uint16(uint16(uint16(uint16(len(items)))*uint16(uint16(12)))))
-	for curItem := uint16(0); curItem < uint16(uint16(writeLength)-uint16(uint16(uint16(uint16(len(items)))*uint16(uint16(12))))); curItem++ {
+	data := make([]int8, uint16(writeLength) - uint16(uint16(uint16(uint16(len(items))) * uint16(uint16(12)))))
+	for curItem := uint16(0); curItem < uint16(uint16(writeLength) - uint16(uint16(uint16(uint16(len(items))) * uint16(uint16(12))))); curItem++ {
 		_item, _err := readBuffer.ReadInt8("", 8)
 		if _err != nil {
 			return nil, errors.Wrap(_err, "Error parsing 'data' field")
@@ -202,12 +206,12 @@ func AdsReadWriteRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 
 	// Create a partially initialized instance
 	_child := &AdsReadWriteRequest{
-		IndexGroup:  indexGroup,
+		IndexGroup: indexGroup,
 		IndexOffset: indexOffset,
-		ReadLength:  readLength,
-		Items:       items,
-		Data:        data,
-		Parent:      &AdsData{},
+		ReadLength: readLength,
+		Items: items,
+		Data: data,
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -219,65 +223,65 @@ func (m *AdsReadWriteRequest) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-		// Simple Field (indexGroup)
-		indexGroup := uint32(m.IndexGroup)
-		_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
-		if _indexGroupErr != nil {
-			return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
-		}
+	// Simple Field (indexGroup)
+	indexGroup := uint32(m.IndexGroup)
+	_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
+	if _indexGroupErr != nil {
+		return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
+	}
 
-		// Simple Field (indexOffset)
-		indexOffset := uint32(m.IndexOffset)
-		_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
-		if _indexOffsetErr != nil {
-			return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
-		}
+	// Simple Field (indexOffset)
+	indexOffset := uint32(m.IndexOffset)
+	_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
+	if _indexOffsetErr != nil {
+		return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
+	}
 
-		// Simple Field (readLength)
-		readLength := uint32(m.ReadLength)
-		_readLengthErr := writeBuffer.WriteUint32("readLength", 32, (readLength))
-		if _readLengthErr != nil {
-			return errors.Wrap(_readLengthErr, "Error serializing 'readLength' field")
-		}
+	// Simple Field (readLength)
+	readLength := uint32(m.ReadLength)
+	_readLengthErr := writeBuffer.WriteUint32("readLength", 32, (readLength))
+	if _readLengthErr != nil {
+		return errors.Wrap(_readLengthErr, "Error serializing 'readLength' field")
+	}
 
-		// Implicit Field (writeLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-		writeLength := uint32(uint32(uint32(uint32(uint32(len(m.Items)))*uint32(uint32(utils.InlineIf(bool(bool((m.IndexGroup) == (61570))), func() interface{} { return uint32(uint32(16)) }, func() interface{} { return uint32(uint32(12)) }).(uint32))))) + uint32(uint32(len(m.Data))))
-		_writeLengthErr := writeBuffer.WriteUint32("writeLength", 32, (writeLength))
-		if _writeLengthErr != nil {
-			return errors.Wrap(_writeLengthErr, "Error serializing 'writeLength' field")
-		}
+	// Implicit Field (writeLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+	writeLength := uint32(uint32(uint32(uint32(uint32(len(m.Items))) * uint32(uint32(utils.InlineIf(bool(bool((m.IndexGroup) == ((61570)))), func() interface{} {return uint32(uint32(16))}, func() interface{} {return uint32(uint32(12))}).(uint32))))) + uint32(uint32(len(m.Data))))
+	_writeLengthErr := writeBuffer.WriteUint32("writeLength", 32, (writeLength))
+	if _writeLengthErr != nil {
+		return errors.Wrap(_writeLengthErr, "Error serializing 'writeLength' field")
+	}
 
-		// Array Field (items)
-		if m.Items != nil {
-			if pushErr := writeBuffer.PushContext("items", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Items {
-				_elementErr := _element.Serialize(writeBuffer)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'items' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("items", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (items)
+	if m.Items != nil {
+		if pushErr := writeBuffer.PushContext("items", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Items {
+			_elementErr := _element.Serialize(writeBuffer)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'items' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("items", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
-		// Array Field (data)
-		if m.Data != nil {
-			if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Data {
-				_elementErr := writeBuffer.WriteInt8("", 8, _element)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'data' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (data)
+	if m.Data != nil {
+		if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Data {
+			_elementErr := writeBuffer.WriteInt8("", 8, _element)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'data' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsReadWriteRequest"); popErr != nil {
 			return popErr
@@ -295,3 +299,6 @@ func (m *AdsReadWriteRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
index 2d620bb..b3f1a94 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
@@ -19,17 +19,19 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsReadWriteResponse struct {
 	Result ReturnCode
-	Data   []int8
+	Data []int8
 	Parent *AdsData
 }
 
@@ -51,13 +53,14 @@ func (m *AdsReadWriteResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsReadWriteResponse) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsReadWriteResponse(result ReturnCode, data []int8) *AdsData {
 	child := &AdsReadWriteResponse{
 		Result: result,
-		Data:   data,
+		Data: data,
 		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
@@ -108,11 +111,12 @@ func (m *AdsReadWriteResponse) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsReadWriteResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsReadWriteResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsReadWriteResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsReadWriteResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -121,7 +125,7 @@ func AdsReadWriteResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -160,7 +164,7 @@ func AdsReadWriteResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 	// Create a partially initialized instance
 	_child := &AdsReadWriteResponse{
 		Result: result,
-		Data:   data,
+		Data: data,
 		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
@@ -173,40 +177,40 @@ func (m *AdsReadWriteResponse) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
-		// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-		length := uint32(uint32(len(m.Data)))
-		_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
-		if _lengthErr != nil {
-			return errors.Wrap(_lengthErr, "Error serializing 'length' field")
-		}
+	// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+	length := uint32(uint32(len(m.Data)))
+	_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
+	if _lengthErr != nil {
+		return errors.Wrap(_lengthErr, "Error serializing 'length' field")
+	}
 
-		// Array Field (data)
-		if m.Data != nil {
-			if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Data {
-				_elementErr := writeBuffer.WriteInt8("", 8, _element)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'data' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (data)
+	if m.Data != nil {
+		if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Data {
+			_elementErr := writeBuffer.WriteInt8("", 8, _element)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'data' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsReadWriteResponse"); popErr != nil {
 			return popErr
@@ -224,3 +228,6 @@ func (m *AdsReadWriteResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go
index b81f997..ac4ce82 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go
@@ -19,17 +19,19 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsStampHeader struct {
-	Timestamp              uint64
-	Samples                uint32
+	Timestamp uint64
+	Samples uint32
 	AdsNotificationSamples []*AdsNotificationSample
 }
 
@@ -69,15 +71,15 @@ func (m *AdsStampHeader) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (timestamp)
-	lengthInBits += 64
+	lengthInBits += 64;
 
 	// Simple field (samples)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Array field
 	if len(m.AdsNotificationSamples) > 0 {
 		for i, element := range m.AdsNotificationSamples {
-			last := i == len(m.AdsNotificationSamples)-1
+			last := i == len(m.AdsNotificationSamples) -1
 			lengthInBits += element.LengthInBitsConditional(last)
 		}
 	}
@@ -85,6 +87,7 @@ func (m *AdsStampHeader) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsStampHeader) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -95,13 +98,13 @@ func AdsStampHeaderParse(readBuffer utils.ReadBuffer) (*AdsStampHeader, error) {
 	}
 
 	// Simple Field (timestamp)
-	timestamp, _timestampErr := readBuffer.ReadUint64("timestamp", 64)
+timestamp, _timestampErr := readBuffer.ReadUint64("timestamp", 64)
 	if _timestampErr != nil {
 		return nil, errors.Wrap(_timestampErr, "Error parsing 'timestamp' field")
 	}
 
 	// Simple Field (samples)
-	samples, _samplesErr := readBuffer.ReadUint32("samples", 32)
+samples, _samplesErr := readBuffer.ReadUint32("samples", 32)
 	if _samplesErr != nil {
 		return nil, errors.Wrap(_samplesErr, "Error parsing 'samples' field")
 	}
@@ -132,7 +135,7 @@ func AdsStampHeaderParse(readBuffer utils.ReadBuffer) (*AdsStampHeader, error) {
 }
 
 func (m *AdsStampHeader) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AdsStampHeader"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AdsStampHeader"); pushErr != nil {
 		return pushErr
 	}
 
@@ -180,3 +183,6 @@ func (m *AdsStampHeader) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
index a871f38..fa2a805 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
@@ -19,19 +19,21 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsWriteControlRequest struct {
-	AdsState    uint16
+	AdsState uint16
 	DeviceState uint16
-	Data        []int8
-	Parent      *AdsData
+	Data []int8
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -52,15 +54,16 @@ func (m *AdsWriteControlRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsWriteControlRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsWriteControlRequest(adsState uint16, deviceState uint16, data []int8) *AdsData {
 	child := &AdsWriteControlRequest{
-		AdsState:    adsState,
+		AdsState: adsState,
 		DeviceState: deviceState,
-		Data:        data,
-		Parent:      NewAdsData(),
+		Data: data,
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -97,10 +100,10 @@ func (m *AdsWriteControlRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (adsState)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Simple field (deviceState)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Implicit Field (length)
 	lengthInBits += 32
@@ -113,23 +116,24 @@ func (m *AdsWriteControlRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsWriteControlRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsWriteControlRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsWriteControlRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsWriteControlRequest"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (adsState)
-	adsState, _adsStateErr := readBuffer.ReadUint16("adsState", 16)
+adsState, _adsStateErr := readBuffer.ReadUint16("adsState", 16)
 	if _adsStateErr != nil {
 		return nil, errors.Wrap(_adsStateErr, "Error parsing 'adsState' field")
 	}
 
 	// Simple Field (deviceState)
-	deviceState, _deviceStateErr := readBuffer.ReadUint16("deviceState", 16)
+deviceState, _deviceStateErr := readBuffer.ReadUint16("deviceState", 16)
 	if _deviceStateErr != nil {
 		return nil, errors.Wrap(_deviceStateErr, "Error parsing 'deviceState' field")
 	}
@@ -164,10 +168,10 @@ func AdsWriteControlRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error)
 
 	// Create a partially initialized instance
 	_child := &AdsWriteControlRequest{
-		AdsState:    adsState,
+		AdsState: adsState,
 		DeviceState: deviceState,
-		Data:        data,
-		Parent:      &AdsData{},
+		Data: data,
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -179,42 +183,42 @@ func (m *AdsWriteControlRequest) Serialize(writeBuffer utils.WriteBuffer) error
 			return pushErr
 		}
 
-		// Simple Field (adsState)
-		adsState := uint16(m.AdsState)
-		_adsStateErr := writeBuffer.WriteUint16("adsState", 16, (adsState))
-		if _adsStateErr != nil {
-			return errors.Wrap(_adsStateErr, "Error serializing 'adsState' field")
-		}
+	// Simple Field (adsState)
+	adsState := uint16(m.AdsState)
+	_adsStateErr := writeBuffer.WriteUint16("adsState", 16, (adsState))
+	if _adsStateErr != nil {
+		return errors.Wrap(_adsStateErr, "Error serializing 'adsState' field")
+	}
 
-		// Simple Field (deviceState)
-		deviceState := uint16(m.DeviceState)
-		_deviceStateErr := writeBuffer.WriteUint16("deviceState", 16, (deviceState))
-		if _deviceStateErr != nil {
-			return errors.Wrap(_deviceStateErr, "Error serializing 'deviceState' field")
-		}
+	// Simple Field (deviceState)
+	deviceState := uint16(m.DeviceState)
+	_deviceStateErr := writeBuffer.WriteUint16("deviceState", 16, (deviceState))
+	if _deviceStateErr != nil {
+		return errors.Wrap(_deviceStateErr, "Error serializing 'deviceState' field")
+	}
 
-		// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-		length := uint32(uint32(len(m.Data)))
-		_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
-		if _lengthErr != nil {
-			return errors.Wrap(_lengthErr, "Error serializing 'length' field")
-		}
+	// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+	length := uint32(uint32(len(m.Data)))
+	_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
+	if _lengthErr != nil {
+		return errors.Wrap(_lengthErr, "Error serializing 'length' field")
+	}
 
-		// Array Field (data)
-		if m.Data != nil {
-			if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Data {
-				_elementErr := writeBuffer.WriteInt8("", 8, _element)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'data' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (data)
+	if m.Data != nil {
+		if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Data {
+			_elementErr := writeBuffer.WriteInt8("", 8, _element)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'data' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsWriteControlRequest"); popErr != nil {
 			return popErr
@@ -232,3 +236,6 @@ func (m *AdsWriteControlRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
index f5b4972..7ea5c46 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
@@ -19,12 +19,14 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsWriteControlResponse struct {
@@ -50,6 +52,7 @@ func (m *AdsWriteControlResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsWriteControlResponse) InitializeParent(parent *AdsData) {
 }
 
@@ -98,11 +101,12 @@ func (m *AdsWriteControlResponse) LengthInBitsConditional(lastItem bool) uint16
 	return lengthInBits
 }
 
+
 func (m *AdsWriteControlResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsWriteControlResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsWriteControlResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsWriteControlResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -111,7 +115,7 @@ func AdsWriteControlResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error)
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -138,17 +142,17 @@ func (m *AdsWriteControlResponse) Serialize(writeBuffer utils.WriteBuffer) error
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsWriteControlResponse"); popErr != nil {
 			return popErr
@@ -166,3 +170,6 @@ func (m *AdsWriteControlResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
index 3273b5b..0269c2c 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
@@ -19,19 +19,21 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsWriteRequest struct {
-	IndexGroup  uint32
+	IndexGroup uint32
 	IndexOffset uint32
-	Data        []int8
-	Parent      *AdsData
+	Data []int8
+	Parent *AdsData
 }
 
 // The corresponding interface
@@ -52,15 +54,16 @@ func (m *AdsWriteRequest) Response() bool {
 	return false
 }
 
+
 func (m *AdsWriteRequest) InitializeParent(parent *AdsData) {
 }
 
 func NewAdsWriteRequest(indexGroup uint32, indexOffset uint32, data []int8) *AdsData {
 	child := &AdsWriteRequest{
-		IndexGroup:  indexGroup,
+		IndexGroup: indexGroup,
 		IndexOffset: indexOffset,
-		Data:        data,
-		Parent:      NewAdsData(),
+		Data: data,
+		Parent: NewAdsData(),
 	}
 	child.Parent.Child = child
 	return child.Parent
@@ -97,10 +100,10 @@ func (m *AdsWriteRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.Parent.ParentLengthInBits())
 
 	// Simple field (indexGroup)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (indexOffset)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Implicit Field (length)
 	lengthInBits += 32
@@ -113,23 +116,24 @@ func (m *AdsWriteRequest) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsWriteRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsWriteRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsWriteRequestParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsWriteRequest"); pullErr != nil {
 		return nil, pullErr
 	}
 
 	// Simple Field (indexGroup)
-	indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
+indexGroup, _indexGroupErr := readBuffer.ReadUint32("indexGroup", 32)
 	if _indexGroupErr != nil {
 		return nil, errors.Wrap(_indexGroupErr, "Error parsing 'indexGroup' field")
 	}
 
 	// Simple Field (indexOffset)
-	indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
+indexOffset, _indexOffsetErr := readBuffer.ReadUint32("indexOffset", 32)
 	if _indexOffsetErr != nil {
 		return nil, errors.Wrap(_indexOffsetErr, "Error parsing 'indexOffset' field")
 	}
@@ -164,10 +168,10 @@ func AdsWriteRequestParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 
 	// Create a partially initialized instance
 	_child := &AdsWriteRequest{
-		IndexGroup:  indexGroup,
+		IndexGroup: indexGroup,
 		IndexOffset: indexOffset,
-		Data:        data,
-		Parent:      &AdsData{},
+		Data: data,
+		Parent: &AdsData{},
 	}
 	_child.Parent.Child = _child
 	return _child.Parent, nil
@@ -179,42 +183,42 @@ func (m *AdsWriteRequest) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-		// Simple Field (indexGroup)
-		indexGroup := uint32(m.IndexGroup)
-		_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
-		if _indexGroupErr != nil {
-			return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
-		}
+	// Simple Field (indexGroup)
+	indexGroup := uint32(m.IndexGroup)
+	_indexGroupErr := writeBuffer.WriteUint32("indexGroup", 32, (indexGroup))
+	if _indexGroupErr != nil {
+		return errors.Wrap(_indexGroupErr, "Error serializing 'indexGroup' field")
+	}
 
-		// Simple Field (indexOffset)
-		indexOffset := uint32(m.IndexOffset)
-		_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
-		if _indexOffsetErr != nil {
-			return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
-		}
+	// Simple Field (indexOffset)
+	indexOffset := uint32(m.IndexOffset)
+	_indexOffsetErr := writeBuffer.WriteUint32("indexOffset", 32, (indexOffset))
+	if _indexOffsetErr != nil {
+		return errors.Wrap(_indexOffsetErr, "Error serializing 'indexOffset' field")
+	}
 
-		// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
-		length := uint32(uint32(len(m.Data)))
-		_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
-		if _lengthErr != nil {
-			return errors.Wrap(_lengthErr, "Error serializing 'length' field")
-		}
+	// Implicit Field (length) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
+	length := uint32(uint32(len(m.Data)))
+	_lengthErr := writeBuffer.WriteUint32("length", 32, (length))
+	if _lengthErr != nil {
+		return errors.Wrap(_lengthErr, "Error serializing 'length' field")
+	}
 
-		// Array Field (data)
-		if m.Data != nil {
-			if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Data {
-				_elementErr := writeBuffer.WriteInt8("", 8, _element)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'data' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
+	// Array Field (data)
+	if m.Data != nil {
+		if pushErr := writeBuffer.PushContext("data", utils.WithRenderAsList(true)); pushErr != nil {
+			return pushErr
+		}
+		for _, _element := range m.Data {
+			_elementErr := writeBuffer.WriteInt8("", 8, _element)
+			if _elementErr != nil {
+				return errors.Wrap(_elementErr, "Error serializing 'data' field")
 			}
 		}
+		if popErr := writeBuffer.PopContext("data", utils.WithRenderAsList(true)); popErr != nil {
+			return popErr
+		}
+	}
 
 		if popErr := writeBuffer.PopContext("AdsWriteRequest"); popErr != nil {
 			return popErr
@@ -232,3 +236,6 @@ func (m *AdsWriteRequest) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
index d6b7894..8d84e7d 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
@@ -19,12 +19,14 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AdsWriteResponse struct {
@@ -50,6 +52,7 @@ func (m *AdsWriteResponse) Response() bool {
 	return true
 }
 
+
 func (m *AdsWriteResponse) InitializeParent(parent *AdsData) {
 }
 
@@ -98,11 +101,12 @@ func (m *AdsWriteResponse) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AdsWriteResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func AdsWriteResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
+func AdsWriteResponseParse(readBuffer utils.ReadBuffer, ) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("AdsWriteResponse"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -111,7 +115,7 @@ func AdsWriteResponseParse(readBuffer utils.ReadBuffer) (*AdsData, error) {
 	if pullErr := readBuffer.PullContext("result"); pullErr != nil {
 		return nil, pullErr
 	}
-	result, _resultErr := ReturnCodeParse(readBuffer)
+result, _resultErr := ReturnCodeParse(readBuffer)
 	if _resultErr != nil {
 		return nil, errors.Wrap(_resultErr, "Error parsing 'result' field")
 	}
@@ -138,17 +142,17 @@ func (m *AdsWriteResponse) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-		// Simple Field (result)
-		if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
-			return pushErr
-		}
-		_resultErr := m.Result.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("result"); popErr != nil {
-			return popErr
-		}
-		if _resultErr != nil {
-			return errors.Wrap(_resultErr, "Error serializing 'result' field")
-		}
+	// Simple Field (result)
+	if pushErr := writeBuffer.PushContext("result"); pushErr != nil {
+		return pushErr
+	}
+	_resultErr := m.Result.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("result"); popErr != nil {
+		return popErr
+	}
+	if _resultErr != nil {
+		return errors.Wrap(_resultErr, "Error serializing 'result' field")
+	}
 
 		if popErr := writeBuffer.PopContext("AdsWriteResponse"); popErr != nil {
 			return popErr
@@ -166,3 +170,6 @@ func (m *AdsWriteResponse) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go
index 28d0a0b..dfd0cfc 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go
@@ -19,12 +19,14 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AmsNetId struct {
@@ -72,26 +74,27 @@ func (m *AmsNetId) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (octet1)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (octet2)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (octet3)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (octet4)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (octet5)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (octet6)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	return lengthInBits
 }
 
+
 func (m *AmsNetId) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -102,37 +105,37 @@ func AmsNetIdParse(readBuffer utils.ReadBuffer) (*AmsNetId, error) {
 	}
 
 	// Simple Field (octet1)
-	octet1, _octet1Err := readBuffer.ReadUint8("octet1", 8)
+octet1, _octet1Err := readBuffer.ReadUint8("octet1", 8)
 	if _octet1Err != nil {
 		return nil, errors.Wrap(_octet1Err, "Error parsing 'octet1' field")
 	}
 
 	// Simple Field (octet2)
-	octet2, _octet2Err := readBuffer.ReadUint8("octet2", 8)
+octet2, _octet2Err := readBuffer.ReadUint8("octet2", 8)
 	if _octet2Err != nil {
 		return nil, errors.Wrap(_octet2Err, "Error parsing 'octet2' field")
 	}
 
 	// Simple Field (octet3)
-	octet3, _octet3Err := readBuffer.ReadUint8("octet3", 8)
+octet3, _octet3Err := readBuffer.ReadUint8("octet3", 8)
 	if _octet3Err != nil {
 		return nil, errors.Wrap(_octet3Err, "Error parsing 'octet3' field")
 	}
 
 	// Simple Field (octet4)
-	octet4, _octet4Err := readBuffer.ReadUint8("octet4", 8)
+octet4, _octet4Err := readBuffer.ReadUint8("octet4", 8)
 	if _octet4Err != nil {
 		return nil, errors.Wrap(_octet4Err, "Error parsing 'octet4' field")
 	}
 
 	// Simple Field (octet5)
-	octet5, _octet5Err := readBuffer.ReadUint8("octet5", 8)
+octet5, _octet5Err := readBuffer.ReadUint8("octet5", 8)
 	if _octet5Err != nil {
 		return nil, errors.Wrap(_octet5Err, "Error parsing 'octet5' field")
 	}
 
 	// Simple Field (octet6)
-	octet6, _octet6Err := readBuffer.ReadUint8("octet6", 8)
+octet6, _octet6Err := readBuffer.ReadUint8("octet6", 8)
 	if _octet6Err != nil {
 		return nil, errors.Wrap(_octet6Err, "Error parsing 'octet6' field")
 	}
@@ -146,7 +149,7 @@ func AmsNetIdParse(readBuffer utils.ReadBuffer) (*AmsNetId, error) {
 }
 
 func (m *AmsNetId) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AmsNetId"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AmsNetId"); pushErr != nil {
 		return pushErr
 	}
 
@@ -206,3 +209,6 @@ func (m *AmsNetId) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
index 5f26363..0b2d624 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
@@ -19,24 +19,26 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AmsPacket struct {
 	TargetAmsNetId *AmsNetId
-	TargetAmsPort  uint16
+	TargetAmsPort uint16
 	SourceAmsNetId *AmsNetId
-	SourceAmsPort  uint16
-	CommandId      CommandId
-	State          *State
-	ErrorCode      uint32
-	InvokeId       uint32
-	Data           *AdsData
+	SourceAmsPort uint16
+	CommandId CommandId
+	State *State
+	ErrorCode uint32
+	InvokeId uint32
+	Data *AdsData
 }
 
 // The corresponding interface
@@ -78,13 +80,13 @@ func (m *AmsPacket) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits += m.TargetAmsNetId.LengthInBits()
 
 	// Simple field (targetAmsPort)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Simple field (sourceAmsNetId)
 	lengthInBits += m.SourceAmsNetId.LengthInBits()
 
 	// Simple field (sourceAmsPort)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Simple field (commandId)
 	lengthInBits += 16
@@ -96,10 +98,10 @@ func (m *AmsPacket) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits += 32
 
 	// Simple field (errorCode)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (invokeId)
-	lengthInBits += 32
+	lengthInBits += 32;
 
 	// Simple field (data)
 	lengthInBits += m.Data.LengthInBits()
@@ -107,6 +109,7 @@ func (m *AmsPacket) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AmsPacket) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -120,7 +123,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	if pullErr := readBuffer.PullContext("targetAmsNetId"); pullErr != nil {
 		return nil, pullErr
 	}
-	targetAmsNetId, _targetAmsNetIdErr := AmsNetIdParse(readBuffer)
+targetAmsNetId, _targetAmsNetIdErr := AmsNetIdParse(readBuffer)
 	if _targetAmsNetIdErr != nil {
 		return nil, errors.Wrap(_targetAmsNetIdErr, "Error parsing 'targetAmsNetId' field")
 	}
@@ -129,7 +132,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	}
 
 	// Simple Field (targetAmsPort)
-	targetAmsPort, _targetAmsPortErr := readBuffer.ReadUint16("targetAmsPort", 16)
+targetAmsPort, _targetAmsPortErr := readBuffer.ReadUint16("targetAmsPort", 16)
 	if _targetAmsPortErr != nil {
 		return nil, errors.Wrap(_targetAmsPortErr, "Error parsing 'targetAmsPort' field")
 	}
@@ -138,7 +141,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	if pullErr := readBuffer.PullContext("sourceAmsNetId"); pullErr != nil {
 		return nil, pullErr
 	}
-	sourceAmsNetId, _sourceAmsNetIdErr := AmsNetIdParse(readBuffer)
+sourceAmsNetId, _sourceAmsNetIdErr := AmsNetIdParse(readBuffer)
 	if _sourceAmsNetIdErr != nil {
 		return nil, errors.Wrap(_sourceAmsNetIdErr, "Error parsing 'sourceAmsNetId' field")
 	}
@@ -147,7 +150,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	}
 
 	// Simple Field (sourceAmsPort)
-	sourceAmsPort, _sourceAmsPortErr := readBuffer.ReadUint16("sourceAmsPort", 16)
+sourceAmsPort, _sourceAmsPortErr := readBuffer.ReadUint16("sourceAmsPort", 16)
 	if _sourceAmsPortErr != nil {
 		return nil, errors.Wrap(_sourceAmsPortErr, "Error parsing 'sourceAmsPort' field")
 	}
@@ -156,7 +159,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	if pullErr := readBuffer.PullContext("commandId"); pullErr != nil {
 		return nil, pullErr
 	}
-	commandId, _commandIdErr := CommandIdParse(readBuffer)
+commandId, _commandIdErr := CommandIdParse(readBuffer)
 	if _commandIdErr != nil {
 		return nil, errors.Wrap(_commandIdErr, "Error parsing 'commandId' field")
 	}
@@ -168,7 +171,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	if pullErr := readBuffer.PullContext("state"); pullErr != nil {
 		return nil, pullErr
 	}
-	state, _stateErr := StateParse(readBuffer)
+state, _stateErr := StateParse(readBuffer)
 	if _stateErr != nil {
 		return nil, errors.Wrap(_stateErr, "Error parsing 'state' field")
 	}
@@ -184,13 +187,13 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	}
 
 	// Simple Field (errorCode)
-	errorCode, _errorCodeErr := readBuffer.ReadUint32("errorCode", 32)
+errorCode, _errorCodeErr := readBuffer.ReadUint32("errorCode", 32)
 	if _errorCodeErr != nil {
 		return nil, errors.Wrap(_errorCodeErr, "Error parsing 'errorCode' field")
 	}
 
 	// Simple Field (invokeId)
-	invokeId, _invokeIdErr := readBuffer.ReadUint32("invokeId", 32)
+invokeId, _invokeIdErr := readBuffer.ReadUint32("invokeId", 32)
 	if _invokeIdErr != nil {
 		return nil, errors.Wrap(_invokeIdErr, "Error parsing 'invokeId' field")
 	}
@@ -199,7 +202,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 	if pullErr := readBuffer.PullContext("data"); pullErr != nil {
 		return nil, pullErr
 	}
-	data, _dataErr := AdsDataParse(readBuffer, commandId, state.Response)
+data, _dataErr := AdsDataParse(readBuffer , commandId , state.Response )
 	if _dataErr != nil {
 		return nil, errors.Wrap(_dataErr, "Error parsing 'data' field")
 	}
@@ -216,7 +219,7 @@ func AmsPacketParse(readBuffer utils.ReadBuffer) (*AmsPacket, error) {
 }
 
 func (m *AmsPacket) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AmsPacket"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AmsPacket"); pushErr != nil {
 		return pushErr
 	}
 
@@ -329,3 +332,6 @@ func (m *AmsPacket) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
index 956c48d..dc603a3 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AmsSerialAcknowledgeFrame struct {
-	MagicCookie        uint16
+	MagicCookie uint16
 	TransmitterAddress int8
-	ReceiverAddress    int8
-	FragmentNumber     int8
-	Length             int8
-	Crc                uint16
+	ReceiverAddress int8
+	FragmentNumber int8
+	Length int8
+	Crc uint16
 }
 
 // The corresponding interface
@@ -72,26 +74,27 @@ func (m *AmsSerialAcknowledgeFrame) LengthInBitsConditional(lastItem bool) uint1
 	lengthInBits := uint16(0)
 
 	// Simple field (magicCookie)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Simple field (transmitterAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (receiverAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (fragmentNumber)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (length)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (crc)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	return lengthInBits
 }
 
+
 func (m *AmsSerialAcknowledgeFrame) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -102,37 +105,37 @@ func AmsSerialAcknowledgeFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialAckn
 	}
 
 	// Simple Field (magicCookie)
-	magicCookie, _magicCookieErr := readBuffer.ReadUint16("magicCookie", 16)
+magicCookie, _magicCookieErr := readBuffer.ReadUint16("magicCookie", 16)
 	if _magicCookieErr != nil {
 		return nil, errors.Wrap(_magicCookieErr, "Error parsing 'magicCookie' field")
 	}
 
 	// Simple Field (transmitterAddress)
-	transmitterAddress, _transmitterAddressErr := readBuffer.ReadInt8("transmitterAddress", 8)
+transmitterAddress, _transmitterAddressErr := readBuffer.ReadInt8("transmitterAddress", 8)
 	if _transmitterAddressErr != nil {
 		return nil, errors.Wrap(_transmitterAddressErr, "Error parsing 'transmitterAddress' field")
 	}
 
 	// Simple Field (receiverAddress)
-	receiverAddress, _receiverAddressErr := readBuffer.ReadInt8("receiverAddress", 8)
+receiverAddress, _receiverAddressErr := readBuffer.ReadInt8("receiverAddress", 8)
 	if _receiverAddressErr != nil {
 		return nil, errors.Wrap(_receiverAddressErr, "Error parsing 'receiverAddress' field")
 	}
 
 	// Simple Field (fragmentNumber)
-	fragmentNumber, _fragmentNumberErr := readBuffer.ReadInt8("fragmentNumber", 8)
+fragmentNumber, _fragmentNumberErr := readBuffer.ReadInt8("fragmentNumber", 8)
 	if _fragmentNumberErr != nil {
 		return nil, errors.Wrap(_fragmentNumberErr, "Error parsing 'fragmentNumber' field")
 	}
 
 	// Simple Field (length)
-	length, _lengthErr := readBuffer.ReadInt8("length", 8)
+length, _lengthErr := readBuffer.ReadInt8("length", 8)
 	if _lengthErr != nil {
 		return nil, errors.Wrap(_lengthErr, "Error parsing 'length' field")
 	}
 
 	// Simple Field (crc)
-	crc, _crcErr := readBuffer.ReadUint16("crc", 16)
+crc, _crcErr := readBuffer.ReadUint16("crc", 16)
 	if _crcErr != nil {
 		return nil, errors.Wrap(_crcErr, "Error parsing 'crc' field")
 	}
@@ -146,7 +149,7 @@ func AmsSerialAcknowledgeFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialAckn
 }
 
 func (m *AmsSerialAcknowledgeFrame) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AmsSerialAcknowledgeFrame"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AmsSerialAcknowledgeFrame"); pushErr != nil {
 		return pushErr
 	}
 
@@ -206,3 +209,6 @@ func (m *AmsSerialAcknowledgeFrame) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
index 64715c7..d898a32 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
@@ -19,22 +19,24 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AmsSerialFrame struct {
-	MagicCookie        uint16
+	MagicCookie uint16
 	TransmitterAddress int8
-	ReceiverAddress    int8
-	FragmentNumber     int8
-	Length             int8
-	Userdata           *AmsPacket
-	Crc                uint16
+	ReceiverAddress int8
+	FragmentNumber int8
+	Length int8
+	Userdata *AmsPacket
+	Crc uint16
 }
 
 // The corresponding interface
@@ -73,29 +75,30 @@ func (m *AmsSerialFrame) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (magicCookie)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Simple field (transmitterAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (receiverAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (fragmentNumber)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (length)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (userdata)
 	lengthInBits += m.Userdata.LengthInBits()
 
 	// Simple field (crc)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	return lengthInBits
 }
 
+
 func (m *AmsSerialFrame) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -106,31 +109,31 @@ func AmsSerialFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialFrame, error) {
 	}
 
 	// Simple Field (magicCookie)
-	magicCookie, _magicCookieErr := readBuffer.ReadUint16("magicCookie", 16)
+magicCookie, _magicCookieErr := readBuffer.ReadUint16("magicCookie", 16)
 	if _magicCookieErr != nil {
 		return nil, errors.Wrap(_magicCookieErr, "Error parsing 'magicCookie' field")
 	}
 
 	// Simple Field (transmitterAddress)
-	transmitterAddress, _transmitterAddressErr := readBuffer.ReadInt8("transmitterAddress", 8)
+transmitterAddress, _transmitterAddressErr := readBuffer.ReadInt8("transmitterAddress", 8)
 	if _transmitterAddressErr != nil {
 		return nil, errors.Wrap(_transmitterAddressErr, "Error parsing 'transmitterAddress' field")
 	}
 
 	// Simple Field (receiverAddress)
-	receiverAddress, _receiverAddressErr := readBuffer.ReadInt8("receiverAddress", 8)
+receiverAddress, _receiverAddressErr := readBuffer.ReadInt8("receiverAddress", 8)
 	if _receiverAddressErr != nil {
 		return nil, errors.Wrap(_receiverAddressErr, "Error parsing 'receiverAddress' field")
 	}
 
 	// Simple Field (fragmentNumber)
-	fragmentNumber, _fragmentNumberErr := readBuffer.ReadInt8("fragmentNumber", 8)
+fragmentNumber, _fragmentNumberErr := readBuffer.ReadInt8("fragmentNumber", 8)
 	if _fragmentNumberErr != nil {
 		return nil, errors.Wrap(_fragmentNumberErr, "Error parsing 'fragmentNumber' field")
 	}
 
 	// Simple Field (length)
-	length, _lengthErr := readBuffer.ReadInt8("length", 8)
+length, _lengthErr := readBuffer.ReadInt8("length", 8)
 	if _lengthErr != nil {
 		return nil, errors.Wrap(_lengthErr, "Error parsing 'length' field")
 	}
@@ -139,7 +142,7 @@ func AmsSerialFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialFrame, error) {
 	if pullErr := readBuffer.PullContext("userdata"); pullErr != nil {
 		return nil, pullErr
 	}
-	userdata, _userdataErr := AmsPacketParse(readBuffer)
+userdata, _userdataErr := AmsPacketParse(readBuffer)
 	if _userdataErr != nil {
 		return nil, errors.Wrap(_userdataErr, "Error parsing 'userdata' field")
 	}
@@ -148,7 +151,7 @@ func AmsSerialFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialFrame, error) {
 	}
 
 	// Simple Field (crc)
-	crc, _crcErr := readBuffer.ReadUint16("crc", 16)
+crc, _crcErr := readBuffer.ReadUint16("crc", 16)
 	if _crcErr != nil {
 		return nil, errors.Wrap(_crcErr, "Error parsing 'crc' field")
 	}
@@ -162,7 +165,7 @@ func AmsSerialFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialFrame, error) {
 }
 
 func (m *AmsSerialFrame) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AmsSerialFrame"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AmsSerialFrame"); pushErr != nil {
 		return pushErr
 	}
 
@@ -234,3 +237,6 @@ func (m *AmsSerialFrame) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go
index c3966b5..48a0ada 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go
@@ -19,21 +19,23 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AmsSerialResetFrame struct {
-	MagicCookie        uint16
+	MagicCookie uint16
 	TransmitterAddress int8
-	ReceiverAddress    int8
-	FragmentNumber     int8
-	Length             int8
-	Crc                uint16
+	ReceiverAddress int8
+	FragmentNumber int8
+	Length int8
+	Crc uint16
 }
 
 // The corresponding interface
@@ -72,26 +74,27 @@ func (m *AmsSerialResetFrame) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (magicCookie)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	// Simple field (transmitterAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (receiverAddress)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (fragmentNumber)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (length)
-	lengthInBits += 8
+	lengthInBits += 8;
 
 	// Simple field (crc)
-	lengthInBits += 16
+	lengthInBits += 16;
 
 	return lengthInBits
 }
 
+
 func (m *AmsSerialResetFrame) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -102,37 +105,37 @@ func AmsSerialResetFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialResetFrame
 	}
 
 	// Simple Field (magicCookie)
-	magicCookie, _magicCookieErr := readBuffer.ReadUint16("magicCookie", 16)
+magicCookie, _magicCookieErr := readBuffer.ReadUint16("magicCookie", 16)
 	if _magicCookieErr != nil {
 		return nil, errors.Wrap(_magicCookieErr, "Error parsing 'magicCookie' field")
 	}
 
 	// Simple Field (transmitterAddress)
-	transmitterAddress, _transmitterAddressErr := readBuffer.ReadInt8("transmitterAddress", 8)
+transmitterAddress, _transmitterAddressErr := readBuffer.ReadInt8("transmitterAddress", 8)
 	if _transmitterAddressErr != nil {
 		return nil, errors.Wrap(_transmitterAddressErr, "Error parsing 'transmitterAddress' field")
 	}
 
 	// Simple Field (receiverAddress)
-	receiverAddress, _receiverAddressErr := readBuffer.ReadInt8("receiverAddress", 8)
+receiverAddress, _receiverAddressErr := readBuffer.ReadInt8("receiverAddress", 8)
 	if _receiverAddressErr != nil {
 		return nil, errors.Wrap(_receiverAddressErr, "Error parsing 'receiverAddress' field")
 	}
 
 	// Simple Field (fragmentNumber)
-	fragmentNumber, _fragmentNumberErr := readBuffer.ReadInt8("fragmentNumber", 8)
+fragmentNumber, _fragmentNumberErr := readBuffer.ReadInt8("fragmentNumber", 8)
 	if _fragmentNumberErr != nil {
 		return nil, errors.Wrap(_fragmentNumberErr, "Error parsing 'fragmentNumber' field")
 	}
 
 	// Simple Field (length)
-	length, _lengthErr := readBuffer.ReadInt8("length", 8)
+length, _lengthErr := readBuffer.ReadInt8("length", 8)
 	if _lengthErr != nil {
 		return nil, errors.Wrap(_lengthErr, "Error parsing 'length' field")
 	}
 
 	// Simple Field (crc)
-	crc, _crcErr := readBuffer.ReadUint16("crc", 16)
+crc, _crcErr := readBuffer.ReadUint16("crc", 16)
 	if _crcErr != nil {
 		return nil, errors.Wrap(_crcErr, "Error parsing 'crc' field")
 	}
@@ -146,7 +149,7 @@ func AmsSerialResetFrameParse(readBuffer utils.ReadBuffer) (*AmsSerialResetFrame
 }
 
 func (m *AmsSerialResetFrame) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AmsSerialResetFrame"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AmsSerialResetFrame"); pushErr != nil {
 		return pushErr
 	}
 
@@ -206,3 +209,6 @@ func (m *AmsSerialResetFrame) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
index c9accc0..f3d4a6a 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
@@ -19,13 +19,15 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"github.com/rs/zerolog/log"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type AmsTCPPacket struct {
@@ -79,6 +81,7 @@ func (m *AmsTCPPacket) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *AmsTCPPacket) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -97,7 +100,7 @@ func AmsTCPPacketParse(readBuffer utils.ReadBuffer) (*AmsTCPPacket, error) {
 		if reserved != uint16(0x0000) {
 			log.Info().Fields(map[string]interface{}{
 				"expected value": uint16(0x0000),
-				"got value":      reserved,
+				"got value": reserved,
 			}).Msg("Got unexpected response.")
 		}
 	}
@@ -113,7 +116,7 @@ func AmsTCPPacketParse(readBuffer utils.ReadBuffer) (*AmsTCPPacket, error) {
 	if pullErr := readBuffer.PullContext("userdata"); pullErr != nil {
 		return nil, pullErr
 	}
-	userdata, _userdataErr := AmsPacketParse(readBuffer)
+userdata, _userdataErr := AmsPacketParse(readBuffer)
 	if _userdataErr != nil {
 		return nil, errors.Wrap(_userdataErr, "Error parsing 'userdata' field")
 	}
@@ -130,7 +133,7 @@ func AmsTCPPacketParse(readBuffer utils.ReadBuffer) (*AmsTCPPacket, error) {
 }
 
 func (m *AmsTCPPacket) Serialize(writeBuffer utils.WriteBuffer) error {
-	if pushErr := writeBuffer.PushContext("AmsTCPPacket"); pushErr != nil {
+	if pushErr :=writeBuffer.PushContext("AmsTCPPacket"); pushErr != nil {
 		return pushErr
 	}
 
@@ -175,3 +178,6 @@ func (m *AmsTCPPacket) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
+
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
index d662ca1..151d9b4 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
@@ -32,24 +32,24 @@ type ICommandId interface {
 	Serialize(writeBuffer utils.WriteBuffer) error
 }
 
-const (
-	CommandId_INVALID                        CommandId = 0x0000
-	CommandId_ADS_READ_DEVICE_INFO           CommandId = 0x0001
-	CommandId_ADS_READ                       CommandId = 0x0002
-	CommandId_ADS_WRITE                      CommandId = 0x0003
-	CommandId_ADS_READ_STATE                 CommandId = 0x0004
-	CommandId_ADS_WRITE_CONTROL              CommandId = 0x0005
-	CommandId_ADS_ADD_DEVICE_NOTIFICATION    CommandId = 0x0006
+const(
+	CommandId_INVALID CommandId = 0x0000
+	CommandId_ADS_READ_DEVICE_INFO CommandId = 0x0001
+	CommandId_ADS_READ CommandId = 0x0002
+	CommandId_ADS_WRITE CommandId = 0x0003
+	CommandId_ADS_READ_STATE CommandId = 0x0004
+	CommandId_ADS_WRITE_CONTROL CommandId = 0x0005
+	CommandId_ADS_ADD_DEVICE_NOTIFICATION CommandId = 0x0006
 	CommandId_ADS_DELETE_DEVICE_NOTIFICATION CommandId = 0x0007
-	CommandId_ADS_DEVICE_NOTIFICATION        CommandId = 0x0008
-	CommandId_ADS_READ_WRITE                 CommandId = 0x0009
+	CommandId_ADS_DEVICE_NOTIFICATION CommandId = 0x0008
+	CommandId_ADS_READ_WRITE CommandId = 0x0009
 )
 
 var CommandIdValues []CommandId
 
 func init() {
 	_ = errors.New
-	CommandIdValues = []CommandId{
+	CommandIdValues = []CommandId {
 		CommandId_INVALID,
 		CommandId_ADS_READ_DEVICE_INFO,
 		CommandId_ADS_READ,
@@ -65,26 +65,26 @@ func init() {
 
 func CommandIdByValue(value uint16) CommandId {
 	switch value {
-	case 0x0000:
-		return CommandId_INVALID
-	case 0x0001:
-		return CommandId_ADS_READ_DEVICE_INFO
-	case 0x0002:
-		return CommandId_ADS_READ
-	case 0x0003:
-		return CommandId_ADS_WRITE
-	case 0x0004:
-		return CommandId_ADS_READ_STATE
-	case 0x0005:
-		return CommandId_ADS_WRITE_CONTROL
-	case 0x0006:
-		return CommandId_ADS_ADD_DEVICE_NOTIFICATION
-	case 0x0007:
-		return CommandId_ADS_DELETE_DEVICE_NOTIFICATION
-	case 0x0008:
-		return CommandId_ADS_DEVICE_NOTIFICATION
-	case 0x0009:
-		return CommandId_ADS_READ_WRITE
+		case 0x0000:
+			return CommandId_INVALID
+		case 0x0001:
+			return CommandId_ADS_READ_DEVICE_INFO
+		case 0x0002:
+			return CommandId_ADS_READ
+		case 0x0003:
+			return CommandId_ADS_WRITE
+		case 0x0004:
+			return CommandId_ADS_READ_STATE
+		case 0x0005:
+			return CommandId_ADS_WRITE_CONTROL
+		case 0x0006:
+			return CommandId_ADS_ADD_DEVICE_NOTIFICATION
+		case 0x0007:
+			return CommandId_ADS_DELETE_DEVICE_NOTIFICATION
+		case 0x0008:
+			return CommandId_ADS_DEVICE_NOTIFICATION
+		case 0x0009:
+			return CommandId_ADS_READ_WRITE
 	}
 	return 0
 }
@@ -174,3 +174,4 @@ func (e CommandId) name() string {
 func (e CommandId) String() string {
 	return e.name()
 }
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go b/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go
index dd67731..3b83da5 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/DataItem.go
@@ -19,363 +19,366 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/values"
-	api "github.com/apache/plc4x/plc4go/pkg/plc4go/values"
 	"github.com/pkg/errors"
 	"time"
+	api "github.com/apache/plc4x/plc4go/pkg/plc4go/values"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
-
+	// Code generated by code-generation. DO NOT EDIT.
+	
 func DataItemParse(readBuffer utils.ReadBuffer, dataFormatName string, stringLength int32) (api.PlcValue, error) {
 	readBuffer.PullContext("DataItem")
 	switch {
-	case dataFormatName == "IEC61131_BOOL": // BOOL
-
-		// Reserved Field (Just skip the bytes)
-		if _, _err := readBuffer.ReadUint8("reserved", 7); _err != nil {
-			return nil, errors.Wrap(_err, "Error parsing reserved field")
-		}
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadBit("value")
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcBOOL(value), nil
-	case dataFormatName == "IEC61131_BYTE": // BitString
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint8("value", 8)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcBitString(value), nil
-	case dataFormatName == "IEC61131_WORD": // BitString
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint16("value", 16)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcBitString(value), nil
-	case dataFormatName == "IEC61131_DWORD": // BitString
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint32("value", 32)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcBitString(value), nil
-	case dataFormatName == "IEC61131_SINT": // SINT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadInt8("value", 8)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcSINT(value), nil
-	case dataFormatName == "IEC61131_USINT": // USINT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint8("value", 8)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcUSINT(value), nil
-	case dataFormatName == "IEC61131_INT": // INT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadInt16("value", 16)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcINT(value), nil
-	case dataFormatName == "IEC61131_UINT": // UINT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint16("value", 16)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcUINT(value), nil
-	case dataFormatName == "IEC61131_DINT": // DINT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadInt32("value", 32)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcDINT(value), nil
-	case dataFormatName == "IEC61131_UDINT": // UDINT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint32("value", 32)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcUDINT(value), nil
-	case dataFormatName == "IEC61131_LINT": // LINT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadInt64("value", 64)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcLINT(value), nil
-	case dataFormatName == "IEC61131_ULINT": // ULINT
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint64("value", 64)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcULINT(value), nil
-	case dataFormatName == "IEC61131_REAL": // REAL
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadFloat32("value", true, 8, 23)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcREAL(value), nil
-	case dataFormatName == "IEC61131_LREAL": // LREAL
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadFloat64("value", true, 11, 52)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcLREAL(value), nil
-	case dataFormatName == "IEC61131_CHAR": // STRING
-	case dataFormatName == "IEC61131_WCHAR": // STRING
-	case dataFormatName == "IEC61131_STRING": // STRING
-
-		// Manual Field (value)
-		value, _valueErr := StaticHelperParseAmsString(readBuffer, stringLength, "UTF-8")
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcSTRING(value), nil
-	case dataFormatName == "IEC61131_WSTRING": // STRING
-
-		// Manual Field (value)
-		value, _valueErr := StaticHelperParseAmsString(readBuffer, stringLength, "UTF-16")
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcSTRING(value), nil
-	case dataFormatName == "IEC61131_TIME": // TIME
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint32("value", 32)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcTIME(value), nil
-	case dataFormatName == "IEC61131_LTIME": // LTIME
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint64("value", 64)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcLTIME(value), nil
-	case dataFormatName == "IEC61131_DATE": // DATE
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint32("value", 32)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcDATE(value), nil
-	case dataFormatName == "IEC61131_TIME_OF_DAY": // TIME_OF_DAY
-
-		// Simple Field (value)
-		value, _valueErr := readBuffer.ReadUint32("value", 32)
-		if _valueErr != nil {
-			return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-		}
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcTIME_OF_DAY(value), nil
-	case dataFormatName == "IEC61131_DATE_AND_TIME": // DATE_AND_TIME
-
-		// Simple Field (secondsSinceEpoch)
-		secondsSinceEpoch, _secondsSinceEpochErr := readBuffer.ReadUint32("secondsSinceEpoch", 32)
-		if _secondsSinceEpochErr != nil {
-			return nil, errors.Wrap(_secondsSinceEpochErr, "Error parsing 'secondsSinceEpoch' field")
-		}
-		value := time.Unix(int64(secondsSinceEpoch), 0)
-		readBuffer.CloseContext("DataItem")
-		return values.NewPlcDATE_AND_TIME(value), nil
+        case dataFormatName == "IEC61131_BOOL" : // BOOL
+
+			// Reserved Field (Just skip the bytes)
+			if _, _err := readBuffer.ReadUint8("reserved", 7); _err != nil {
+				return nil, errors.Wrap(_err, "Error parsing reserved field")
+			}
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadBit("value")
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcBOOL(value), nil
+        case dataFormatName == "IEC61131_BYTE" : // BitString
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint8("value", 8)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcBitString(value), nil
+        case dataFormatName == "IEC61131_WORD" : // BitString
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint16("value", 16)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcBitString(value), nil
+        case dataFormatName == "IEC61131_DWORD" : // BitString
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint32("value", 32)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcBitString(value), nil
+        case dataFormatName == "IEC61131_SINT" : // SINT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadInt8("value", 8)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcSINT(value), nil
+        case dataFormatName == "IEC61131_USINT" : // USINT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint8("value", 8)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcUSINT(value), nil
+        case dataFormatName == "IEC61131_INT" : // INT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadInt16("value", 16)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcINT(value), nil
+        case dataFormatName == "IEC61131_UINT" : // UINT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint16("value", 16)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcUINT(value), nil
+        case dataFormatName == "IEC61131_DINT" : // DINT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadInt32("value", 32)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcDINT(value), nil
+        case dataFormatName == "IEC61131_UDINT" : // UDINT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint32("value", 32)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcUDINT(value), nil
+        case dataFormatName == "IEC61131_LINT" : // LINT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadInt64("value", 64)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcLINT(value), nil
+        case dataFormatName == "IEC61131_ULINT" : // ULINT
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint64("value", 64)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcULINT(value), nil
+        case dataFormatName == "IEC61131_REAL" : // REAL
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadFloat32("value", true, 8, 23)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcREAL(value), nil
+        case dataFormatName == "IEC61131_LREAL" : // LREAL
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadFloat64("value", true, 11, 52)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcLREAL(value), nil
+        case dataFormatName == "IEC61131_CHAR" : // STRING
+        case dataFormatName == "IEC61131_WCHAR" : // STRING
+        case dataFormatName == "IEC61131_STRING" : // STRING
+
+			// Manual Field (value)
+			value, _valueErr := StaticHelperParseAmsString(readBuffer, stringLength, "TF-")
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcSTRING(value), nil
+        case dataFormatName == "IEC61131_WSTRING" : // STRING
+
+			// Manual Field (value)
+			value, _valueErr := StaticHelperParseAmsString(readBuffer, stringLength, "TF-")
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcSTRING(value), nil
+        case dataFormatName == "IEC61131_TIME" : // TIME
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint32("value", 32)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcTIME(value), nil
+        case dataFormatName == "IEC61131_LTIME" : // LTIME
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint64("value", 64)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcLTIME(value), nil
+        case dataFormatName == "IEC61131_DATE" : // DATE
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint32("value", 32)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcDATE(value), nil
+        case dataFormatName == "IEC61131_TIME_OF_DAY" : // TIME_OF_DAY
+
+			// Simple Field (value)
+			value, _valueErr := readBuffer.ReadUint32("value", 32)
+			if _valueErr != nil {
+				return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+			}
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcTIME_OF_DAY(value), nil
+        case dataFormatName == "IEC61131_DATE_AND_TIME" : // DATE_AND_TIME
+
+			// Simple Field (secondsSinceEpoch)
+			secondsSinceEpoch, _secondsSinceEpochErr := readBuffer.ReadUint32("secondsSinceEpoch", 32)
+			if _secondsSinceEpochErr != nil {
+				return nil, errors.Wrap(_secondsSinceEpochErr, "Error parsing 'secondsSinceEpoch' field")
+			}
+            value := time.Unix(int64(secondsSinceEpoch), 0)
+			readBuffer.CloseContext("DataItem")
+			return values.NewPlcDATE_AND_TIME(value), nil
 	}
-	// TODO: add more info which type it is actually
+    // TODO: add more info which type it is actually
 	return nil, errors.New("unsupported type")
 }
 
 func DataItemSerialize(writeBuffer utils.WriteBuffer, value api.PlcValue, dataFormatName string, stringLength int32) error {
 	writeBuffer.PushContext("DataItem")
 	switch {
-	case dataFormatName == "IEC61131_BOOL": // BOOL
-
-		// Reserved Field (Just skip the bytes)
-		if _err := writeBuffer.WriteUint8("reserved", 7, uint8(0x00)); _err != nil {
-			return errors.Wrap(_err, "Error serializing reserved field")
-		}
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteBit("value", value.GetBool()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_BYTE": // BitString
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint8("value", 8, value.GetUint8()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_WORD": // BitString
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint16("value", 16, value.GetUint16()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_DWORD": // BitString
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_SINT": // SINT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteInt8("value", 8, value.GetInt8()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_USINT": // USINT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint8("value", 8, value.GetUint8()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_INT": // INT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteInt16("value", 16, value.GetInt16()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_UINT": // UINT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint16("value", 16, value.GetUint16()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_DINT": // DINT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteInt32("value", 32, value.GetInt32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_UDINT": // UDINT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_LINT": // LINT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteInt64("value", 64, value.GetInt64()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_ULINT": // ULINT
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint64("value", 64, value.GetUint64()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_REAL": // REAL
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteFloat32("value", 32, value.GetFloat32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_LREAL": // LREAL
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteFloat64("value", 64, value.GetFloat64()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_CHAR": // STRING
-	case dataFormatName == "IEC61131_WCHAR": // STRING
-	case dataFormatName == "IEC61131_STRING": // STRING
-
-		// Manual Field (value)
-		_valueErr := StaticHelperSerializeAmsString(writeBuffer, value, stringLength, "UTF-8")
-		if _valueErr != nil {
-			return errors.Wrap(_valueErr, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_WSTRING": // STRING
-
-		// Manual Field (value)
-		_valueErr := StaticHelperSerializeAmsString(writeBuffer, value, stringLength, "UTF-16")
-		if _valueErr != nil {
-			return errors.Wrap(_valueErr, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_TIME": // TIME
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_LTIME": // LTIME
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint64("value", 64, value.GetUint64()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_DATE": // DATE
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_TIME_OF_DAY": // TIME_OF_DAY
-
-		// Simple Field (value)
-		if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'value' field")
-		}
-	case dataFormatName == "IEC61131_DATE_AND_TIME": // DATE_AND_TIME
-
-		// Simple Field (secondsSinceEpoch)
-		if _err := writeBuffer.WriteUint32("secondsSinceEpoch", 32, value.GetUint32()); _err != nil {
-			return errors.Wrap(_err, "Error serializing 'secondsSinceEpoch' field")
-		}
-	default:
-		// TODO: add more info which type it is actually
-		return errors.New("unsupported type")
+        case dataFormatName == "IEC61131_BOOL" : // BOOL
+
+			// Reserved Field (Just skip the bytes)
+			if _err := writeBuffer.WriteUint8("reserved", 7, uint8(0x00)); _err != nil {
+				return errors.Wrap(_err, "Error serializing reserved field")
+			}
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteBit("value", value.GetBool()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_BYTE" : // BitString
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint8("value", 8, value.GetUint8()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_WORD" : // BitString
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint16("value", 16, value.GetUint16()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_DWORD" : // BitString
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_SINT" : // SINT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteInt8("value", 8, value.GetInt8()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_USINT" : // USINT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint8("value", 8, value.GetUint8()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_INT" : // INT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteInt16("value", 16, value.GetInt16()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_UINT" : // UINT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint16("value", 16, value.GetUint16()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_DINT" : // DINT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteInt32("value", 32, value.GetInt32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_UDINT" : // UDINT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_LINT" : // LINT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteInt64("value", 64, value.GetInt64()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_ULINT" : // ULINT
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint64("value", 64, value.GetUint64()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_REAL" : // REAL
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteFloat32("value", 32, value.GetFloat32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_LREAL" : // LREAL
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteFloat64("value", 64, value.GetFloat64()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_CHAR" : // STRING
+        case dataFormatName == "IEC61131_WCHAR" : // STRING
+        case dataFormatName == "IEC61131_STRING" : // STRING
+
+			// Manual Field (value)
+			_valueErr := StaticHelperSerializeAmsString(writeBuffer, value, stringLength, "TF-")
+			if _valueErr != nil {
+				return errors.Wrap(_valueErr, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_WSTRING" : // STRING
+
+			// Manual Field (value)
+			_valueErr := StaticHelperSerializeAmsString(writeBuffer, value, stringLength, "TF-")
+			if _valueErr != nil {
+				return errors.Wrap(_valueErr, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_TIME" : // TIME
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_LTIME" : // LTIME
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint64("value", 64, value.GetUint64()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_DATE" : // DATE
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_TIME_OF_DAY" : // TIME_OF_DAY
+
+			// Simple Field (value)
+			if _err := writeBuffer.WriteUint32("value", 32, value.GetUint32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'value' field")
+			}
+        case dataFormatName == "IEC61131_DATE_AND_TIME" : // DATE_AND_TIME
+
+			// Simple Field (secondsSinceEpoch)
+			if _err := writeBuffer.WriteUint32("secondsSinceEpoch", 32, value.GetUint32()); _err != nil {
+				return errors.Wrap(_err, "Error serializing 'secondsSinceEpoch' field")
+			}
+		default:
+            // TODO: add more info which type it is actually
+			return errors.New("unsupported type")
 	}
 	writeBuffer.PopContext("DataItem")
 	return nil
 }
+
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
index fe14e4b..aa8b9e2 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
@@ -32,44 +32,44 @@ type IReservedIndexGroups interface {
 	Serialize(writeBuffer utils.WriteBuffer) error
 }
 
-const (
-	ReservedIndexGroups_ADSIGRP_SYMTAB                  ReservedIndexGroups = 0x0000F000
-	ReservedIndexGroups_ADSIGRP_SYMNAME                 ReservedIndexGroups = 0x0000F001
-	ReservedIndexGroups_ADSIGRP_SYMVAL                  ReservedIndexGroups = 0x0000F002
-	ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME           ReservedIndexGroups = 0x0000F003
-	ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME           ReservedIndexGroups = 0x0000F004
-	ReservedIndexGroups_ADSIGRP_SYM_VALBYHND            ReservedIndexGroups = 0x0000F005
-	ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND          ReservedIndexGroups = 0x0000F006
-	ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME          ReservedIndexGroups = 0x0000F007
-	ReservedIndexGroups_ADSIGRP_SYM_VERSION             ReservedIndexGroups = 0x0000F008
-	ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX        ReservedIndexGroups = 0x0000F009
-	ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD            ReservedIndexGroups = 0x0000F00A
-	ReservedIndexGroups_ADSIGRP_SYM_UPLOAD              ReservedIndexGroups = 0x0000F00B
-	ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO          ReservedIndexGroups = 0x0000F00C
-	ReservedIndexGroups_ADSIGRP_SYMNOTE                 ReservedIndexGroups = 0x0000F010
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB            ReservedIndexGroups = 0x0000F020
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX            ReservedIndexGroups = 0x0000F021
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE          ReservedIndexGroups = 0x0000F025
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB            ReservedIndexGroups = 0x0000F030
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX            ReservedIndexGroups = 0x0000F031
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE         ReservedIndexGroups = 0x0000F035
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI          ReservedIndexGroups = 0x0000F040
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO          ReservedIndexGroups = 0x0000F050
-	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB           ReservedIndexGroups = 0x0000F060
-	ReservedIndexGroups_ADSIGRP_MULTIPLE_READ           ReservedIndexGroups = 0x0000F080
-	ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE          ReservedIndexGroups = 0x0000F081
-	ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE     ReservedIndexGroups = 0x0000F082
+const(
+	ReservedIndexGroups_ADSIGRP_SYMTAB ReservedIndexGroups = 0x0000F000
+	ReservedIndexGroups_ADSIGRP_SYMNAME ReservedIndexGroups = 0x0000F001
+	ReservedIndexGroups_ADSIGRP_SYMVAL ReservedIndexGroups = 0x0000F002
+	ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME ReservedIndexGroups = 0x0000F003
+	ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME ReservedIndexGroups = 0x0000F004
+	ReservedIndexGroups_ADSIGRP_SYM_VALBYHND ReservedIndexGroups = 0x0000F005
+	ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND ReservedIndexGroups = 0x0000F006
+	ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME ReservedIndexGroups = 0x0000F007
+	ReservedIndexGroups_ADSIGRP_SYM_VERSION ReservedIndexGroups = 0x0000F008
+	ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX ReservedIndexGroups = 0x0000F009
+	ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD ReservedIndexGroups = 0x0000F00A
+	ReservedIndexGroups_ADSIGRP_SYM_UPLOAD ReservedIndexGroups = 0x0000F00B
+	ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO ReservedIndexGroups = 0x0000F00C
+	ReservedIndexGroups_ADSIGRP_SYMNOTE ReservedIndexGroups = 0x0000F010
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB ReservedIndexGroups = 0x0000F020
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX ReservedIndexGroups = 0x0000F021
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE ReservedIndexGroups = 0x0000F025
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB ReservedIndexGroups = 0x0000F030
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX ReservedIndexGroups = 0x0000F031
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE ReservedIndexGroups = 0x0000F035
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI ReservedIndexGroups = 0x0000F040
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO ReservedIndexGroups = 0x0000F050
+	ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB ReservedIndexGroups = 0x0000F060
+	ReservedIndexGroups_ADSIGRP_MULTIPLE_READ ReservedIndexGroups = 0x0000F080
+	ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE ReservedIndexGroups = 0x0000F081
+	ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE ReservedIndexGroups = 0x0000F082
 	ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE ReservedIndexGroups = 0x0000F083
-	ReservedIndexGroups_ADSIGRP_DEVICE_DATA             ReservedIndexGroups = 0x0000F100
-	ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE       ReservedIndexGroups = 0x00000000
-	ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE       ReservedIndexGroups = 0x00000002
+	ReservedIndexGroups_ADSIGRP_DEVICE_DATA ReservedIndexGroups = 0x0000F100
+	ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE ReservedIndexGroups = 0x00000000
+	ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE ReservedIndexGroups = 0x00000002
 )
 
 var ReservedIndexGroupsValues []ReservedIndexGroups
 
 func init() {
 	_ = errors.New
-	ReservedIndexGroupsValues = []ReservedIndexGroups{
+	ReservedIndexGroupsValues = []ReservedIndexGroups {
 		ReservedIndexGroups_ADSIGRP_SYMTAB,
 		ReservedIndexGroups_ADSIGRP_SYMNAME,
 		ReservedIndexGroups_ADSIGRP_SYMVAL,
@@ -105,66 +105,66 @@ func init() {
 
 func ReservedIndexGroupsByValue(value uint32) ReservedIndexGroups {
 	switch value {
-	case 0x00000000:
-		return ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE
-	case 0x00000002:
-		return ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE
-	case 0x0000F000:
-		return ReservedIndexGroups_ADSIGRP_SYMTAB
-	case 0x0000F001:
-		return ReservedIndexGroups_ADSIGRP_SYMNAME
-	case 0x0000F002:
-		return ReservedIndexGroups_ADSIGRP_SYMVAL
-	case 0x0000F003:
-		return ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME
-	case 0x0000F004:
-		return ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME
-	case 0x0000F005:
-		return ReservedIndexGroups_ADSIGRP_SYM_VALBYHND
-	case 0x0000F006:
-		return ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND
-	case 0x0000F007:
-		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME
-	case 0x0000F008:
-		return ReservedIndexGroups_ADSIGRP_SYM_VERSION
-	case 0x0000F009:
-		return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX
-	case 0x0000F00A:
-		return ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD
-	case 0x0000F00B:
-		return ReservedIndexGroups_ADSIGRP_SYM_UPLOAD
-	case 0x0000F00C:
-		return ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO
-	case 0x0000F010:
-		return ReservedIndexGroups_ADSIGRP_SYMNOTE
-	case 0x0000F020:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB
-	case 0x0000F021:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX
-	case 0x0000F025:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE
-	case 0x0000F030:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB
-	case 0x0000F031:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX
-	case 0x0000F035:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE
-	case 0x0000F040:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI
-	case 0x0000F050:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO
-	case 0x0000F060:
-		return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB
-	case 0x0000F080:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ
-	case 0x0000F081:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE
-	case 0x0000F082:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE
-	case 0x0000F083:
-		return ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE
-	case 0x0000F100:
-		return ReservedIndexGroups_ADSIGRP_DEVICE_DATA
+		case 0x00000000:
+			return ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE
+		case 0x00000002:
+			return ReservedIndexGroups_ADSIOFFS_DEVDATA_DEVSTATE
+		case 0x0000F000:
+			return ReservedIndexGroups_ADSIGRP_SYMTAB
+		case 0x0000F001:
+			return ReservedIndexGroups_ADSIGRP_SYMNAME
+		case 0x0000F002:
+			return ReservedIndexGroups_ADSIGRP_SYMVAL
+		case 0x0000F003:
+			return ReservedIndexGroups_ADSIGRP_SYM_HNDBYNAME
+		case 0x0000F004:
+			return ReservedIndexGroups_ADSIGRP_SYM_VALBYNAME
+		case 0x0000F005:
+			return ReservedIndexGroups_ADSIGRP_SYM_VALBYHND
+		case 0x0000F006:
+			return ReservedIndexGroups_ADSIGRP_SYM_RELEASEHND
+		case 0x0000F007:
+			return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAME
+		case 0x0000F008:
+			return ReservedIndexGroups_ADSIGRP_SYM_VERSION
+		case 0x0000F009:
+			return ReservedIndexGroups_ADSIGRP_SYM_INFOBYNAMEEX
+		case 0x0000F00A:
+			return ReservedIndexGroups_ADSIGRP_SYM_DOWNLOAD
+		case 0x0000F00B:
+			return ReservedIndexGroups_ADSIGRP_SYM_UPLOAD
+		case 0x0000F00C:
+			return ReservedIndexGroups_ADSIGRP_SYM_UPLOADINFO
+		case 0x0000F010:
+			return ReservedIndexGroups_ADSIGRP_SYMNOTE
+		case 0x0000F020:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIB
+		case 0x0000F021:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIX
+		case 0x0000F025:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_RISIZE
+		case 0x0000F030:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOB
+		case 0x0000F031:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOX
+		case 0x0000F035:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWOSIZE
+		case 0x0000F040:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARI
+		case 0x0000F050:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_CLEARO
+		case 0x0000F060:
+			return ReservedIndexGroups_ADSIGRP_IOIMAGE_RWIOB
+		case 0x0000F080:
+			return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ
+		case 0x0000F081:
+			return ReservedIndexGroups_ADSIGRP_MULTIPLE_WRITE
+		case 0x0000F082:
+			return ReservedIndexGroups_ADSIGRP_MULTIPLE_READ_WRITE
+		case 0x0000F083:
+			return ReservedIndexGroups_ADSIGRP_MULTIPLE_RELEASE_HANDLE
+		case 0x0000F100:
+			return ReservedIndexGroups_ADSIGRP_DEVICE_DATA
 	}
 	return 0
 }
@@ -334,3 +334,4 @@ func (e ReservedIndexGroups) name() string {
 func (e ReservedIndexGroups) String() string {
 	return e.name()
 }
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
index 8015bab..a034def 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
@@ -32,136 +32,136 @@ type IReturnCode interface {
 	Serialize(writeBuffer utils.WriteBuffer) error
 }
 
-const (
-	ReturnCode_OK                                 ReturnCode = 0x00
-	ReturnCode_INTERNAL_ERROR                     ReturnCode = 0x01
-	ReturnCode_NO_REALTIME                        ReturnCode = 0x02
-	ReturnCode_SAVE_ERROR                         ReturnCode = 0x03
-	ReturnCode_MAILBOX_FULL                       ReturnCode = 0x04
-	ReturnCode_WRONG_HMSG                         ReturnCode = 0x05
-	ReturnCode_TARGET_PORT_NOT_FOUND              ReturnCode = 0x06
-	ReturnCode_TARGET_HOST_NOT_FOUND              ReturnCode = 0x07
-	ReturnCode_UNKNOWN_COMMAND_ID                 ReturnCode = 0x08
-	ReturnCode_UNKNOWN_TASK_ID                    ReturnCode = 0x09
-	ReturnCode_NO_IO                              ReturnCode = 0x0A
-	ReturnCode_UNKNOWN_ADS_COMMAND                ReturnCode = 0x0B
-	ReturnCode_WIN32_ERROR                        ReturnCode = 0x0C
-	ReturnCode_PORT_NOT_CONNECTED                 ReturnCode = 0x0D
-	ReturnCode_INVALID_ADS_LENGTH                 ReturnCode = 0x0E
-	ReturnCode_INVALID_AMS_NET_ID                 ReturnCode = 0x0F
-	ReturnCode_LOW_INSTALLATION_LEVEL             ReturnCode = 0x10
-	ReturnCode_NO_DEBUGGING_AVAILABLE             ReturnCode = 0x11
-	ReturnCode_PORT_DEACTIVATED                   ReturnCode = 0x12
-	ReturnCode_PORT_ALREADY_CONNECTED             ReturnCode = 0x13
-	ReturnCode_ADS_SYNC_WIN32_ERROR               ReturnCode = 0x14
-	ReturnCode_ADS_SYNC_TIMEOUT                   ReturnCode = 0x15
-	ReturnCode_ADS_SYNC_AMS_ERROR                 ReturnCode = 0x16
-	ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE     ReturnCode = 0x17
-	ReturnCode_INVALID_ADS_PORT                   ReturnCode = 0x18
-	ReturnCode_NO_MEMORY                          ReturnCode = 0x19
-	ReturnCode_TCP_SENDING_ERROR                  ReturnCode = 0x1A
-	ReturnCode_HOST_NOT_REACHABLE                 ReturnCode = 0x1B
-	ReturnCode_INVALID_AMS_FRAGMENT               ReturnCode = 0x1C
-	ReturnCode_ROUTERERR_NOLOCKEDMEMORY           ReturnCode = 0x500
-	ReturnCode_ROUTERERR_RESIZEMEMORY             ReturnCode = 0x501
-	ReturnCode_ROUTERERR_MAILBOXFULL              ReturnCode = 0x502
-	ReturnCode_ROUTERERR_DEBUGBOXFULL             ReturnCode = 0x503
-	ReturnCode_ROUTERERR_UNKNOWNPORTTYPE          ReturnCode = 0x504
-	ReturnCode_ROUTERERR_NOTINITIALIZED           ReturnCode = 0x505
-	ReturnCode_ROUTERERR_PORTALREADYINUSE         ReturnCode = 0x506
-	ReturnCode_ROUTERERR_NOTREGISTERED            ReturnCode = 0x507
-	ReturnCode_ROUTERERR_NOMOREQUEUES             ReturnCode = 0x508
-	ReturnCode_ROUTERERR_INVALIDPORT              ReturnCode = 0x509
-	ReturnCode_ROUTERERR_NOTACTIVATED             ReturnCode = 0x50A
-	ReturnCode_ADSERR_DEVICE_ERROR                ReturnCode = 0x700
-	ReturnCode_ADSERR_DEVICE_SRVNOTSUPP           ReturnCode = 0x701
-	ReturnCode_ADSERR_DEVICE_INVALIDGRP           ReturnCode = 0x702
-	ReturnCode_ADSERR_DEVICE_INVALIDOFFSET        ReturnCode = 0x703
-	ReturnCode_ADSERR_DEVICE_INVALIDACCESS        ReturnCode = 0x704
-	ReturnCode_ADSERR_DEVICE_INVALIDSIZE          ReturnCode = 0x705
-	ReturnCode_ADSERR_DEVICE_INVALIDDATA          ReturnCode = 0x706
-	ReturnCode_ADSERR_DEVICE_NOTREADY             ReturnCode = 0x707
-	ReturnCode_ADSERR_DEVICE_BUSY                 ReturnCode = 0x708
-	ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT       ReturnCode = 0x709
-	ReturnCode_ADSERR_DEVICE_NOMEMORY             ReturnCode = 0x70A
-	ReturnCode_ADSERR_DEVICE_INVALIDPARM          ReturnCode = 0x70B
-	ReturnCode_ADSERR_DEVICE_NOTFOUND             ReturnCode = 0x70C
-	ReturnCode_ADSERR_DEVICE_SYNTAX               ReturnCode = 0x70D
-	ReturnCode_ADSERR_DEVICE_INCOMPATIBLE         ReturnCode = 0x70E
-	ReturnCode_ADSERR_DEVICE_EXISTS               ReturnCode = 0x70F
-	ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND       ReturnCode = 0x710
+const(
+	ReturnCode_OK ReturnCode = 0x00
+	ReturnCode_INTERNAL_ERROR ReturnCode = 0x01
+	ReturnCode_NO_REALTIME ReturnCode = 0x02
+	ReturnCode_SAVE_ERROR ReturnCode = 0x03
+	ReturnCode_MAILBOX_FULL ReturnCode = 0x04
+	ReturnCode_WRONG_HMSG ReturnCode = 0x05
+	ReturnCode_TARGET_PORT_NOT_FOUND ReturnCode = 0x06
+	ReturnCode_TARGET_HOST_NOT_FOUND ReturnCode = 0x07
+	ReturnCode_UNKNOWN_COMMAND_ID ReturnCode = 0x08
+	ReturnCode_UNKNOWN_TASK_ID ReturnCode = 0x09
+	ReturnCode_NO_IO ReturnCode = 0x0A
+	ReturnCode_UNKNOWN_ADS_COMMAND ReturnCode = 0x0B
+	ReturnCode_WIN32_ERROR ReturnCode = 0x0C
+	ReturnCode_PORT_NOT_CONNECTED ReturnCode = 0x0D
+	ReturnCode_INVALID_ADS_LENGTH ReturnCode = 0x0E
+	ReturnCode_INVALID_AMS_NET_ID ReturnCode = 0x0F
+	ReturnCode_LOW_INSTALLATION_LEVEL ReturnCode = 0x10
+	ReturnCode_NO_DEBUGGING_AVAILABLE ReturnCode = 0x11
+	ReturnCode_PORT_DEACTIVATED ReturnCode = 0x12
+	ReturnCode_PORT_ALREADY_CONNECTED ReturnCode = 0x13
+	ReturnCode_ADS_SYNC_WIN32_ERROR ReturnCode = 0x14
+	ReturnCode_ADS_SYNC_TIMEOUT ReturnCode = 0x15
+	ReturnCode_ADS_SYNC_AMS_ERROR ReturnCode = 0x16
+	ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE ReturnCode = 0x17
+	ReturnCode_INVALID_ADS_PORT ReturnCode = 0x18
+	ReturnCode_NO_MEMORY ReturnCode = 0x19
+	ReturnCode_TCP_SENDING_ERROR ReturnCode = 0x1A
+	ReturnCode_HOST_NOT_REACHABLE ReturnCode = 0x1B
+	ReturnCode_INVALID_AMS_FRAGMENT ReturnCode = 0x1C
+	ReturnCode_ROUTERERR_NOLOCKEDMEMORY ReturnCode = 0x500
+	ReturnCode_ROUTERERR_RESIZEMEMORY ReturnCode = 0x501
+	ReturnCode_ROUTERERR_MAILBOXFULL ReturnCode = 0x502
+	ReturnCode_ROUTERERR_DEBUGBOXFULL ReturnCode = 0x503
+	ReturnCode_ROUTERERR_UNKNOWNPORTTYPE ReturnCode = 0x504
+	ReturnCode_ROUTERERR_NOTINITIALIZED ReturnCode = 0x505
+	ReturnCode_ROUTERERR_PORTALREADYINUSE ReturnCode = 0x506
+	ReturnCode_ROUTERERR_NOTREGISTERED ReturnCode = 0x507
+	ReturnCode_ROUTERERR_NOMOREQUEUES ReturnCode = 0x508
+	ReturnCode_ROUTERERR_INVALIDPORT ReturnCode = 0x509
+	ReturnCode_ROUTERERR_NOTACTIVATED ReturnCode = 0x50A
+	ReturnCode_ADSERR_DEVICE_ERROR ReturnCode = 0x700
+	ReturnCode_ADSERR_DEVICE_SRVNOTSUPP ReturnCode = 0x701
+	ReturnCode_ADSERR_DEVICE_INVALIDGRP ReturnCode = 0x702
+	ReturnCode_ADSERR_DEVICE_INVALIDOFFSET ReturnCode = 0x703
+	ReturnCode_ADSERR_DEVICE_INVALIDACCESS ReturnCode = 0x704
+	ReturnCode_ADSERR_DEVICE_INVALIDSIZE ReturnCode = 0x705
+	ReturnCode_ADSERR_DEVICE_INVALIDDATA ReturnCode = 0x706
+	ReturnCode_ADSERR_DEVICE_NOTREADY ReturnCode = 0x707
+	ReturnCode_ADSERR_DEVICE_BUSY ReturnCode = 0x708
+	ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT ReturnCode = 0x709
+	ReturnCode_ADSERR_DEVICE_NOMEMORY ReturnCode = 0x70A
+	ReturnCode_ADSERR_DEVICE_INVALIDPARM ReturnCode = 0x70B
+	ReturnCode_ADSERR_DEVICE_NOTFOUND ReturnCode = 0x70C
+	ReturnCode_ADSERR_DEVICE_SYNTAX ReturnCode = 0x70D
+	ReturnCode_ADSERR_DEVICE_INCOMPATIBLE ReturnCode = 0x70E
+	ReturnCode_ADSERR_DEVICE_EXISTS ReturnCode = 0x70F
+	ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND ReturnCode = 0x710
 	ReturnCode_ADSERR_DEVICE_SYMBOLVERSIONINVALID ReturnCode = 0x711
-	ReturnCode_ADSERR_DEVICE_INVALIDSTATE         ReturnCode = 0x712
-	ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP     ReturnCode = 0x713
-	ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID     ReturnCode = 0x714
-	ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN        ReturnCode = 0x715
-	ReturnCode_ADSERR_DEVICE_NOMOREHDLS           ReturnCode = 0x716
-	ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE     ReturnCode = 0x717
-	ReturnCode_ADSERR_DEVICE_NOTINIT              ReturnCode = 0x718
-	ReturnCode_ADSERR_DEVICE_TIMEOUT              ReturnCode = 0x719
-	ReturnCode_ADSERR_DEVICE_NOINTERFACE          ReturnCode = 0x71A
-	ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE     ReturnCode = 0x71B
-	ReturnCode_ADSERR_DEVICE_INVALIDCLSID         ReturnCode = 0x71C
-	ReturnCode_ADSERR_DEVICE_INVALIDOBJID         ReturnCode = 0x71D
-	ReturnCode_ADSERR_DEVICE_PENDING              ReturnCode = 0x71E
-	ReturnCode_ADSERR_DEVICE_ABORTED              ReturnCode = 0x71F
-	ReturnCode_ADSERR_DEVICE_WARNING              ReturnCode = 0x720
-	ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX      ReturnCode = 0x721
-	ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE      ReturnCode = 0x722
-	ReturnCode_ADSERR_DEVICE_ACCESSDENIED         ReturnCode = 0x723
-	ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND      ReturnCode = 0x724
-	ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED       ReturnCode = 0x725
-	ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED      ReturnCode = 0x726
-	ReturnCode_ADSERR_DEVICE_LICENSEINVALID       ReturnCode = 0x727
-	ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID      ReturnCode = 0x728
-	ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT   ReturnCode = 0x729
-	ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE   ReturnCode = 0x72A
-	ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG    ReturnCode = 0x72B
-	ReturnCode_ADSERR_DEVICE_EXCEPTION            ReturnCode = 0x72c
-	ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED    ReturnCode = 0x72D
-	ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID     ReturnCode = 0x72E
-	ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID   ReturnCode = 0x72F
-	ReturnCode_ADSERR_CLIENT_ERROR                ReturnCode = 0x740
-	ReturnCode_ADSERR_CLIENT_INVALIDPARM          ReturnCode = 0x741
-	ReturnCode_ADSERR_CLIENT_LISTEMPTY            ReturnCode = 0x742
-	ReturnCode_ADSERR_CLIENT_VARUSED              ReturnCode = 0x743
-	ReturnCode_ADSERR_CLIENT_DUPLINVOKEID         ReturnCode = 0x744
-	ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT          ReturnCode = 0x745
-	ReturnCode_ADSERR_CLIENT_W32ERROR             ReturnCode = 0x746
-	ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID       ReturnCode = 0x747
-	ReturnCode_ADSERR_CLIENT_PORTNOTOPEN          ReturnCode = 0x748
-	ReturnCode_ADSERR_CLIENT_NOAMSADDR            ReturnCode = 0x750
-	ReturnCode_ADSERR_CLIENT_SYNCINTERNAL         ReturnCode = 0x751
-	ReturnCode_ADSERR_CLIENT_ADDHASH              ReturnCode = 0x752
-	ReturnCode_ADSERR_CLIENT_REMOVEHASH           ReturnCode = 0x753
-	ReturnCode_ADSERR_CLIENT_NOMORESYM            ReturnCode = 0x754
-	ReturnCode_ADSERR_CLIENT_SYNCRESINVALID       ReturnCode = 0x755
-	ReturnCode_RTERR_INTERNAL                     ReturnCode = 0x1000
-	ReturnCode_RTERR_BADTIMERPERIODS              ReturnCode = 0x1001
-	ReturnCode_RTERR_INVALIDTASKPTR               ReturnCode = 0x1002
-	ReturnCode_RTERR_INVALIDSTACKPTR              ReturnCode = 0x1003
-	ReturnCode_RTERR_PRIOEXISTS                   ReturnCode = 0x1004
-	ReturnCode_RTERR_NOMORETCB                    ReturnCode = 0x1005
-	ReturnCode_RTERR_NOMORESEMAS                  ReturnCode = 0x1006
-	ReturnCode_RTERR_NOMOREQUEUES                 ReturnCode = 0x1007
-	ReturnCode_RTERR_EXTIRQALREADYDEF             ReturnCode = 0x100D
-	ReturnCode_RTERR_EXTIRQNOTDEF                 ReturnCode = 0x100E
-	ReturnCode_RTERR_EXTIRQINSTALLFAILED          ReturnCode = 0x100F
-	ReturnCode_RTERR_IRQLNOTLESSOREQUAL           ReturnCode = 0x1010
-	ReturnCode_RTERR_VMXNOTSUPPORTED              ReturnCode = 0x1017
-	ReturnCode_RTERR_VMXDISABLED                  ReturnCode = 0x1018
-	ReturnCode_RTERR_VMXCONTROLSMISSING           ReturnCode = 0x1019
-	ReturnCode_RTERR_VMXENABLEFAILS               ReturnCode = 0x101A
-	ReturnCode_WSAETIMEDOUT                       ReturnCode = 0x274C
-	ReturnCode_WSAECONNREFUSED                    ReturnCode = 0x274D
-	ReturnCode_WSAEHOSTUNREACH                    ReturnCode = 0x2751
+	ReturnCode_ADSERR_DEVICE_INVALIDSTATE ReturnCode = 0x712
+	ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP ReturnCode = 0x713
+	ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID ReturnCode = 0x714
+	ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN ReturnCode = 0x715
+	ReturnCode_ADSERR_DEVICE_NOMOREHDLS ReturnCode = 0x716
+	ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE ReturnCode = 0x717
+	ReturnCode_ADSERR_DEVICE_NOTINIT ReturnCode = 0x718
+	ReturnCode_ADSERR_DEVICE_TIMEOUT ReturnCode = 0x719
+	ReturnCode_ADSERR_DEVICE_NOINTERFACE ReturnCode = 0x71A
+	ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE ReturnCode = 0x71B
+	ReturnCode_ADSERR_DEVICE_INVALIDCLSID ReturnCode = 0x71C
+	ReturnCode_ADSERR_DEVICE_INVALIDOBJID ReturnCode = 0x71D
+	ReturnCode_ADSERR_DEVICE_PENDING ReturnCode = 0x71E
+	ReturnCode_ADSERR_DEVICE_ABORTED ReturnCode = 0x71F
+	ReturnCode_ADSERR_DEVICE_WARNING ReturnCode = 0x720
+	ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX ReturnCode = 0x721
+	ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE ReturnCode = 0x722
+	ReturnCode_ADSERR_DEVICE_ACCESSDENIED ReturnCode = 0x723
+	ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND ReturnCode = 0x724
+	ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED ReturnCode = 0x725
+	ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED ReturnCode = 0x726
+	ReturnCode_ADSERR_DEVICE_LICENSEINVALID ReturnCode = 0x727
+	ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID ReturnCode = 0x728
+	ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT ReturnCode = 0x729
+	ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE ReturnCode = 0x72A
+	ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG ReturnCode = 0x72B
+	ReturnCode_ADSERR_DEVICE_EXCEPTION ReturnCode = 0x72c
+	ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED ReturnCode = 0x72D
+	ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID ReturnCode = 0x72E
+	ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID ReturnCode = 0x72F
+	ReturnCode_ADSERR_CLIENT_ERROR ReturnCode = 0x740
+	ReturnCode_ADSERR_CLIENT_INVALIDPARM ReturnCode = 0x741
+	ReturnCode_ADSERR_CLIENT_LISTEMPTY ReturnCode = 0x742
+	ReturnCode_ADSERR_CLIENT_VARUSED ReturnCode = 0x743
+	ReturnCode_ADSERR_CLIENT_DUPLINVOKEID ReturnCode = 0x744
+	ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT ReturnCode = 0x745
+	ReturnCode_ADSERR_CLIENT_W32ERROR ReturnCode = 0x746
+	ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID ReturnCode = 0x747
+	ReturnCode_ADSERR_CLIENT_PORTNOTOPEN ReturnCode = 0x748
+	ReturnCode_ADSERR_CLIENT_NOAMSADDR ReturnCode = 0x750
+	ReturnCode_ADSERR_CLIENT_SYNCINTERNAL ReturnCode = 0x751
+	ReturnCode_ADSERR_CLIENT_ADDHASH ReturnCode = 0x752
+	ReturnCode_ADSERR_CLIENT_REMOVEHASH ReturnCode = 0x753
+	ReturnCode_ADSERR_CLIENT_NOMORESYM ReturnCode = 0x754
+	ReturnCode_ADSERR_CLIENT_SYNCRESINVALID ReturnCode = 0x755
+	ReturnCode_RTERR_INTERNAL ReturnCode = 0x1000
+	ReturnCode_RTERR_BADTIMERPERIODS ReturnCode = 0x1001
+	ReturnCode_RTERR_INVALIDTASKPTR ReturnCode = 0x1002
+	ReturnCode_RTERR_INVALIDSTACKPTR ReturnCode = 0x1003
+	ReturnCode_RTERR_PRIOEXISTS ReturnCode = 0x1004
+	ReturnCode_RTERR_NOMORETCB ReturnCode = 0x1005
+	ReturnCode_RTERR_NOMORESEMAS ReturnCode = 0x1006
+	ReturnCode_RTERR_NOMOREQUEUES ReturnCode = 0x1007
+	ReturnCode_RTERR_EXTIRQALREADYDEF ReturnCode = 0x100D
+	ReturnCode_RTERR_EXTIRQNOTDEF ReturnCode = 0x100E
+	ReturnCode_RTERR_EXTIRQINSTALLFAILED ReturnCode = 0x100F
+	ReturnCode_RTERR_IRQLNOTLESSOREQUAL ReturnCode = 0x1010
+	ReturnCode_RTERR_VMXNOTSUPPORTED ReturnCode = 0x1017
+	ReturnCode_RTERR_VMXDISABLED ReturnCode = 0x1018
+	ReturnCode_RTERR_VMXCONTROLSMISSING ReturnCode = 0x1019
+	ReturnCode_RTERR_VMXENABLEFAILS ReturnCode = 0x101A
+	ReturnCode_WSAETIMEDOUT ReturnCode = 0x274C
+	ReturnCode_WSAECONNREFUSED ReturnCode = 0x274D
+	ReturnCode_WSAEHOSTUNREACH ReturnCode = 0x2751
 )
 
 var ReturnCodeValues []ReturnCode
 
 func init() {
 	_ = errors.New
-	ReturnCodeValues = []ReturnCode{
+	ReturnCodeValues = []ReturnCode {
 		ReturnCode_OK,
 		ReturnCode_INTERNAL_ERROR,
 		ReturnCode_NO_REALTIME,
@@ -289,250 +289,250 @@ func init() {
 
 func ReturnCodeByValue(value uint32) ReturnCode {
 	switch value {
-	case 0x00:
-		return ReturnCode_OK
-	case 0x01:
-		return ReturnCode_INTERNAL_ERROR
-	case 0x02:
-		return ReturnCode_NO_REALTIME
-	case 0x03:
-		return ReturnCode_SAVE_ERROR
-	case 0x04:
-		return ReturnCode_MAILBOX_FULL
-	case 0x05:
-		return ReturnCode_WRONG_HMSG
-	case 0x06:
-		return ReturnCode_TARGET_PORT_NOT_FOUND
-	case 0x07:
-		return ReturnCode_TARGET_HOST_NOT_FOUND
-	case 0x08:
-		return ReturnCode_UNKNOWN_COMMAND_ID
-	case 0x09:
-		return ReturnCode_UNKNOWN_TASK_ID
-	case 0x0A:
-		return ReturnCode_NO_IO
-	case 0x0B:
-		return ReturnCode_UNKNOWN_ADS_COMMAND
-	case 0x0C:
-		return ReturnCode_WIN32_ERROR
-	case 0x0D:
-		return ReturnCode_PORT_NOT_CONNECTED
-	case 0x0E:
-		return ReturnCode_INVALID_ADS_LENGTH
-	case 0x0F:
-		return ReturnCode_INVALID_AMS_NET_ID
-	case 0x10:
-		return ReturnCode_LOW_INSTALLATION_LEVEL
-	case 0x1000:
-		return ReturnCode_RTERR_INTERNAL
-	case 0x1001:
-		return ReturnCode_RTERR_BADTIMERPERIODS
-	case 0x1002:
-		return ReturnCode_RTERR_INVALIDTASKPTR
-	case 0x1003:
-		return ReturnCode_RTERR_INVALIDSTACKPTR
-	case 0x1004:
-		return ReturnCode_RTERR_PRIOEXISTS
-	case 0x1005:
-		return ReturnCode_RTERR_NOMORETCB
-	case 0x1006:
-		return ReturnCode_RTERR_NOMORESEMAS
-	case 0x1007:
-		return ReturnCode_RTERR_NOMOREQUEUES
-	case 0x100D:
-		return ReturnCode_RTERR_EXTIRQALREADYDEF
-	case 0x100E:
-		return ReturnCode_RTERR_EXTIRQNOTDEF
-	case 0x100F:
-		return ReturnCode_RTERR_EXTIRQINSTALLFAILED
-	case 0x1010:
-		return ReturnCode_RTERR_IRQLNOTLESSOREQUAL
-	case 0x1017:
-		return ReturnCode_RTERR_VMXNOTSUPPORTED
-	case 0x1018:
-		return ReturnCode_RTERR_VMXDISABLED
-	case 0x1019:
-		return ReturnCode_RTERR_VMXCONTROLSMISSING
-	case 0x101A:
-		return ReturnCode_RTERR_VMXENABLEFAILS
-	case 0x11:
-		return ReturnCode_NO_DEBUGGING_AVAILABLE
-	case 0x12:
-		return ReturnCode_PORT_DEACTIVATED
-	case 0x13:
-		return ReturnCode_PORT_ALREADY_CONNECTED
-	case 0x14:
-		return ReturnCode_ADS_SYNC_WIN32_ERROR
-	case 0x15:
-		return ReturnCode_ADS_SYNC_TIMEOUT
-	case 0x16:
-		return ReturnCode_ADS_SYNC_AMS_ERROR
-	case 0x17:
-		return ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE
-	case 0x18:
-		return ReturnCode_INVALID_ADS_PORT
-	case 0x19:
-		return ReturnCode_NO_MEMORY
-	case 0x1A:
-		return ReturnCode_TCP_SENDING_ERROR
-	case 0x1B:
-		return ReturnCode_HOST_NOT_REACHABLE
-	case 0x1C:
-		return ReturnCode_INVALID_AMS_FRAGMENT
-	case 0x274C:
-		return ReturnCode_WSAETIMEDOUT
-	case 0x274D:
-		return ReturnCode_WSAECONNREFUSED
-	case 0x2751:
-		return ReturnCode_WSAEHOSTUNREACH
-	case 0x500:
-		return ReturnCode_ROUTERERR_NOLOCKEDMEMORY
-	case 0x501:
-		return ReturnCode_ROUTERERR_RESIZEMEMORY
-	case 0x502:
-		return ReturnCode_ROUTERERR_MAILBOXFULL
-	case 0x503:
-		return ReturnCode_ROUTERERR_DEBUGBOXFULL
-	case 0x504:
-		return ReturnCode_ROUTERERR_UNKNOWNPORTTYPE
-	case 0x505:
-		return ReturnCode_ROUTERERR_NOTINITIALIZED
-	case 0x506:
-		return ReturnCode_ROUTERERR_PORTALREADYINUSE
-	case 0x507:
-		return ReturnCode_ROUTERERR_NOTREGISTERED
-	case 0x508:
-		return ReturnCode_ROUTERERR_NOMOREQUEUES
-	case 0x509:
-		return ReturnCode_ROUTERERR_INVALIDPORT
-	case 0x50A:
-		return ReturnCode_ROUTERERR_NOTACTIVATED
-	case 0x700:
-		return ReturnCode_ADSERR_DEVICE_ERROR
-	case 0x701:
-		return ReturnCode_ADSERR_DEVICE_SRVNOTSUPP
-	case 0x702:
-		return ReturnCode_ADSERR_DEVICE_INVALIDGRP
-	case 0x703:
-		return ReturnCode_ADSERR_DEVICE_INVALIDOFFSET
-	case 0x704:
-		return ReturnCode_ADSERR_DEVICE_INVALIDACCESS
-	case 0x705:
-		return ReturnCode_ADSERR_DEVICE_INVALIDSIZE
-	case 0x706:
-		return ReturnCode_ADSERR_DEVICE_INVALIDDATA
-	case 0x707:
-		return ReturnCode_ADSERR_DEVICE_NOTREADY
-	case 0x708:
-		return ReturnCode_ADSERR_DEVICE_BUSY
-	case 0x709:
-		return ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT
-	case 0x70A:
-		return ReturnCode_ADSERR_DEVICE_NOMEMORY
-	case 0x70B:
-		return ReturnCode_ADSERR_DEVICE_INVALIDPARM
-	case 0x70C:
-		return ReturnCode_ADSERR_DEVICE_NOTFOUND
-	case 0x70D:
-		return ReturnCode_ADSERR_DEVICE_SYNTAX
-	case 0x70E:
-		return ReturnCode_ADSERR_DEVICE_INCOMPATIBLE
-	case 0x70F:
-		return ReturnCode_ADSERR_DEVICE_EXISTS
-	case 0x710:
-		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND
-	case 0x711:
-		return ReturnCode_ADSERR_DEVICE_SYMBOLVERSIONINVALID
-	case 0x712:
-		return ReturnCode_ADSERR_DEVICE_INVALIDSTATE
-	case 0x713:
-		return ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP
-	case 0x714:
-		return ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID
-	case 0x715:
-		return ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN
-	case 0x716:
-		return ReturnCode_ADSERR_DEVICE_NOMOREHDLS
-	case 0x717:
-		return ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE
-	case 0x718:
-		return ReturnCode_ADSERR_DEVICE_NOTINIT
-	case 0x719:
-		return ReturnCode_ADSERR_DEVICE_TIMEOUT
-	case 0x71A:
-		return ReturnCode_ADSERR_DEVICE_NOINTERFACE
-	case 0x71B:
-		return ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE
-	case 0x71C:
-		return ReturnCode_ADSERR_DEVICE_INVALIDCLSID
-	case 0x71D:
-		return ReturnCode_ADSERR_DEVICE_INVALIDOBJID
-	case 0x71E:
-		return ReturnCode_ADSERR_DEVICE_PENDING
-	case 0x71F:
-		return ReturnCode_ADSERR_DEVICE_ABORTED
-	case 0x720:
-		return ReturnCode_ADSERR_DEVICE_WARNING
-	case 0x721:
-		return ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX
-	case 0x722:
-		return ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE
-	case 0x723:
-		return ReturnCode_ADSERR_DEVICE_ACCESSDENIED
-	case 0x724:
-		return ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND
-	case 0x725:
-		return ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED
-	case 0x726:
-		return ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED
-	case 0x727:
-		return ReturnCode_ADSERR_DEVICE_LICENSEINVALID
-	case 0x728:
-		return ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID
-	case 0x729:
-		return ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT
-	case 0x72A:
-		return ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE
-	case 0x72B:
-		return ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG
-	case 0x72D:
-		return ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED
-	case 0x72E:
-		return ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID
-	case 0x72F:
-		return ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID
-	case 0x72c:
-		return ReturnCode_ADSERR_DEVICE_EXCEPTION
-	case 0x740:
-		return ReturnCode_ADSERR_CLIENT_ERROR
-	case 0x741:
-		return ReturnCode_ADSERR_CLIENT_INVALIDPARM
-	case 0x742:
-		return ReturnCode_ADSERR_CLIENT_LISTEMPTY
-	case 0x743:
-		return ReturnCode_ADSERR_CLIENT_VARUSED
-	case 0x744:
-		return ReturnCode_ADSERR_CLIENT_DUPLINVOKEID
-	case 0x745:
-		return ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT
-	case 0x746:
-		return ReturnCode_ADSERR_CLIENT_W32ERROR
-	case 0x747:
-		return ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID
-	case 0x748:
-		return ReturnCode_ADSERR_CLIENT_PORTNOTOPEN
-	case 0x750:
-		return ReturnCode_ADSERR_CLIENT_NOAMSADDR
-	case 0x751:
-		return ReturnCode_ADSERR_CLIENT_SYNCINTERNAL
-	case 0x752:
-		return ReturnCode_ADSERR_CLIENT_ADDHASH
-	case 0x753:
-		return ReturnCode_ADSERR_CLIENT_REMOVEHASH
-	case 0x754:
-		return ReturnCode_ADSERR_CLIENT_NOMORESYM
-	case 0x755:
-		return ReturnCode_ADSERR_CLIENT_SYNCRESINVALID
+		case 0x00:
+			return ReturnCode_OK
+		case 0x01:
+			return ReturnCode_INTERNAL_ERROR
+		case 0x02:
+			return ReturnCode_NO_REALTIME
+		case 0x03:
+			return ReturnCode_SAVE_ERROR
+		case 0x04:
+			return ReturnCode_MAILBOX_FULL
+		case 0x05:
+			return ReturnCode_WRONG_HMSG
+		case 0x06:
+			return ReturnCode_TARGET_PORT_NOT_FOUND
+		case 0x07:
+			return ReturnCode_TARGET_HOST_NOT_FOUND
+		case 0x08:
+			return ReturnCode_UNKNOWN_COMMAND_ID
+		case 0x09:
+			return ReturnCode_UNKNOWN_TASK_ID
+		case 0x0A:
+			return ReturnCode_NO_IO
+		case 0x0B:
+			return ReturnCode_UNKNOWN_ADS_COMMAND
+		case 0x0C:
+			return ReturnCode_WIN32_ERROR
+		case 0x0D:
+			return ReturnCode_PORT_NOT_CONNECTED
+		case 0x0E:
+			return ReturnCode_INVALID_ADS_LENGTH
+		case 0x0F:
+			return ReturnCode_INVALID_AMS_NET_ID
+		case 0x10:
+			return ReturnCode_LOW_INSTALLATION_LEVEL
+		case 0x1000:
+			return ReturnCode_RTERR_INTERNAL
+		case 0x1001:
+			return ReturnCode_RTERR_BADTIMERPERIODS
+		case 0x1002:
+			return ReturnCode_RTERR_INVALIDTASKPTR
+		case 0x1003:
+			return ReturnCode_RTERR_INVALIDSTACKPTR
+		case 0x1004:
+			return ReturnCode_RTERR_PRIOEXISTS
+		case 0x1005:
+			return ReturnCode_RTERR_NOMORETCB
+		case 0x1006:
+			return ReturnCode_RTERR_NOMORESEMAS
+		case 0x1007:
+			return ReturnCode_RTERR_NOMOREQUEUES
+		case 0x100D:
+			return ReturnCode_RTERR_EXTIRQALREADYDEF
+		case 0x100E:
+			return ReturnCode_RTERR_EXTIRQNOTDEF
+		case 0x100F:
+			return ReturnCode_RTERR_EXTIRQINSTALLFAILED
+		case 0x1010:
+			return ReturnCode_RTERR_IRQLNOTLESSOREQUAL
+		case 0x1017:
+			return ReturnCode_RTERR_VMXNOTSUPPORTED
+		case 0x1018:
+			return ReturnCode_RTERR_VMXDISABLED
+		case 0x1019:
+			return ReturnCode_RTERR_VMXCONTROLSMISSING
+		case 0x101A:
+			return ReturnCode_RTERR_VMXENABLEFAILS
+		case 0x11:
+			return ReturnCode_NO_DEBUGGING_AVAILABLE
+		case 0x12:
+			return ReturnCode_PORT_DEACTIVATED
+		case 0x13:
+			return ReturnCode_PORT_ALREADY_CONNECTED
+		case 0x14:
+			return ReturnCode_ADS_SYNC_WIN32_ERROR
+		case 0x15:
+			return ReturnCode_ADS_SYNC_TIMEOUT
+		case 0x16:
+			return ReturnCode_ADS_SYNC_AMS_ERROR
+		case 0x17:
+			return ReturnCode_NO_INDEX_MAP_FOR_ADS_AVAILABLE
+		case 0x18:
+			return ReturnCode_INVALID_ADS_PORT
+		case 0x19:
+			return ReturnCode_NO_MEMORY
+		case 0x1A:
+			return ReturnCode_TCP_SENDING_ERROR
+		case 0x1B:
+			return ReturnCode_HOST_NOT_REACHABLE
+		case 0x1C:
+			return ReturnCode_INVALID_AMS_FRAGMENT
+		case 0x274C:
+			return ReturnCode_WSAETIMEDOUT
+		case 0x274D:
+			return ReturnCode_WSAECONNREFUSED
+		case 0x2751:
+			return ReturnCode_WSAEHOSTUNREACH
+		case 0x500:
+			return ReturnCode_ROUTERERR_NOLOCKEDMEMORY
+		case 0x501:
+			return ReturnCode_ROUTERERR_RESIZEMEMORY
+		case 0x502:
+			return ReturnCode_ROUTERERR_MAILBOXFULL
+		case 0x503:
+			return ReturnCode_ROUTERERR_DEBUGBOXFULL
+		case 0x504:
+			return ReturnCode_ROUTERERR_UNKNOWNPORTTYPE
+		case 0x505:
+			return ReturnCode_ROUTERERR_NOTINITIALIZED
+		case 0x506:
+			return ReturnCode_ROUTERERR_PORTALREADYINUSE
+		case 0x507:
+			return ReturnCode_ROUTERERR_NOTREGISTERED
+		case 0x508:
+			return ReturnCode_ROUTERERR_NOMOREQUEUES
+		case 0x509:
+			return ReturnCode_ROUTERERR_INVALIDPORT
+		case 0x50A:
+			return ReturnCode_ROUTERERR_NOTACTIVATED
+		case 0x700:
+			return ReturnCode_ADSERR_DEVICE_ERROR
+		case 0x701:
+			return ReturnCode_ADSERR_DEVICE_SRVNOTSUPP
+		case 0x702:
+			return ReturnCode_ADSERR_DEVICE_INVALIDGRP
+		case 0x703:
+			return ReturnCode_ADSERR_DEVICE_INVALIDOFFSET
+		case 0x704:
+			return ReturnCode_ADSERR_DEVICE_INVALIDACCESS
+		case 0x705:
+			return ReturnCode_ADSERR_DEVICE_INVALIDSIZE
+		case 0x706:
+			return ReturnCode_ADSERR_DEVICE_INVALIDDATA
+		case 0x707:
+			return ReturnCode_ADSERR_DEVICE_NOTREADY
+		case 0x708:
+			return ReturnCode_ADSERR_DEVICE_BUSY
+		case 0x709:
+			return ReturnCode_ADSERR_DEVICE_INVALIDCONTEXT
+		case 0x70A:
+			return ReturnCode_ADSERR_DEVICE_NOMEMORY
+		case 0x70B:
+			return ReturnCode_ADSERR_DEVICE_INVALIDPARM
+		case 0x70C:
+			return ReturnCode_ADSERR_DEVICE_NOTFOUND
+		case 0x70D:
+			return ReturnCode_ADSERR_DEVICE_SYNTAX
+		case 0x70E:
+			return ReturnCode_ADSERR_DEVICE_INCOMPATIBLE
+		case 0x70F:
+			return ReturnCode_ADSERR_DEVICE_EXISTS
+		case 0x710:
+			return ReturnCode_ADSERR_DEVICE_SYMBOLNOTFOUND
+		case 0x711:
+			return ReturnCode_ADSERR_DEVICE_SYMBOLVERSIONINVALID
+		case 0x712:
+			return ReturnCode_ADSERR_DEVICE_INVALIDSTATE
+		case 0x713:
+			return ReturnCode_ADSERR_DEVICE_TRANSMODENOTSUPP
+		case 0x714:
+			return ReturnCode_ADSERR_DEVICE_NOTIFYHNDINVALID
+		case 0x715:
+			return ReturnCode_ADSERR_DEVICE_CLIENTUNKNOWN
+		case 0x716:
+			return ReturnCode_ADSERR_DEVICE_NOMOREHDLS
+		case 0x717:
+			return ReturnCode_ADSERR_DEVICE_INVALIDWATCHSIZE
+		case 0x718:
+			return ReturnCode_ADSERR_DEVICE_NOTINIT
+		case 0x719:
+			return ReturnCode_ADSERR_DEVICE_TIMEOUT
+		case 0x71A:
+			return ReturnCode_ADSERR_DEVICE_NOINTERFACE
+		case 0x71B:
+			return ReturnCode_ADSERR_DEVICE_INVALIDINTERFACE
+		case 0x71C:
+			return ReturnCode_ADSERR_DEVICE_INVALIDCLSID
+		case 0x71D:
+			return ReturnCode_ADSERR_DEVICE_INVALIDOBJID
+		case 0x71E:
+			return ReturnCode_ADSERR_DEVICE_PENDING
+		case 0x71F:
+			return ReturnCode_ADSERR_DEVICE_ABORTED
+		case 0x720:
+			return ReturnCode_ADSERR_DEVICE_WARNING
+		case 0x721:
+			return ReturnCode_ADSERR_DEVICE_INVALIDARRAYIDX
+		case 0x722:
+			return ReturnCode_ADSERR_DEVICE_SYMBOLNOTACTIVE
+		case 0x723:
+			return ReturnCode_ADSERR_DEVICE_ACCESSDENIED
+		case 0x724:
+			return ReturnCode_ADSERR_DEVICE_LICENSENOTFOUND
+		case 0x725:
+			return ReturnCode_ADSERR_DEVICE_LICENSEEXPIRED
+		case 0x726:
+			return ReturnCode_ADSERR_DEVICE_LICENSEEXCEEDED
+		case 0x727:
+			return ReturnCode_ADSERR_DEVICE_LICENSEINVALID
+		case 0x728:
+			return ReturnCode_ADSERR_DEVICE_LICENSESYSTEMID
+		case 0x729:
+			return ReturnCode_ADSERR_DEVICE_LICENSENOTIMELIMIT
+		case 0x72A:
+			return ReturnCode_ADSERR_DEVICE_LICENSEFUTUREISSUE
+		case 0x72B:
+			return ReturnCode_ADSERR_DEVICE_LICENSETIMETOLONG
+		case 0x72D:
+			return ReturnCode_ADSERR_DEVICE_LICENSEDUPLICATED
+		case 0x72E:
+			return ReturnCode_ADSERR_DEVICE_SIGNATUREINVALID
+		case 0x72F:
+			return ReturnCode_ADSERR_DEVICE_CERTIFICATEINVALID
+		case 0x72c:
+			return ReturnCode_ADSERR_DEVICE_EXCEPTION
+		case 0x740:
+			return ReturnCode_ADSERR_CLIENT_ERROR
+		case 0x741:
+			return ReturnCode_ADSERR_CLIENT_INVALIDPARM
+		case 0x742:
+			return ReturnCode_ADSERR_CLIENT_LISTEMPTY
+		case 0x743:
+			return ReturnCode_ADSERR_CLIENT_VARUSED
+		case 0x744:
+			return ReturnCode_ADSERR_CLIENT_DUPLINVOKEID
+		case 0x745:
+			return ReturnCode_ADSERR_CLIENT_SYNCTIMEOUT
+		case 0x746:
+			return ReturnCode_ADSERR_CLIENT_W32ERROR
+		case 0x747:
+			return ReturnCode_ADSERR_CLIENT_TIMEOUTINVALID
+		case 0x748:
+			return ReturnCode_ADSERR_CLIENT_PORTNOTOPEN
+		case 0x750:
+			return ReturnCode_ADSERR_CLIENT_NOAMSADDR
+		case 0x751:
+			return ReturnCode_ADSERR_CLIENT_SYNCINTERNAL
+		case 0x752:
+			return ReturnCode_ADSERR_CLIENT_ADDHASH
+		case 0x753:
+			return ReturnCode_ADSERR_CLIENT_REMOVEHASH
+		case 0x754:
+			return ReturnCode_ADSERR_CLIENT_NOMORESYM
+		case 0x755:
+			return ReturnCode_ADSERR_CLIENT_SYNCRESINVALID
 	}
 	return 0
 }
@@ -1070,3 +1070,4 @@ func (e ReturnCode) name() string {
 func (e ReturnCode) String() string {
 	return e.name()
 }
+
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/State.go b/plc4go/internal/plc4go/ads/readwrite/model/State.go
index e3ad1f8..4c6633d 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/State.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/State.go
@@ -19,25 +19,27 @@
 
 package model
 
+
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 	"github.com/rs/zerolog/log"
 )
 
-// Code generated by code-generation. DO NOT EDIT.
+	// Code generated by code-generation. DO NOT EDIT.
+
 
 // The data-structure of this message
 type State struct {
-	InitCommand         bool
-	UpdCommand          bool
-	TimestampAdded      bool
+	InitCommand bool
+	UpdCommand bool
+	TimestampAdded bool
 	HighPriorityCommand bool
-	SystemCommand       bool
-	AdsCommand          bool
-	NoReturn            bool
-	Response            bool
-	Broadcast           bool
+	SystemCommand bool
+	AdsCommand bool
+	NoReturn bool
+	Response bool
+	Broadcast bool
 }
 
 // The corresponding interface
@@ -76,31 +78,31 @@ func (m *State) LengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (initCommand)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (updCommand)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (timestampAdded)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (highPriorityCommand)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (systemCommand)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (adsCommand)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (noReturn)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (response)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Simple field (broadcast)
-	lengthInBits += 1
+	lengthInBits += 1;
 
 	// Reserved Field (reserved)
 	lengthInBits += 7
@@ -108,6 +110,7 @@ func (m *State) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
+
 func (m *State) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -118,55 +121,55 @@ func StateParse(readBuffer utils.ReadBuffer) (*State, error) {
 	}
 
 	// Simple Field (initCommand)
-	initCommand, _initCommandErr := readBuffer.ReadBit("initCommand")
+initCommand, _initCommandErr := readBuffer.ReadBit("initCommand")
 	if _initCommandErr != nil {
 		return nil, errors.Wrap(_initCommandErr, "Error parsing 'initCommand' field")
 	}
 
 	// Simple Field (updCommand)
-	updCommand, _updCommandErr := readBuffer.ReadBit("updCommand")
+updCommand, _updCommandErr := readBuffer.ReadBit("updCommand")
 	if _updCommandErr != nil {
 		return nil, errors.Wrap(_updCommandErr, "Error parsing 'updCommand' field")
 	}
 
 	// Simple Field (timestampAdded)
-	timestampAdded, _timestampAddedErr := readBuffer.ReadBit("timestampAdded")
+timestampAdded, _timestampAddedErr := readBuffer.ReadBit("timestampAdded")
 	if _timestampAddedErr != nil {
 		return nil, errors.Wrap(_timestampAddedErr, "Error parsing 'timestampAdded' field")
 	}
 
 	// Simple Field (highPriorityCommand)
-	highPriorityCommand, _highPriorityCommandErr := readBuffer.ReadBit("highPriorityCommand")
+highPriorityCommand, _highPriorityCommandErr := readBuffer.ReadBit("highPriorityCommand")
 	if _highPriorityCommandErr != nil {
 		return nil, errors.Wrap(_highPriorityCommandErr, "Error parsing 'highPriorityCommand' field")
... 886 lines suppressed ...