You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/05/20 15:30:02 UTC

[plc4x] branch develop updated: refactor(bacnet): externalized opening and closing tag

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

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 080e2b9e1a refactor(bacnet): externalized opening and closing tag
080e2b9e1a is described below

commit 080e2b9e1a1ef4674e49524b99eace1404aed514
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri May 20 17:29:55 2022 +0200

    refactor(bacnet): externalized opening and closing tag
---
 .../protocols/bacnet/ParserSerializerTestsuite.xml | 264 +++++++-------------
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |  12 +
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   |  14 ++
 .../bacnetip/readwrite/model/BACnetActionList.go   |   4 +-
 .../bacnetip/readwrite/model/BACnetClosingTag.go   | 102 ++++----
 ...edServiceRequestAtomicReadFileStreamOrRecord.go |   4 +-
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |   4 +-
 ...medServiceRequestCreateObjectObjectSpecifier.go |   4 +-
 .../BACnetConfirmedServiceRequestReadRangeRange.go |   4 +-
 ...yMultipleListOfCovSubscriptionSpecifications.go |   4 +-
 ...tipleListOfCovSubscriptionSpecificationsList.go |   4 +-
 .../readwrite/model/BACnetConstructedData.go       |   4 +-
 .../bacnetip/readwrite/model/BACnetContextTag.go   |  52 ++--
 .../readwrite/model/BACnetContextTagBitString.go   |  12 +-
 .../readwrite/model/BACnetContextTagBoolean.go     |  12 +-
 .../model/BACnetContextTagCharacterString.go       |  12 +-
 .../readwrite/model/BACnetContextTagDate.go        |  12 +-
 .../readwrite/model/BACnetContextTagDouble.go      |  12 +-
 .../readwrite/model/BACnetContextTagEnumerated.go  |  12 +-
 .../readwrite/model/BACnetContextTagNull.go        |  12 +-
 .../model/BACnetContextTagObjectIdentifier.go      |  12 +-
 .../readwrite/model/BACnetContextTagOctetString.go |  12 +-
 .../readwrite/model/BACnetContextTagReal.go        |  12 +-
 .../model/BACnetContextTagSignedInteger.go         |  12 +-
 .../readwrite/model/BACnetContextTagTime.go        |  12 +-
 .../model/BACnetContextTagUnsignedInteger.go       |  12 +-
 .../bacnetip/readwrite/model/BACnetDataType.go     |  16 --
 .../readwrite/model/BACnetDateTimeEnclosed.go      |   4 +-
 .../BACnetDeviceObjectPropertyReferenceEnclosed.go |   4 +-
 .../readwrite/model/BACnetEventProrities.go        |   4 +-
 .../readwrite/model/BACnetEventSummariesList.go    |   4 +-
 .../readwrite/model/BACnetEventTimestamps.go       |   4 +-
 .../model/BACnetNotificationParameters.go          |   4 +-
 .../BACnetNotificationParametersBufferReady.go     |   4 +-
 ...ACnetNotificationParametersChangeOfBitString.go |   4 +-
 .../BACnetNotificationParametersChangeOfState.go   |   4 +-
 .../BACnetNotificationParametersChangeOfValue.go   |   4 +-
 ...tNotificationParametersChangeOfValueNewValue.go |   4 +-
 .../BACnetNotificationParametersCommandFailure.go  |   4 +-
 .../model/BACnetNotificationParametersExtended.go  |   4 +-
 ...CnetNotificationParametersExtendedParameters.go |   4 +-
 .../BACnetNotificationParametersFloatingLimit.go   |   4 +-
 .../BACnetNotificationParametersOutOfRange.go      |   4 +-
 .../BACnetNotificationParametersUnsignedRange.go   |   4 +-
 .../model/BACnetObjectPropertyReferenceEnclosed.go |   4 +-
 .../bacnetip/readwrite/model/BACnetOpeningTag.go   | 102 ++++----
 .../model/BACnetPropertyReferenceEnclosed.go       |   4 +-
 .../readwrite/model/BACnetPropertyStates.go        |   4 +-
 .../readwrite/model/BACnetPropertyValues.go        |   4 +-
 .../model/BACnetReadAccessPropertyError.go         | 265 ---------------------
 .../model/BACnetReadAccessResultListOfResults.go   |   4 +-
 .../model/BACnetReadAccessSpecification.go         |   4 +-
 ...BACnetServiceAckAtomicReadFileStreamOrRecord.go |   4 +-
 .../readwrite/model/BACnetTimeStampEnclosed.go     |   4 +-
 .../readwrite/model/BACnetTimeStampsEnclosed.go    |   4 +-
 .../model/BACnetWriteAccessSpecification.go        |   4 +-
 .../bacnetip/readwrite/model/ErrorEnclosed.go      |   4 +-
 .../readwrite/model/ListOfCovNotifications.go      |   4 +-
 .../readwrite/model/ListOfCovNotificationsList.go  |   4 +-
 .../bacnetip/readwrite/model/StaticHelper.go       |  30 +--
 ...PropertyMultipleErrorFirstFailedSubscription.go |   4 +-
 .../VTCloseErrorListOfVTSessionIdentifiers.go      |   4 +-
 .../bacnetip/readwrite/utils/StaticHelper.java     |  30 +--
 .../resources/protocols/bacnetip/bacnetip.mspec    | 251 +++++++++----------
 .../protocols/bacnet/ParserSerializerTestsuite.xml | 264 +++++++-------------
 65 files changed, 599 insertions(+), 1119 deletions(-)

diff --git a/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml b/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml
index c3cba604ad..4e5745fb3a 100644
--- a/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml
+++ b/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml
@@ -886,7 +886,7 @@
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -896,9 +896,7 @@
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -969,7 +967,7 @@ make -f demo/object/ai</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -979,9 +977,7 @@ make -f demo/object/ai</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1155,7 +1151,7 @@ make -f demo/object/ai</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1165,9 +1161,7 @@ make -f demo/object/ai</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -1232,7 +1226,7 @@ make -f awf.mak</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1242,9 +1236,7 @@ make -f awf.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1418,7 +1410,7 @@ make -f awf.mak</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1428,9 +1420,7 @@ make -f awf.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -1498,7 +1488,7 @@ make -f bacstr.mak</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1508,9 +1498,7 @@ make -f bacstr.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1684,7 +1672,7 @@ make -f bacstr.mak</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1694,9 +1682,7 @@ make -f bacstr.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -1761,7 +1747,7 @@ make -f crc.mak clean</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1771,9 +1757,7 @@ make -f crc.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1947,7 +1931,7 @@ make -f crc.mak clean</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1957,9 +1941,7 @@ make -f crc.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2025,7 +2007,7 @@ make -f demo/object/lsp.</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2035,9 +2017,7 @@ make -f demo/object/lsp.</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -2211,7 +2191,7 @@ make -f demo/object/lsp.</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2221,9 +2201,7 @@ make -f demo/object/lsp.</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2292,7 +2270,7 @@ make</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2302,9 +2280,7 @@ make</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -2478,7 +2454,7 @@ make</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2488,9 +2464,7 @@ make</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2560,7 +2534,7 @@ make -f tsm.mak cle</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2570,9 +2544,7 @@ make -f tsm.mak cle</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -2746,7 +2718,7 @@ make -f tsm.mak cle</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2756,9 +2728,7 @@ make -f tsm.mak cle</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2821,7 +2791,7 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2831,9 +2801,7 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -4632,7 +4600,7 @@ make -f wp.mak clean</value>
                           <values>
                             <BACnetConstructedData>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -4642,9 +4610,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConstructedDataUnspecified>
                                 <data isList="true">
@@ -4923,7 +4889,7 @@ make -f wp.mak clean</value>
                                 </data>
                               </BACnetConstructedDataUnspecified>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -4933,9 +4899,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConstructedData>
                           </values>
@@ -5082,7 +5046,7 @@ make -f wp.mak clean</value>
                           <listOfValues>
                             <BACnetPropertyValues>
                               <innerOpeningTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">4</tagNumber>
@@ -5092,9 +5056,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </innerOpeningTag>
                               <data isList="true">
                                 <BACnetPropertyValue>
@@ -5117,7 +5079,7 @@ make -f wp.mak clean</value>
                                       <constructedData>
                                         <BACnetConstructedData>
                                           <openingTag>
-                                            <BACnetContextTag>
+                                            <BACnetOpeningTag>
                                               <header>
                                                 <BACnetTagHeader>
                                                   <tagNumber dataType="uint" bitLength="4">2</tagNumber>
@@ -5127,9 +5089,7 @@ make -f wp.mak clean</value>
                                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                                 </BACnetTagHeader>
                                               </header>
-                                              <BACnetOpeningTag>
-                                              </BACnetOpeningTag>
-                                            </BACnetContextTag>
+                                            </BACnetOpeningTag>
                                           </openingTag>
                                           <BACnetConstructedDataUnspecified>
                                             <data isList="true">
@@ -5158,7 +5118,7 @@ make -f wp.mak clean</value>
                                             </data>
                                           </BACnetConstructedDataUnspecified>
                                           <closingTag>
-                                            <BACnetContextTag>
+                                            <BACnetClosingTag>
                                               <header>
                                                 <BACnetTagHeader>
                                                   <tagNumber dataType="uint" bitLength="4">2</tagNumber>
@@ -5168,9 +5128,7 @@ make -f wp.mak clean</value>
                                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                                 </BACnetTagHeader>
                                               </header>
-                                              <BACnetClosingTag>
-                                              </BACnetClosingTag>
-                                            </BACnetContextTag>
+                                            </BACnetClosingTag>
                                           </closingTag>
                                         </BACnetConstructedData>
                                       </constructedData>
@@ -5179,7 +5137,7 @@ make -f wp.mak clean</value>
                                 </BACnetPropertyValue>
                               </data>
                               <innerClosingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">4</tagNumber>
@@ -5189,9 +5147,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </innerClosingTag>
                             </BACnetPropertyValues>
                           </listOfValues>
@@ -5533,7 +5489,7 @@ make -f wp.mak clean</value>
                           <propertyValue>
                             <BACnetConstructedData>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -5543,9 +5499,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConstructedDataUnspecified>
                                 <data isList="true">
@@ -5569,7 +5523,7 @@ make -f wp.mak clean</value>
                                 </data>
                               </BACnetConstructedDataUnspecified>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -5579,9 +5533,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConstructedData>
                           </propertyValue>
@@ -8423,7 +8375,7 @@ make -f wp.mak clean</value>
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8433,9 +8385,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -8480,7 +8430,7 @@ make -f wp.mak clean</value>
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8490,9 +8440,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -8580,7 +8528,7 @@ make -f wp.mak clean</value>
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8590,9 +8538,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -8663,7 +8609,7 @@ Test "BACnet Applicat</value>
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8673,9 +8619,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -8771,7 +8715,7 @@ Test "BACnet Applicat</value>
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8781,9 +8725,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -8828,7 +8770,7 @@ Test "BACnet Applicat</value>
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8838,9 +8780,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -8928,7 +8868,7 @@ Test "BACnet Applicat</value>
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8938,9 +8878,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9016,7 +8954,7 @@ Test "BACnet I-Am":
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9026,9 +8964,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9124,7 +9060,7 @@ Test "BACnet I-Am":
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9134,9 +9070,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9181,7 +9115,7 @@ Test "BACnet I-Am":
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9191,9 +9125,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9281,7 +9213,7 @@ Test "BACnet I-Am":
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9291,9 +9223,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9366,7 +9296,7 @@ Test "BACnet ReadProperty":
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9376,9 +9306,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9474,7 +9402,7 @@ Test "BACnet ReadProperty":
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9484,9 +9412,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9531,7 +9457,7 @@ Test "BACnet ReadProperty":
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9541,9 +9467,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9631,7 +9555,7 @@ Test "BACnet ReadProperty":
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9641,9 +9565,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9705,7 +9627,7 @@ Test "BACnet WriteProperty":
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9715,9 +9637,7 @@ Test "BACnet WriteProperty":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9811,7 +9731,7 @@ Test "BACnet WriteProperty":
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9821,9 +9741,7 @@ Test "BACnet WriteProperty":
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -9892,7 +9810,7 @@ Test "BACnet Applicat</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9902,9 +9820,7 @@ Test "BACnet Applicat</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -10053,7 +9969,7 @@ Test "BACnet Applicat</value>
                                 </BACnetContextTag>
                               </objectIdentifier>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -10063,9 +9979,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <listOfPropertyReferences isList="true">
                                 <BACnetPropertyReference>
@@ -10086,7 +10000,7 @@ Test "BACnet Applicat</value>
                                 </BACnetPropertyReference>
                               </listOfPropertyReferences>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -10096,9 +10010,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetReadAccessSpecification>
                           </data>
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
index ed9922cf40..bb727a848e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
@@ -53,6 +53,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		}
 		tagClass := model.TagClassByName(arguments[1])
 		return model.ErrorClassTaggedParse(io, tagNumber, tagClass)
+	case "BACnetOpeningTag":
+		tagNumberArgument, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		return model.BACnetOpeningTagParse(io, tagNumberArgument)
 	case "BACnetStatusFlags":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
@@ -318,6 +324,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetTimeStampsEnclosedParse(io, tagNumber)
+	case "BACnetClosingTag":
+		tagNumberArgument, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		return model.BACnetClosingTagParse(io, tagNumberArgument)
 	case "BACnetConfirmedServiceRequest":
 		serviceRequestLength, err := utils.StrToUint16(arguments[0])
 		if err != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
index e2977ea7c2..93cf179163 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
@@ -66,6 +66,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		tagNumber := uint8(parsedUint0)
 		tagClass := model.TagClassByName(parserArguments[1])
 		return model.ErrorClassTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
+	case "BACnetOpeningTag":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumberArgument := uint8(parsedUint0)
+		return model.BACnetOpeningTagParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumberArgument)
 	case "BACnetStatusFlags":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
@@ -364,6 +371,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetTimeStampsEnclosedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "BACnetClosingTag":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumberArgument := uint8(parsedUint0)
+		return model.BACnetClosingTagParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumberArgument)
 	case "BACnetConfirmedServiceRequest":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 16)
 		if err != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionList.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionList.go
index 4b8b3c3044..2bd06041fc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionList.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionList.go
@@ -130,7 +130,7 @@ func BACnetActionListParse(readBuffer utils.ReadBuffer) (*BACnetActionList, erro
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(uint8(0)))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -163,7 +163,7 @@ func BACnetActionListParse(readBuffer utils.ReadBuffer) (*BACnetActionList, erro
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(uint8(0)))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go
index d35904d9e6..2f5e3528a7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go
@@ -21,22 +21,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.
 
 // BACnetClosingTag is the data-structure of this message
 type BACnetClosingTag struct {
-	*BACnetContextTag
+	Header *BACnetTagHeader
 
 	// Arguments.
 	TagNumberArgument uint8
-	ActualLength      uint32
 }
 
 // IBACnetClosingTag is the corresponding interface of BACnetClosingTag
 type IBACnetClosingTag interface {
-	IBACnetContextTag
+	// GetHeader returns Header (property field)
+	GetHeader() *BACnetTagHeader
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -47,11 +48,11 @@ type IBACnetClosingTag interface {
 
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
+/////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetClosingTag) GetDataType() BACnetDataType {
-	return BACnetDataType_CLOSING_TAG
+func (m *BACnetClosingTag) GetHeader() *BACnetTagHeader {
+	return m.Header
 }
 
 ///////////////////////
@@ -59,21 +60,9 @@ func (m *BACnetClosingTag) GetDataType() BACnetDataType {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-func (m *BACnetClosingTag) InitializeParent(parent *BACnetContextTag, header *BACnetTagHeader) {
-	m.BACnetContextTag.Header = header
-}
-
-func (m *BACnetClosingTag) GetParent() *BACnetContextTag {
-	return m.BACnetContextTag
-}
-
 // NewBACnetClosingTag factory function for BACnetClosingTag
-func NewBACnetClosingTag(header *BACnetTagHeader, tagNumberArgument uint8, actualLength uint32) *BACnetClosingTag {
-	_result := &BACnetClosingTag{
-		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
-	}
-	_result.Child = _result
-	return _result
+func NewBACnetClosingTag(header *BACnetTagHeader, tagNumberArgument uint8) *BACnetClosingTag {
+	return &BACnetClosingTag{Header: header, TagNumberArgument: tagNumberArgument}
 }
 
 func CastBACnetClosingTag(structType interface{}) *BACnetClosingTag {
@@ -83,12 +72,6 @@ func CastBACnetClosingTag(structType interface{}) *BACnetClosingTag {
 	if casted, ok := structType.(*BACnetClosingTag); ok {
 		return casted
 	}
-	if casted, ok := structType.(BACnetContextTag); ok {
-		return CastBACnetClosingTag(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetContextTag); ok {
-		return CastBACnetClosingTag(casted.Child)
-	}
 	return nil
 }
 
@@ -101,7 +84,10 @@ func (m *BACnetClosingTag) GetLengthInBits() uint16 {
 }
 
 func (m *BACnetClosingTag) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
+	lengthInBits := uint16(0)
+
+	// Simple field (header)
+	lengthInBits += m.Header.GetLengthInBits()
 
 	return lengthInBits
 }
@@ -110,7 +96,7 @@ func (m *BACnetClosingTag) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetClosingTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, actualLength uint32) (*BACnetClosingTag, error) {
+func BACnetClosingTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8) (*BACnetClosingTag, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetClosingTag"); pullErr != nil {
@@ -119,8 +105,31 @@ func BACnetClosingTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8,
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
+	// Simple Field (header)
+	if pullErr := readBuffer.PullContext("header"); pullErr != nil {
+		return nil, pullErr
+	}
+	_header, _headerErr := BACnetTagHeaderParse(readBuffer)
+	if _headerErr != nil {
+		return nil, errors.Wrap(_headerErr, "Error parsing 'header' field")
+	}
+	header := CastBACnetTagHeader(_header)
+	if closeErr := readBuffer.CloseContext("header"); closeErr != nil {
+		return nil, closeErr
+	}
+
 	// Validation
-	if !(bool((actualLength) == (7))) {
+	if !(bool((header.GetActualTagNumber()) == (tagNumberArgument))) {
+		return nil, utils.ParseAssertError{"tagnumber doesn't match"}
+	}
+
+	// Validation
+	if !(bool((header.GetTagClass()) == (TagClass_CONTEXT_SPECIFIC_TAGS))) {
+		return nil, utils.ParseValidationError{"should be a context tag"}
+	}
+
+	// Validation
+	if !(bool((header.GetLengthValueType()) == (7))) {
 		return nil, utils.ParseValidationError{"closing tag should have a value of 7"}
 	}
 
@@ -128,28 +137,33 @@ func BACnetClosingTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8,
 		return nil, closeErr
 	}
 
-	// Create a partially initialized instance
-	_child := &BACnetClosingTag{
-		BACnetContextTag: &BACnetContextTag{},
-	}
-	_child.BACnetContextTag.Child = _child
-	return _child, nil
+	// Create the instance
+	return NewBACnetClosingTag(header, tagNumberArgument), nil
 }
 
 func (m *BACnetClosingTag) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetClosingTag"); pushErr != nil {
-			return pushErr
-		}
+	if pushErr := writeBuffer.PushContext("BACnetClosingTag"); pushErr != nil {
+		return pushErr
+	}
+
+	// Simple Field (header)
+	if pushErr := writeBuffer.PushContext("header"); pushErr != nil {
+		return pushErr
+	}
+	_headerErr := m.Header.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("header"); popErr != nil {
+		return popErr
+	}
+	if _headerErr != nil {
+		return errors.Wrap(_headerErr, "Error serializing 'header' field")
+	}
 
-		if popErr := writeBuffer.PopContext("BACnetClosingTag"); popErr != nil {
-			return popErr
-		}
-		return nil
+	if popErr := writeBuffer.PopContext("BACnetClosingTag"); popErr != nil {
+		return popErr
 	}
-	return m.SerializeParent(writeBuffer, m, ser)
+	return nil
 }
 
 func (m *BACnetClosingTag) String() string {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
index 7613fd36c4..0532de9ed7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
@@ -170,7 +170,7 @@ func BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordParse(readBuffer u
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -208,7 +208,7 @@ func BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordParse(readBuffer u
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
index 9839547824..ce6245bee0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
@@ -208,7 +208,7 @@ func BACnetConfirmedServiceRequestAtomicWriteFileParse(readBuffer utils.ReadBuff
 		if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetContextTagParse(readBuffer, uint8(0), BACnetDataType_OPENING_TAG)
+		_val, _err := BACnetOpeningTagParse(readBuffer, uint8(0))
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
@@ -255,7 +255,7 @@ func BACnetConfirmedServiceRequestAtomicWriteFileParse(readBuffer utils.ReadBuff
 		if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetContextTagParse(readBuffer, uint8(0), BACnetDataType_CLOSING_TAG)
+		_val, _err := BACnetClosingTagParse(readBuffer, uint8(0))
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
index 0a82136573..b92847bf37 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
@@ -189,7 +189,7 @@ func BACnetConfirmedServiceRequestCreateObjectObjectSpecifierParse(readBuffer ut
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -264,7 +264,7 @@ func BACnetConfirmedServiceRequestCreateObjectObjectSpecifierParse(readBuffer ut
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
index 8d5578ca80..50d999a41d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
@@ -170,7 +170,7 @@ func BACnetConfirmedServiceRequestReadRangeRangeParse(readBuffer utils.ReadBuffe
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -210,7 +210,7 @@ func BACnetConfirmedServiceRequestReadRangeRangeParse(readBuffer utils.ReadBuffe
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
index f9781ee82b..025e796361 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
@@ -153,7 +153,7 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscript
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(uint8(1)))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -186,7 +186,7 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscript
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(uint8(1)))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
index 087ec5c78b..331f558203 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
@@ -133,7 +133,7 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscript
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -166,7 +166,7 @@ func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscript
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
index 8e6bfcb481..9da0a081e6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
@@ -145,7 +145,7 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -198,7 +198,7 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go
index aa5f9e4a5d..50f22914b9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go
@@ -45,8 +45,6 @@ type IBACnetContextTag interface {
 	GetTagNumber() uint8
 	// GetActualLength returns ActualLength (virtual field)
 	GetActualLength() uint32
-	// GetIsNotOpeningOrClosingTag returns IsNotOpeningOrClosingTag (virtual field)
-	GetIsNotOpeningOrClosingTag() bool
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -95,10 +93,6 @@ func (m *BACnetContextTag) GetActualLength() uint32 {
 	return uint32(m.GetHeader().GetActualLength())
 }
 
-func (m *BACnetContextTag) GetIsNotOpeningOrClosingTag() bool {
-	return bool(bool(bool((m.GetHeader().GetLengthValueType()) != (6))) && bool(bool((m.GetHeader().GetLengthValueType()) != (7))))
-}
-
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -144,8 +138,6 @@ func (m *BACnetContextTag) GetParentLengthInBits() uint16 {
 
 	// A virtual field doesn't have any in- or output.
 
-	// A virtual field doesn't have any in- or output.
-
 	return lengthInBits
 }
 
@@ -195,10 +187,10 @@ func BACnetContextTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8,
 	actualLength := uint32(_actualLength)
 	_ = actualLength
 
-	// Virtual field
-	_isNotOpeningOrClosingTag := bool(bool((header.GetLengthValueType()) != (6))) && bool(bool((header.GetLengthValueType()) != (7)))
-	isNotOpeningOrClosingTag := bool(_isNotOpeningOrClosingTag)
-	_ = isNotOpeningOrClosingTag
+	// Validation
+	if !(bool(bool((header.GetLengthValueType()) != (6))) && bool(bool((header.GetLengthValueType()) != (7)))) {
+		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
+	}
 
 	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
 	type BACnetContextTagChild interface {
@@ -209,39 +201,33 @@ func BACnetContextTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8,
 	var typeSwitchError error
 	switch {
 	case dataType == BACnetDataType_NULL: // BACnetContextTagNull
-		_child, typeSwitchError = BACnetContextTagNullParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagNullParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_BOOLEAN: // BACnetContextTagBoolean
-		_child, typeSwitchError = BACnetContextTagBooleanParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagBooleanParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_UNSIGNED_INTEGER: // BACnetContextTagUnsignedInteger
-		_child, typeSwitchError = BACnetContextTagUnsignedIntegerParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagUnsignedIntegerParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_SIGNED_INTEGER: // BACnetContextTagSignedInteger
-		_child, typeSwitchError = BACnetContextTagSignedIntegerParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagSignedIntegerParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_REAL: // BACnetContextTagReal
-		_child, typeSwitchError = BACnetContextTagRealParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
+		_child, typeSwitchError = BACnetContextTagRealParse(readBuffer, tagNumberArgument, dataType)
 	case dataType == BACnetDataType_DOUBLE: // BACnetContextTagDouble
-		_child, typeSwitchError = BACnetContextTagDoubleParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
+		_child, typeSwitchError = BACnetContextTagDoubleParse(readBuffer, tagNumberArgument, dataType)
 	case dataType == BACnetDataType_OCTET_STRING: // BACnetContextTagOctetString
-		_child, typeSwitchError = BACnetContextTagOctetStringParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagOctetStringParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_CHARACTER_STRING: // BACnetContextTagCharacterString
-		_child, typeSwitchError = BACnetContextTagCharacterStringParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagCharacterStringParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_BIT_STRING: // BACnetContextTagBitString
-		_child, typeSwitchError = BACnetContextTagBitStringParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagBitStringParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_ENUMERATED: // BACnetContextTagEnumerated
-		_child, typeSwitchError = BACnetContextTagEnumeratedParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, header)
+		_child, typeSwitchError = BACnetContextTagEnumeratedParse(readBuffer, tagNumberArgument, dataType, header)
 	case dataType == BACnetDataType_DATE: // BACnetContextTagDate
-		_child, typeSwitchError = BACnetContextTagDateParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
+		_child, typeSwitchError = BACnetContextTagDateParse(readBuffer, tagNumberArgument, dataType)
 	case dataType == BACnetDataType_TIME: // BACnetContextTagTime
-		_child, typeSwitchError = BACnetContextTagTimeParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
+		_child, typeSwitchError = BACnetContextTagTimeParse(readBuffer, tagNumberArgument, dataType)
 	case dataType == BACnetDataType_BACNET_OBJECT_IDENTIFIER: // BACnetContextTagObjectIdentifier
-		_child, typeSwitchError = BACnetContextTagObjectIdentifierParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
-	case dataType == BACnetDataType_OPENING_TAG: // BACnetOpeningTag
-		_child, typeSwitchError = BACnetOpeningTagParse(readBuffer, tagNumberArgument, dataType, actualLength)
-	case dataType == BACnetDataType_CLOSING_TAG: // BACnetClosingTag
-		_child, typeSwitchError = BACnetClosingTagParse(readBuffer, tagNumberArgument, dataType, actualLength)
+		_child, typeSwitchError = BACnetContextTagObjectIdentifierParse(readBuffer, tagNumberArgument, dataType)
 	case dataType == BACnetDataType_UNKNOWN: // BACnetContextTagUnknown
 		_child, typeSwitchError = BACnetContextTagUnknownParse(readBuffer, tagNumberArgument, dataType, actualLength)
-	case true: // BACnetContextTagEmpty
-		_child, typeSwitchError = BACnetContextTagEmptyParse(readBuffer, tagNumberArgument, dataType)
 	default:
 		// TODO: return actual type
 		typeSwitchError = errors.New("Unmapped type")
@@ -289,10 +275,6 @@ func (m *BACnetContextTag) SerializeParent(writeBuffer utils.WriteBuffer, child
 	if _actualLengthErr := writeBuffer.WriteVirtual("actualLength", m.GetActualLength()); _actualLengthErr != nil {
 		return errors.Wrap(_actualLengthErr, "Error serializing 'actualLength' field")
 	}
-	// Virtual field
-	if _isNotOpeningOrClosingTagErr := writeBuffer.WriteVirtual("isNotOpeningOrClosingTag", m.GetIsNotOpeningOrClosingTag()); _isNotOpeningOrClosingTagErr != nil {
-		return errors.Wrap(_isNotOpeningOrClosingTagErr, "Error serializing 'isNotOpeningOrClosingTag' field")
-	}
 
 	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
 	if _typeSwitchErr := serializeChildFunction(); _typeSwitchErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go
index c6de729274..558f097d3f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go
@@ -32,8 +32,7 @@ type BACnetContextTagBitString struct {
 	Payload *BACnetTagPayloadBitString
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagBitString is the corresponding interface of BACnetContextTagBitString
@@ -86,7 +85,7 @@ func (m *BACnetContextTagBitString) GetPayload() *BACnetTagPayloadBitString {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagBitString factory function for BACnetContextTagBitString
-func NewBACnetContextTagBitString(payload *BACnetTagPayloadBitString, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagBitString {
+func NewBACnetContextTagBitString(payload *BACnetTagPayloadBitString, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagBitString {
 	_result := &BACnetContextTagBitString{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -132,7 +131,7 @@ func (m *BACnetContextTagBitString) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagBitStringParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagBitString, error) {
+func BACnetContextTagBitStringParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagBitString, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagBitString"); pullErr != nil {
@@ -141,11 +140,6 @@ func BACnetContextTagBitStringParse(readBuffer utils.ReadBuffer, tagNumberArgume
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go
index 8b1c10833f..faa3b11171 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go
@@ -33,8 +33,7 @@ type BACnetContextTagBoolean struct {
 	Payload *BACnetTagPayloadBoolean
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagBoolean is the corresponding interface of BACnetContextTagBoolean
@@ -108,7 +107,7 @@ func (m *BACnetContextTagBoolean) GetActualValue() bool {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagBoolean factory function for BACnetContextTagBoolean
-func NewBACnetContextTagBoolean(value uint8, payload *BACnetTagPayloadBoolean, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagBoolean {
+func NewBACnetContextTagBoolean(value uint8, payload *BACnetTagPayloadBoolean, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagBoolean {
 	_result := &BACnetContextTagBoolean{
 		Value:            value,
 		Payload:          payload,
@@ -160,7 +159,7 @@ func (m *BACnetContextTagBoolean) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagBooleanParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagBoolean, error) {
+func BACnetContextTagBooleanParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagBoolean, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagBoolean"); pullErr != nil {
@@ -169,11 +168,6 @@ func BACnetContextTagBooleanParse(readBuffer utils.ReadBuffer, tagNumberArgument
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Validation
 	if !(bool((header.GetActualLength()) == (1))) {
 		return nil, utils.ParseValidationError{"length field should be 1"}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go
index 1ae70cac7b..6a02104c1e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go
@@ -32,8 +32,7 @@ type BACnetContextTagCharacterString struct {
 	Payload *BACnetTagPayloadCharacterString
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagCharacterString is the corresponding interface of BACnetContextTagCharacterString
@@ -101,7 +100,7 @@ func (m *BACnetContextTagCharacterString) GetValue() string {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagCharacterString factory function for BACnetContextTagCharacterString
-func NewBACnetContextTagCharacterString(payload *BACnetTagPayloadCharacterString, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagCharacterString {
+func NewBACnetContextTagCharacterString(payload *BACnetTagPayloadCharacterString, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagCharacterString {
 	_result := &BACnetContextTagCharacterString{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -149,7 +148,7 @@ func (m *BACnetContextTagCharacterString) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagCharacterStringParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagCharacterString, error) {
+func BACnetContextTagCharacterStringParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagCharacterString, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagCharacterString"); pullErr != nil {
@@ -158,11 +157,6 @@ func BACnetContextTagCharacterStringParse(readBuffer utils.ReadBuffer, tagNumber
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go
index 35b9b0200a..9526442ec3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go
@@ -32,8 +32,7 @@ type BACnetContextTagDate struct {
 	Payload *BACnetTagPayloadDate
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagDate is the corresponding interface of BACnetContextTagDate
@@ -86,7 +85,7 @@ func (m *BACnetContextTagDate) GetPayload() *BACnetTagPayloadDate {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagDate factory function for BACnetContextTagDate
-func NewBACnetContextTagDate(payload *BACnetTagPayloadDate, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagDate {
+func NewBACnetContextTagDate(payload *BACnetTagPayloadDate, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagDate {
 	_result := &BACnetContextTagDate{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -132,7 +131,7 @@ func (m *BACnetContextTagDate) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagDateParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool) (*BACnetContextTagDate, error) {
+func BACnetContextTagDateParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType) (*BACnetContextTagDate, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagDate"); pullErr != nil {
@@ -141,11 +140,6 @@ func BACnetContextTagDateParse(readBuffer utils.ReadBuffer, tagNumberArgument ui
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go
index 44f1d26afd..cb252e1a5d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go
@@ -32,8 +32,7 @@ type BACnetContextTagDouble struct {
 	Payload *BACnetTagPayloadDouble
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagDouble is the corresponding interface of BACnetContextTagDouble
@@ -101,7 +100,7 @@ func (m *BACnetContextTagDouble) GetActualValue() float64 {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagDouble factory function for BACnetContextTagDouble
-func NewBACnetContextTagDouble(payload *BACnetTagPayloadDouble, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagDouble {
+func NewBACnetContextTagDouble(payload *BACnetTagPayloadDouble, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagDouble {
 	_result := &BACnetContextTagDouble{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -149,7 +148,7 @@ func (m *BACnetContextTagDouble) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagDoubleParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool) (*BACnetContextTagDouble, error) {
+func BACnetContextTagDoubleParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType) (*BACnetContextTagDouble, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagDouble"); pullErr != nil {
@@ -158,11 +157,6 @@ func BACnetContextTagDoubleParse(readBuffer utils.ReadBuffer, tagNumberArgument
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseValidationError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go
index e80cfd82e9..8764ae2911 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go
@@ -32,8 +32,7 @@ type BACnetContextTagEnumerated struct {
 	Payload *BACnetTagPayloadEnumerated
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagEnumerated is the corresponding interface of BACnetContextTagEnumerated
@@ -101,7 +100,7 @@ func (m *BACnetContextTagEnumerated) GetActualValue() uint32 {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagEnumerated factory function for BACnetContextTagEnumerated
-func NewBACnetContextTagEnumerated(payload *BACnetTagPayloadEnumerated, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagEnumerated {
+func NewBACnetContextTagEnumerated(payload *BACnetTagPayloadEnumerated, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagEnumerated {
 	_result := &BACnetContextTagEnumerated{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -149,7 +148,7 @@ func (m *BACnetContextTagEnumerated) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagEnumeratedParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagEnumerated, error) {
+func BACnetContextTagEnumeratedParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagEnumerated, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagEnumerated"); pullErr != nil {
@@ -158,11 +157,6 @@ func BACnetContextTagEnumeratedParse(readBuffer utils.ReadBuffer, tagNumberArgum
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNull.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNull.go
index 166dab470f..8efc600fd6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNull.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNull.go
@@ -30,8 +30,7 @@ type BACnetContextTagNull struct {
 	*BACnetContextTag
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagNull is the corresponding interface of BACnetContextTagNull
@@ -68,7 +67,7 @@ func (m *BACnetContextTagNull) GetParent() *BACnetContextTag {
 }
 
 // NewBACnetContextTagNull factory function for BACnetContextTagNull
-func NewBACnetContextTagNull(header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagNull {
+func NewBACnetContextTagNull(header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagNull {
 	_result := &BACnetContextTagNull{
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
 	}
@@ -110,7 +109,7 @@ func (m *BACnetContextTagNull) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagNullParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagNull, error) {
+func BACnetContextTagNullParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagNull, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagNull"); pullErr != nil {
@@ -119,11 +118,6 @@ func BACnetContextTagNullParse(readBuffer utils.ReadBuffer, tagNumberArgument ui
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Validation
 	if !(bool((header.GetActualLength()) == (0))) {
 		return nil, utils.ParseValidationError{"length field should be 0"}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go
index 879bbd64e2..b632700984 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go
@@ -32,8 +32,7 @@ type BACnetContextTagObjectIdentifier struct {
 	Payload *BACnetTagPayloadObjectIdentifier
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagObjectIdentifier is the corresponding interface of BACnetContextTagObjectIdentifier
@@ -107,7 +106,7 @@ func (m *BACnetContextTagObjectIdentifier) GetInstanceNumber() uint32 {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagObjectIdentifier factory function for BACnetContextTagObjectIdentifier
-func NewBACnetContextTagObjectIdentifier(payload *BACnetTagPayloadObjectIdentifier, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagObjectIdentifier {
+func NewBACnetContextTagObjectIdentifier(payload *BACnetTagPayloadObjectIdentifier, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagObjectIdentifier {
 	_result := &BACnetContextTagObjectIdentifier{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -157,7 +156,7 @@ func (m *BACnetContextTagObjectIdentifier) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagObjectIdentifierParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool) (*BACnetContextTagObjectIdentifier, error) {
+func BACnetContextTagObjectIdentifierParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType) (*BACnetContextTagObjectIdentifier, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagObjectIdentifier"); pullErr != nil {
@@ -166,11 +165,6 @@ func BACnetContextTagObjectIdentifierParse(readBuffer utils.ReadBuffer, tagNumbe
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go
index c1436a6a53..9cdcd243f4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go
@@ -32,8 +32,7 @@ type BACnetContextTagOctetString struct {
 	Payload *BACnetTagPayloadOctetString
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagOctetString is the corresponding interface of BACnetContextTagOctetString
@@ -101,7 +100,7 @@ func (m *BACnetContextTagOctetString) GetValue() string {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagOctetString factory function for BACnetContextTagOctetString
-func NewBACnetContextTagOctetString(payload *BACnetTagPayloadOctetString, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagOctetString {
+func NewBACnetContextTagOctetString(payload *BACnetTagPayloadOctetString, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagOctetString {
 	_result := &BACnetContextTagOctetString{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -149,7 +148,7 @@ func (m *BACnetContextTagOctetString) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagOctetStringParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagOctetString, error) {
+func BACnetContextTagOctetStringParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagOctetString, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagOctetString"); pullErr != nil {
@@ -158,11 +157,6 @@ func BACnetContextTagOctetStringParse(readBuffer utils.ReadBuffer, tagNumberArgu
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseValidationError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go
index 3e2b7df860..015df37a41 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go
@@ -32,8 +32,7 @@ type BACnetContextTagReal struct {
 	Payload *BACnetTagPayloadReal
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagReal is the corresponding interface of BACnetContextTagReal
@@ -101,7 +100,7 @@ func (m *BACnetContextTagReal) GetActualValue() float32 {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagReal factory function for BACnetContextTagReal
-func NewBACnetContextTagReal(payload *BACnetTagPayloadReal, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagReal {
+func NewBACnetContextTagReal(payload *BACnetTagPayloadReal, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagReal {
 	_result := &BACnetContextTagReal{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -149,7 +148,7 @@ func (m *BACnetContextTagReal) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagRealParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool) (*BACnetContextTagReal, error) {
+func BACnetContextTagRealParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType) (*BACnetContextTagReal, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagReal"); pullErr != nil {
@@ -158,11 +157,6 @@ func BACnetContextTagRealParse(readBuffer utils.ReadBuffer, tagNumberArgument ui
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseValidationError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
index 3b574ed2ee..5c4f7254d0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
@@ -32,8 +32,7 @@ type BACnetContextTagSignedInteger struct {
 	Payload *BACnetTagPayloadSignedInteger
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagSignedInteger is the corresponding interface of BACnetContextTagSignedInteger
@@ -101,7 +100,7 @@ func (m *BACnetContextTagSignedInteger) GetActualValue() uint64 {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagSignedInteger factory function for BACnetContextTagSignedInteger
-func NewBACnetContextTagSignedInteger(payload *BACnetTagPayloadSignedInteger, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagSignedInteger {
+func NewBACnetContextTagSignedInteger(payload *BACnetTagPayloadSignedInteger, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagSignedInteger {
 	_result := &BACnetContextTagSignedInteger{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -149,7 +148,7 @@ func (m *BACnetContextTagSignedInteger) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagSignedIntegerParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagSignedInteger, error) {
+func BACnetContextTagSignedIntegerParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagSignedInteger, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagSignedInteger"); pullErr != nil {
@@ -158,11 +157,6 @@ func BACnetContextTagSignedIntegerParse(readBuffer utils.ReadBuffer, tagNumberAr
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go
index 1b7057077b..2f6ac2ae39 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go
@@ -32,8 +32,7 @@ type BACnetContextTagTime struct {
 	Payload *BACnetTagPayloadTime
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagTime is the corresponding interface of BACnetContextTagTime
@@ -86,7 +85,7 @@ func (m *BACnetContextTagTime) GetPayload() *BACnetTagPayloadTime {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagTime factory function for BACnetContextTagTime
-func NewBACnetContextTagTime(payload *BACnetTagPayloadTime, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagTime {
+func NewBACnetContextTagTime(payload *BACnetTagPayloadTime, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagTime {
 	_result := &BACnetContextTagTime{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -132,7 +131,7 @@ func (m *BACnetContextTagTime) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagTimeParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool) (*BACnetContextTagTime, error) {
+func BACnetContextTagTimeParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType) (*BACnetContextTagTime, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagTime"); pullErr != nil {
@@ -141,11 +140,6 @@ func BACnetContextTagTimeParse(readBuffer utils.ReadBuffer, tagNumberArgument ui
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
index 0cecf68ddd..7c7d1d8bae 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
@@ -32,8 +32,7 @@ type BACnetContextTagUnsignedInteger struct {
 	Payload *BACnetTagPayloadUnsignedInteger
 
 	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
+	TagNumberArgument uint8
 }
 
 // IBACnetContextTagUnsignedInteger is the corresponding interface of BACnetContextTagUnsignedInteger
@@ -101,7 +100,7 @@ func (m *BACnetContextTagUnsignedInteger) GetActualValue() uint64 {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetContextTagUnsignedInteger factory function for BACnetContextTagUnsignedInteger
-func NewBACnetContextTagUnsignedInteger(payload *BACnetTagPayloadUnsignedInteger, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagUnsignedInteger {
+func NewBACnetContextTagUnsignedInteger(payload *BACnetTagPayloadUnsignedInteger, header *BACnetTagHeader, tagNumberArgument uint8) *BACnetContextTagUnsignedInteger {
 	_result := &BACnetContextTagUnsignedInteger{
 		Payload:          payload,
 		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
@@ -149,7 +148,7 @@ func (m *BACnetContextTagUnsignedInteger) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetContextTagUnsignedIntegerParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, header *BACnetTagHeader) (*BACnetContextTagUnsignedInteger, error) {
+func BACnetContextTagUnsignedIntegerParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, header *BACnetTagHeader) (*BACnetContextTagUnsignedInteger, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetContextTagUnsignedInteger"); pullErr != nil {
@@ -158,11 +157,6 @@ func BACnetContextTagUnsignedIntegerParse(readBuffer utils.ReadBuffer, tagNumber
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
 	// Simple Field (payload)
 	if pullErr := readBuffer.PullContext("payload"); pullErr != nil {
 		return nil, pullErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go
index af0ffb9bea..edcecef4d7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go
@@ -47,8 +47,6 @@ const (
 	BACnetDataType_DATE                     BACnetDataType = 10
 	BACnetDataType_TIME                     BACnetDataType = 11
 	BACnetDataType_BACNET_OBJECT_IDENTIFIER BACnetDataType = 12
-	BACnetDataType_OPENING_TAG              BACnetDataType = 20
-	BACnetDataType_CLOSING_TAG              BACnetDataType = 21
 	BACnetDataType_UNKNOWN                  BACnetDataType = 33
 )
 
@@ -70,8 +68,6 @@ func init() {
 		BACnetDataType_DATE,
 		BACnetDataType_TIME,
 		BACnetDataType_BACNET_OBJECT_IDENTIFIER,
-		BACnetDataType_OPENING_TAG,
-		BACnetDataType_CLOSING_TAG,
 		BACnetDataType_UNKNOWN,
 	}
 }
@@ -90,10 +86,6 @@ func BACnetDataTypeByValue(value uint8) BACnetDataType {
 		return BACnetDataType_BACNET_OBJECT_IDENTIFIER
 	case 2:
 		return BACnetDataType_UNSIGNED_INTEGER
-	case 20:
-		return BACnetDataType_OPENING_TAG
-	case 21:
-		return BACnetDataType_CLOSING_TAG
 	case 3:
 		return BACnetDataType_SIGNED_INTEGER
 	case 33:
@@ -128,10 +120,6 @@ func BACnetDataTypeByName(value string) BACnetDataType {
 		return BACnetDataType_BACNET_OBJECT_IDENTIFIER
 	case "UNSIGNED_INTEGER":
 		return BACnetDataType_UNSIGNED_INTEGER
-	case "OPENING_TAG":
-		return BACnetDataType_OPENING_TAG
-	case "CLOSING_TAG":
-		return BACnetDataType_CLOSING_TAG
 	case "SIGNED_INTEGER":
 		return BACnetDataType_SIGNED_INTEGER
 	case "UNKNOWN":
@@ -205,10 +193,6 @@ func (e BACnetDataType) name() string {
 		return "BACNET_OBJECT_IDENTIFIER"
 	case BACnetDataType_UNSIGNED_INTEGER:
 		return "UNSIGNED_INTEGER"
-	case BACnetDataType_OPENING_TAG:
-		return "OPENING_TAG"
-	case BACnetDataType_CLOSING_TAG:
-		return "CLOSING_TAG"
 	case BACnetDataType_SIGNED_INTEGER:
 		return "SIGNED_INTEGER"
 	case BACnetDataType_UNKNOWN:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDateTimeEnclosed.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDateTimeEnclosed.go
index e1f1673d0b..6fec169eba 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDateTimeEnclosed.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDateTimeEnclosed.go
@@ -129,7 +129,7 @@ func BACnetDateTimeEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8) (
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -155,7 +155,7 @@ func BACnetDateTimeEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8) (
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReferenceEnclosed.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReferenceEnclosed.go
index 9b5f9a1dd5..2f9889fead 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReferenceEnclosed.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReferenceEnclosed.go
@@ -129,7 +129,7 @@ func BACnetDeviceObjectPropertyReferenceEnclosedParse(readBuffer utils.ReadBuffe
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -155,7 +155,7 @@ func BACnetDeviceObjectPropertyReferenceEnclosedParse(readBuffer utils.ReadBuffe
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventProrities.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventProrities.go
index 69c85aa0bb..99c9c91829 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventProrities.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventProrities.go
@@ -149,7 +149,7 @@ func BACnetEventProritiesParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*B
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -201,7 +201,7 @@ func BACnetEventProritiesParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*B
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummariesList.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummariesList.go
index 3103cfa26a..a2ec820743 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummariesList.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummariesList.go
@@ -133,7 +133,7 @@ func BACnetEventSummariesListParse(readBuffer utils.ReadBuffer, tagNumber uint8)
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -166,7 +166,7 @@ func BACnetEventSummariesListParse(readBuffer utils.ReadBuffer, tagNumber uint8)
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventTimestamps.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventTimestamps.go
index c29718518f..95303f9e6f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventTimestamps.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventTimestamps.go
@@ -149,7 +149,7 @@ func BACnetEventTimestampsParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -201,7 +201,7 @@ func BACnetEventTimestampsParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go
index f66bb086b3..b14b45e466 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go
@@ -166,7 +166,7 @@ func BACnetNotificationParametersParse(readBuffer utils.ReadBuffer, tagNumber ui
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -230,7 +230,7 @@ func BACnetNotificationParametersParse(readBuffer utils.ReadBuffer, tagNumber ui
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
index 3d649ff975..948aaf7162 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
@@ -187,7 +187,7 @@ func BACnetNotificationParametersBufferReadyParse(readBuffer utils.ReadBuffer, t
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -239,7 +239,7 @@ func BACnetNotificationParametersBufferReadyParse(readBuffer utils.ReadBuffer, t
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
index ced4d7cdab..fe69fcfc56 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
@@ -176,7 +176,7 @@ func BACnetNotificationParametersChangeOfBitStringParse(readBuffer utils.ReadBuf
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -215,7 +215,7 @@ func BACnetNotificationParametersChangeOfBitStringParse(readBuffer utils.ReadBuf
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
index 022d18c002..81719722d7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
@@ -176,7 +176,7 @@ func BACnetNotificationParametersChangeOfStateParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -215,7 +215,7 @@ func BACnetNotificationParametersChangeOfStateParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
index 87170d7c0b..178de19912 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
@@ -176,7 +176,7 @@ func BACnetNotificationParametersChangeOfValueParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -215,7 +215,7 @@ func BACnetNotificationParametersChangeOfValueParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go
index 73b86bad97..b9623a99f8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValue.go
@@ -165,7 +165,7 @@ func BACnetNotificationParametersChangeOfValueNewValueParse(readBuffer utils.Rea
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -211,7 +211,7 @@ func BACnetNotificationParametersChangeOfValueNewValueParse(readBuffer utils.Rea
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go
index 280386be91..f16a90ad9c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go
@@ -187,7 +187,7 @@ func BACnetNotificationParametersCommandFailureParse(readBuffer utils.ReadBuffer
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -239,7 +239,7 @@ func BACnetNotificationParametersCommandFailureParse(readBuffer utils.ReadBuffer
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
index 3190e2ead3..0341e5d254 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
@@ -187,7 +187,7 @@ func BACnetNotificationParametersExtendedParse(readBuffer utils.ReadBuffer, tagN
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -239,7 +239,7 @@ func BACnetNotificationParametersExtendedParse(readBuffer utils.ReadBuffer, tagN
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtendedParameters.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtendedParameters.go
index a1eb5785c4..4d8db972c5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtendedParameters.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtendedParameters.go
@@ -412,7 +412,7 @@ func BACnetNotificationParametersExtendedParametersParse(readBuffer utils.ReadBu
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -742,7 +742,7 @@ func BACnetNotificationParametersExtendedParametersParse(readBuffer utils.ReadBu
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go
index fe7bbfa1f3..4c429952c3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go
@@ -198,7 +198,7 @@ func BACnetNotificationParametersFloatingLimitParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -263,7 +263,7 @@ func BACnetNotificationParametersFloatingLimitParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go
index b0c0c5aa05..32be7d9623 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go
@@ -198,7 +198,7 @@ func BACnetNotificationParametersOutOfRangeParse(readBuffer utils.ReadBuffer, ta
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -263,7 +263,7 @@ func BACnetNotificationParametersOutOfRangeParse(readBuffer utils.ReadBuffer, ta
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
index f15d7ab680..1d631839a0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
@@ -187,7 +187,7 @@ func BACnetNotificationParametersUnsignedRangeParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -239,7 +239,7 @@ func BACnetNotificationParametersUnsignedRangeParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReferenceEnclosed.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReferenceEnclosed.go
index 16ae9e9268..d0afd9af42 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReferenceEnclosed.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReferenceEnclosed.go
@@ -129,7 +129,7 @@ func BACnetObjectPropertyReferenceEnclosedParse(readBuffer utils.ReadBuffer, tag
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -155,7 +155,7 @@ func BACnetObjectPropertyReferenceEnclosedParse(readBuffer utils.ReadBuffer, tag
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go
index 200e54d9ff..dc69f521e5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go
@@ -21,22 +21,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.
 
 // BACnetOpeningTag is the data-structure of this message
 type BACnetOpeningTag struct {
-	*BACnetContextTag
+	Header *BACnetTagHeader
 
 	// Arguments.
 	TagNumberArgument uint8
-	ActualLength      uint32
 }
 
 // IBACnetOpeningTag is the corresponding interface of BACnetOpeningTag
 type IBACnetOpeningTag interface {
-	IBACnetContextTag
+	// GetHeader returns Header (property field)
+	GetHeader() *BACnetTagHeader
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -47,11 +48,11 @@ type IBACnetOpeningTag interface {
 
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
+/////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetOpeningTag) GetDataType() BACnetDataType {
-	return BACnetDataType_OPENING_TAG
+func (m *BACnetOpeningTag) GetHeader() *BACnetTagHeader {
+	return m.Header
 }
 
 ///////////////////////
@@ -59,21 +60,9 @@ func (m *BACnetOpeningTag) GetDataType() BACnetDataType {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-func (m *BACnetOpeningTag) InitializeParent(parent *BACnetContextTag, header *BACnetTagHeader) {
-	m.BACnetContextTag.Header = header
-}
-
-func (m *BACnetOpeningTag) GetParent() *BACnetContextTag {
-	return m.BACnetContextTag
-}
-
 // NewBACnetOpeningTag factory function for BACnetOpeningTag
-func NewBACnetOpeningTag(header *BACnetTagHeader, tagNumberArgument uint8, actualLength uint32) *BACnetOpeningTag {
-	_result := &BACnetOpeningTag{
-		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
-	}
-	_result.Child = _result
-	return _result
+func NewBACnetOpeningTag(header *BACnetTagHeader, tagNumberArgument uint8) *BACnetOpeningTag {
+	return &BACnetOpeningTag{Header: header, TagNumberArgument: tagNumberArgument}
 }
 
 func CastBACnetOpeningTag(structType interface{}) *BACnetOpeningTag {
@@ -83,12 +72,6 @@ func CastBACnetOpeningTag(structType interface{}) *BACnetOpeningTag {
 	if casted, ok := structType.(*BACnetOpeningTag); ok {
 		return casted
 	}
-	if casted, ok := structType.(BACnetContextTag); ok {
-		return CastBACnetOpeningTag(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetContextTag); ok {
-		return CastBACnetOpeningTag(casted.Child)
-	}
 	return nil
 }
 
@@ -101,7 +84,10 @@ func (m *BACnetOpeningTag) GetLengthInBits() uint16 {
 }
 
 func (m *BACnetOpeningTag) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
+	lengthInBits := uint16(0)
+
+	// Simple field (header)
+	lengthInBits += m.Header.GetLengthInBits()
 
 	return lengthInBits
 }
@@ -110,7 +96,7 @@ func (m *BACnetOpeningTag) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetOpeningTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, actualLength uint32) (*BACnetOpeningTag, error) {
+func BACnetOpeningTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8) (*BACnetOpeningTag, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetOpeningTag"); pullErr != nil {
@@ -119,8 +105,31 @@ func BACnetOpeningTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8,
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
+	// Simple Field (header)
+	if pullErr := readBuffer.PullContext("header"); pullErr != nil {
+		return nil, pullErr
+	}
+	_header, _headerErr := BACnetTagHeaderParse(readBuffer)
+	if _headerErr != nil {
+		return nil, errors.Wrap(_headerErr, "Error parsing 'header' field")
+	}
+	header := CastBACnetTagHeader(_header)
+	if closeErr := readBuffer.CloseContext("header"); closeErr != nil {
+		return nil, closeErr
+	}
+
 	// Validation
-	if !(bool((actualLength) == (6))) {
+	if !(bool((header.GetActualTagNumber()) == (tagNumberArgument))) {
+		return nil, utils.ParseAssertError{"tagnumber doesn't match"}
+	}
+
+	// Validation
+	if !(bool((header.GetTagClass()) == (TagClass_CONTEXT_SPECIFIC_TAGS))) {
+		return nil, utils.ParseValidationError{"should be a context tag"}
+	}
+
+	// Validation
+	if !(bool((header.GetLengthValueType()) == (6))) {
 		return nil, utils.ParseValidationError{"opening tag should have a value of 6"}
 	}
 
@@ -128,28 +137,33 @@ func BACnetOpeningTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8,
 		return nil, closeErr
 	}
 
-	// Create a partially initialized instance
-	_child := &BACnetOpeningTag{
-		BACnetContextTag: &BACnetContextTag{},
-	}
-	_child.BACnetContextTag.Child = _child
-	return _child, nil
+	// Create the instance
+	return NewBACnetOpeningTag(header, tagNumberArgument), nil
 }
 
 func (m *BACnetOpeningTag) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetOpeningTag"); pushErr != nil {
-			return pushErr
-		}
+	if pushErr := writeBuffer.PushContext("BACnetOpeningTag"); pushErr != nil {
+		return pushErr
+	}
+
+	// Simple Field (header)
+	if pushErr := writeBuffer.PushContext("header"); pushErr != nil {
+		return pushErr
+	}
+	_headerErr := m.Header.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("header"); popErr != nil {
+		return popErr
+	}
+	if _headerErr != nil {
+		return errors.Wrap(_headerErr, "Error serializing 'header' field")
+	}
 
-		if popErr := writeBuffer.PopContext("BACnetOpeningTag"); popErr != nil {
-			return popErr
-		}
-		return nil
+	if popErr := writeBuffer.PopContext("BACnetOpeningTag"); popErr != nil {
+		return popErr
 	}
-	return m.SerializeParent(writeBuffer, m, ser)
+	return nil
 }
 
 func (m *BACnetOpeningTag) String() string {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReferenceEnclosed.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReferenceEnclosed.go
index 3a7e937d45..ef45e24008 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReferenceEnclosed.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReferenceEnclosed.go
@@ -129,7 +129,7 @@ func BACnetPropertyReferenceEnclosedParse(readBuffer utils.ReadBuffer, tagNumber
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -155,7 +155,7 @@ func BACnetPropertyReferenceEnclosedParse(readBuffer utils.ReadBuffer, tagNumber
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go
index 20d7a62eee..e52957b921 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go
@@ -165,7 +165,7 @@ func BACnetPropertyStatesParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*B
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -219,7 +219,7 @@ func BACnetPropertyStatesParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*B
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go
index c3dc767e08..34eff1191b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go
@@ -134,7 +134,7 @@ func BACnetPropertyValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, obj
 	if pullErr := readBuffer.PullContext("innerOpeningTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerOpeningTag, _innerOpeningTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_innerOpeningTag, _innerOpeningTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _innerOpeningTagErr != nil {
 		return nil, errors.Wrap(_innerOpeningTagErr, "Error parsing 'innerOpeningTag' field")
 	}
@@ -167,7 +167,7 @@ func BACnetPropertyValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, obj
 	if pullErr := readBuffer.PullContext("innerClosingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_innerClosingTag, _innerClosingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_innerClosingTag, _innerClosingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _innerClosingTagErr != nil {
 		return nil, errors.Wrap(_innerClosingTagErr, "Error parsing 'innerClosingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessPropertyError.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessPropertyError.go
deleted file mode 100644
index a2d47b1ea3..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessPropertyError.go
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetReadAccessPropertyError is the data-structure of this message
-type BACnetReadAccessPropertyError struct {
-	OpeningTag *BACnetOpeningTag
-	ErrorClass *BACnetApplicationTagEnumerated
-	ErrorCode  *BACnetApplicationTagEnumerated
-	ClosingTag *BACnetClosingTag
-}
-
-// IBACnetReadAccessPropertyError is the corresponding interface of BACnetReadAccessPropertyError
-type IBACnetReadAccessPropertyError interface {
-	// GetOpeningTag returns OpeningTag (property field)
-	GetOpeningTag() *BACnetOpeningTag
-	// GetErrorClass returns ErrorClass (property field)
-	GetErrorClass() *BACnetApplicationTagEnumerated
-	// GetErrorCode returns ErrorCode (property field)
-	GetErrorCode() *BACnetApplicationTagEnumerated
-	// GetClosingTag returns ClosingTag (property field)
-	GetClosingTag() *BACnetClosingTag
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetReadAccessPropertyError) GetOpeningTag() *BACnetOpeningTag {
-	return m.OpeningTag
-}
-
-func (m *BACnetReadAccessPropertyError) GetErrorClass() *BACnetApplicationTagEnumerated {
-	return m.ErrorClass
-}
-
-func (m *BACnetReadAccessPropertyError) GetErrorCode() *BACnetApplicationTagEnumerated {
-	return m.ErrorCode
-}
-
-func (m *BACnetReadAccessPropertyError) GetClosingTag() *BACnetClosingTag {
-	return m.ClosingTag
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetReadAccessPropertyError factory function for BACnetReadAccessPropertyError
-func NewBACnetReadAccessPropertyError(openingTag *BACnetOpeningTag, errorClass *BACnetApplicationTagEnumerated, errorCode *BACnetApplicationTagEnumerated, closingTag *BACnetClosingTag) *BACnetReadAccessPropertyError {
-	return &BACnetReadAccessPropertyError{OpeningTag: openingTag, ErrorClass: errorClass, ErrorCode: errorCode, ClosingTag: closingTag}
-}
-
-func CastBACnetReadAccessPropertyError(structType interface{}) *BACnetReadAccessPropertyError {
-	if casted, ok := structType.(BACnetReadAccessPropertyError); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetReadAccessPropertyError); ok {
-		return casted
-	}
-	return nil
-}
-
-func (m *BACnetReadAccessPropertyError) GetTypeName() string {
-	return "BACnetReadAccessPropertyError"
-}
-
-func (m *BACnetReadAccessPropertyError) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetReadAccessPropertyError) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(0)
-
-	// Simple field (openingTag)
-	lengthInBits += m.OpeningTag.GetLengthInBits()
-
-	// Simple field (errorClass)
-	lengthInBits += m.ErrorClass.GetLengthInBits()
-
-	// Simple field (errorCode)
-	lengthInBits += m.ErrorCode.GetLengthInBits()
-
-	// Simple field (closingTag)
-	lengthInBits += m.ClosingTag.GetLengthInBits()
-
-	return lengthInBits
-}
-
-func (m *BACnetReadAccessPropertyError) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetReadAccessPropertyErrorParse(readBuffer utils.ReadBuffer) (*BACnetReadAccessPropertyError, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReadAccessPropertyError"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Simple Field (openingTag)
-	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
-		return nil, pullErr
-	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(5)), BACnetDataType(BACnetDataType_OPENING_TAG))
-	if _openingTagErr != nil {
-		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
-	}
-	openingTag := CastBACnetOpeningTag(_openingTag)
-	if closeErr := readBuffer.CloseContext("openingTag"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Simple Field (errorClass)
-	if pullErr := readBuffer.PullContext("errorClass"); pullErr != nil {
-		return nil, pullErr
-	}
-	_errorClass, _errorClassErr := BACnetApplicationTagParse(readBuffer)
-	if _errorClassErr != nil {
-		return nil, errors.Wrap(_errorClassErr, "Error parsing 'errorClass' field")
-	}
-	errorClass := CastBACnetApplicationTagEnumerated(_errorClass)
-	if closeErr := readBuffer.CloseContext("errorClass"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Simple Field (errorCode)
-	if pullErr := readBuffer.PullContext("errorCode"); pullErr != nil {
-		return nil, pullErr
-	}
-	_errorCode, _errorCodeErr := BACnetApplicationTagParse(readBuffer)
-	if _errorCodeErr != nil {
-		return nil, errors.Wrap(_errorCodeErr, "Error parsing 'errorCode' field")
-	}
-	errorCode := CastBACnetApplicationTagEnumerated(_errorCode)
-	if closeErr := readBuffer.CloseContext("errorCode"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Simple Field (closingTag)
-	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
-		return nil, pullErr
-	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(5)), BACnetDataType(BACnetDataType_CLOSING_TAG))
-	if _closingTagErr != nil {
-		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
-	}
-	closingTag := CastBACnetClosingTag(_closingTag)
-	if closeErr := readBuffer.CloseContext("closingTag"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	if closeErr := readBuffer.CloseContext("BACnetReadAccessPropertyError"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create the instance
-	return NewBACnetReadAccessPropertyError(openingTag, errorClass, errorCode, closingTag), nil
-}
-
-func (m *BACnetReadAccessPropertyError) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReadAccessPropertyError"); pushErr != nil {
-		return pushErr
-	}
-
-	// Simple Field (openingTag)
-	if pushErr := writeBuffer.PushContext("openingTag"); pushErr != nil {
-		return pushErr
-	}
-	_openingTagErr := m.OpeningTag.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("openingTag"); popErr != nil {
-		return popErr
-	}
-	if _openingTagErr != nil {
-		return errors.Wrap(_openingTagErr, "Error serializing 'openingTag' field")
-	}
-
-	// Simple Field (errorClass)
-	if pushErr := writeBuffer.PushContext("errorClass"); pushErr != nil {
-		return pushErr
-	}
-	_errorClassErr := m.ErrorClass.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("errorClass"); popErr != nil {
-		return popErr
-	}
-	if _errorClassErr != nil {
-		return errors.Wrap(_errorClassErr, "Error serializing 'errorClass' field")
-	}
-
-	// Simple Field (errorCode)
-	if pushErr := writeBuffer.PushContext("errorCode"); pushErr != nil {
-		return pushErr
-	}
-	_errorCodeErr := m.ErrorCode.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("errorCode"); popErr != nil {
-		return popErr
-	}
-	if _errorCodeErr != nil {
-		return errors.Wrap(_errorCodeErr, "Error serializing 'errorCode' field")
-	}
-
-	// Simple Field (closingTag)
-	if pushErr := writeBuffer.PushContext("closingTag"); pushErr != nil {
-		return pushErr
-	}
-	_closingTagErr := m.ClosingTag.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("closingTag"); popErr != nil {
-		return popErr
-	}
-	if _closingTagErr != nil {
-		return errors.Wrap(_closingTagErr, "Error serializing 'closingTag' field")
-	}
-
-	if popErr := writeBuffer.PopContext("BACnetReadAccessPropertyError"); popErr != nil {
-		return popErr
-	}
-	return nil
-}
-
-func (m *BACnetReadAccessPropertyError) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessResultListOfResults.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessResultListOfResults.go
index a353b8f668..e288af7762 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessResultListOfResults.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessResultListOfResults.go
@@ -134,7 +134,7 @@ func BACnetReadAccessResultListOfResultsParse(readBuffer utils.ReadBuffer, tagNu
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -167,7 +167,7 @@ func BACnetReadAccessResultListOfResultsParse(readBuffer utils.ReadBuffer, tagNu
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessSpecification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessSpecification.go
index 1bccee9ba5..001f63e018 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessSpecification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReadAccessSpecification.go
@@ -153,7 +153,7 @@ func BACnetReadAccessSpecificationParse(readBuffer utils.ReadBuffer) (*BACnetRea
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(uint8(1)))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -186,7 +186,7 @@ func BACnetReadAccessSpecificationParse(readBuffer utils.ReadBuffer) (*BACnetRea
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(uint8(1)))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go
index 16f8932cff..8f75c22bf8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStreamOrRecord.go
@@ -170,7 +170,7 @@ func BACnetServiceAckAtomicReadFileStreamOrRecordParse(readBuffer utils.ReadBuff
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -208,7 +208,7 @@ func BACnetServiceAckAtomicReadFileStreamOrRecordParse(readBuffer utils.ReadBuff
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(peekedTagHeader.GetActualTagNumber()))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampEnclosed.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampEnclosed.go
index 88d96416a2..295de7b53a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampEnclosed.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampEnclosed.go
@@ -129,7 +129,7 @@ func BACnetTimeStampEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8)
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -155,7 +155,7 @@ func BACnetTimeStampEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8)
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampsEnclosed.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampsEnclosed.go
index 11c0696402..03d12ad8be 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampsEnclosed.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampsEnclosed.go
@@ -133,7 +133,7 @@ func BACnetTimeStampsEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8)
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -166,7 +166,7 @@ func BACnetTimeStampsEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8)
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetWriteAccessSpecification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetWriteAccessSpecification.go
index 51c540ef6f..a7a337cba8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetWriteAccessSpecification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetWriteAccessSpecification.go
@@ -153,7 +153,7 @@ func BACnetWriteAccessSpecificationParse(readBuffer utils.ReadBuffer) (*BACnetWr
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(uint8(1)))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -186,7 +186,7 @@ func BACnetWriteAccessSpecificationParse(readBuffer utils.ReadBuffer) (*BACnetWr
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(uint8(1)))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/ErrorEnclosed.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/ErrorEnclosed.go
index 9af762bf7d..69a7f40968 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/ErrorEnclosed.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/ErrorEnclosed.go
@@ -129,7 +129,7 @@ func ErrorEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*ErrorEnc
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -155,7 +155,7 @@ func ErrorEnclosedParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*ErrorEnc
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotifications.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotifications.go
index be84703647..3eb641be5f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotifications.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotifications.go
@@ -153,7 +153,7 @@ func ListOfCovNotificationsParse(readBuffer utils.ReadBuffer) (*ListOfCovNotific
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(uint8(1)))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -186,7 +186,7 @@ func ListOfCovNotificationsParse(readBuffer utils.ReadBuffer) (*ListOfCovNotific
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(uint8(1)))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotificationsList.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotificationsList.go
index 7213b5c1be..f6d976b8a6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotificationsList.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/ListOfCovNotificationsList.go
@@ -133,7 +133,7 @@ func ListOfCovNotificationsListParse(readBuffer utils.ReadBuffer, tagNumber uint
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -166,7 +166,7 @@ func ListOfCovNotificationsListParse(readBuffer utils.ReadBuffer, tagNumber uint
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
index bb17c54032..3b68e2de46 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
@@ -542,7 +542,7 @@ func CreateBACnetApplicationTagNull() *BACnetApplicationTagNull {
 
 func CreateBACnetContextTagNull(tagNumber uint8) *BACnetContextTagNull {
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, 0)
-	return NewBACnetContextTagNull(header, tagNumber, true)
+	return NewBACnetContextTagNull(header, tagNumber)
 }
 
 func CreateBACnetOpeningTag(tagNum uint8) *BACnetOpeningTag {
@@ -555,7 +555,7 @@ func CreateBACnetOpeningTag(tagNum uint8) *BACnetOpeningTag {
 		extTagNumber = &tagNum
 	}
 	header := NewBACnetTagHeader(tagNumber, TagClass_CONTEXT_SPECIFIC_TAGS, 0x6, extTagNumber, nil, nil, nil)
-	return NewBACnetOpeningTag(header, tagNum, 6)
+	return NewBACnetOpeningTag(header, tagNum)
 }
 
 func CreateBACnetClosingTag(tagNum uint8) *BACnetClosingTag {
@@ -568,7 +568,7 @@ func CreateBACnetClosingTag(tagNum uint8) *BACnetClosingTag {
 		extTagNumber = &tagNum
 	}
 	header := NewBACnetTagHeader(tagNumber, TagClass_CONTEXT_SPECIFIC_TAGS, 0x7, extTagNumber, nil, nil, nil)
-	return NewBACnetClosingTag(header, tagNum, 7)
+	return NewBACnetClosingTag(header, tagNum)
 }
 
 func CreateBACnetApplicationTagObjectIdentifier(objectType uint16, instance uint32) *BACnetApplicationTagObjectIdentifier {
@@ -592,7 +592,7 @@ func CreateBACnetContextTagObjectIdentifier(tagNum uint8, objectType uint16, ins
 		proprietaryValue = objectType
 	}
 	payload := NewBACnetTagPayloadObjectIdentifier(objectTypeEnum, proprietaryValue, instance)
-	return NewBACnetContextTagObjectIdentifier(payload, header, tagNum, true)
+	return NewBACnetContextTagObjectIdentifier(payload, header, tagNum)
 }
 
 func CreateBACnetPropertyIdentifierTagged(tagNum uint8, propertyType uint32) *BACnetPropertyIdentifierTagged {
@@ -615,7 +615,7 @@ func CreateBACnetApplicationTagUnsignedInteger(value uint) *BACnetApplicationTag
 func CreateBACnetContextTagUnsignedInteger(tagNumber uint8, value uint) *BACnetContextTagUnsignedInteger {
 	length, payload := CreateUnsignedPayload(value)
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, length)
-	return NewBACnetContextTagUnsignedInteger(payload, header, tagNumber, true)
+	return NewBACnetContextTagUnsignedInteger(payload, header, tagNumber)
 }
 
 func CreateUnsignedPayload(value uint) (uint32, *BACnetTagPayloadUnsignedInteger) {
@@ -660,7 +660,7 @@ func CreateBACnetApplicationTagSignedInteger(value int) *BACnetApplicationTagSig
 func CreateBACnetContextTagSignedInteger(tagNumber uint8, value int) *BACnetContextTagSignedInteger {
 	length, payload := CreateSignedPayload(value)
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, length)
-	return NewBACnetContextTagSignedInteger(payload, header, tagNumber, true)
+	return NewBACnetContextTagSignedInteger(payload, header, tagNumber)
 }
 
 func CreateSignedPayload(value int) (uint32, *BACnetTagPayloadSignedInteger) {
@@ -707,7 +707,7 @@ func CreateBACnetContextTagBoolean(tagNumber uint8, value bool) *BACnetContextTa
 	if value {
 		_value = 1
 	}
-	return NewBACnetContextTagBoolean(_value, NewBACnetTagPayloadBoolean(uint32(_value)), header, tagNumber, true)
+	return NewBACnetContextTagBoolean(_value, NewBACnetTagPayloadBoolean(uint32(_value)), header, tagNumber)
 }
 
 func CreateBACnetApplicationTagReal(value float32) *BACnetApplicationTagReal {
@@ -717,7 +717,7 @@ func CreateBACnetApplicationTagReal(value float32) *BACnetApplicationTagReal {
 
 func CreateBACnetContextTagReal(tagNumber uint8, value float32) *BACnetContextTagReal {
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, 4)
-	return NewBACnetContextTagReal(NewBACnetTagPayloadReal(value), header, tagNumber, true)
+	return NewBACnetContextTagReal(NewBACnetTagPayloadReal(value), header, tagNumber)
 }
 
 func CreateBACnetApplicationTagDouble(value float64) *BACnetApplicationTagDouble {
@@ -727,7 +727,7 @@ func CreateBACnetApplicationTagDouble(value float64) *BACnetApplicationTagDouble
 
 func CreateBACnetContextTagDouble(tagNumber uint8, value float64) *BACnetContextTagDouble {
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, 8)
-	return NewBACnetContextTagDouble(NewBACnetTagPayloadDouble(value), header, tagNumber, true)
+	return NewBACnetContextTagDouble(NewBACnetTagPayloadDouble(value), header, tagNumber)
 }
 
 func CreateBACnetApplicationTagOctetString(value string) *BACnetApplicationTagOctetString {
@@ -737,7 +737,7 @@ func CreateBACnetApplicationTagOctetString(value string) *BACnetApplicationTagOc
 
 func CreateBACnetContextTagOctetString(tagNumber uint8, value string) *BACnetContextTagOctetString {
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, uint32(len(value)+1))
-	return NewBACnetContextTagOctetString(NewBACnetTagPayloadOctetString(value, uint32(len(value)+1)), header, tagNumber, true)
+	return NewBACnetContextTagOctetString(NewBACnetTagPayloadOctetString(value, uint32(len(value)+1)), header, tagNumber)
 }
 
 func CreateBACnetApplicationTagCharacterString(baCnetCharacterEncoding BACnetCharacterEncoding, value string) *BACnetApplicationTagCharacterString {
@@ -747,7 +747,7 @@ func CreateBACnetApplicationTagCharacterString(baCnetCharacterEncoding BACnetCha
 
 func CreateBACnetContextTagCharacterString(tagNumber uint8, baCnetCharacterEncoding BACnetCharacterEncoding, value string) *BACnetContextTagCharacterString {
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, uint32(len(value)+1))
-	return NewBACnetContextTagCharacterString(NewBACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, uint32(len(value)+1)), header, tagNumber, true)
+	return NewBACnetContextTagCharacterString(NewBACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, uint32(len(value)+1)), header, tagNumber)
 }
 
 func CreateBACnetApplicationTagBitString(value []bool) *BACnetApplicationTagBitString {
@@ -767,7 +767,7 @@ func CreateBACnetContextTagBitString(tagNumber uint8, value []bool) *BACnetConte
 		unusedBits = 0
 	}
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, uint32(numberOfBytesNeeded+1))
-	return NewBACnetContextTagBitString(NewBACnetTagPayloadBitString(uint8(unusedBits), value, make([]bool, unusedBits), uint32(numberOfBytesNeeded+1)), header, tagNumber, true)
+	return NewBACnetContextTagBitString(NewBACnetTagPayloadBitString(uint8(unusedBits), value, make([]bool, unusedBits), uint32(numberOfBytesNeeded+1)), header, tagNumber)
 }
 
 func CreateBACnetApplicationTagEnumerated(value uint32) *BACnetApplicationTagEnumerated {
@@ -780,7 +780,7 @@ func CreateBACnetApplicationTagEnumerated(value uint32) *BACnetApplicationTagEnu
 func CreateBACnetContextTagEnumerated(tagNumber uint8, value uint32) *BACnetContextTagEnumerated {
 	length, payload := CreateEnumeratedPayload(value)
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, length)
-	result := NewBACnetContextTagEnumerated(payload, header, tagNumber, true)
+	result := NewBACnetContextTagEnumerated(payload, header, tagNumber)
 	return CastBACnetContextTagEnumerated(result)
 }
 
@@ -806,7 +806,7 @@ func CreateBACnetContextTagDate(tagNumber uint8, year uint16, month, dayOfMonth,
 	if year == 0xFF {
 		yearMinus1900 = 0xFF
 	}
-	return NewBACnetContextTagDate(NewBACnetTagPayloadDate(yearMinus1900, month, dayOfMonth, dayOfWeek), header, tagNumber, true)
+	return NewBACnetContextTagDate(NewBACnetTagPayloadDate(yearMinus1900, month, dayOfMonth, dayOfWeek), header, tagNumber)
 }
 
 func CreateBACnetApplicationTagTime(hour, minute, second, fractional uint8) *BACnetApplicationTagTime {
@@ -816,7 +816,7 @@ func CreateBACnetApplicationTagTime(hour, minute, second, fractional uint8) *BAC
 
 func CreateBACnetContextTagTime(tagNumber uint8, hour, minute, second, fractional uint8) *BACnetContextTagTime {
 	header := CreateBACnetTagHeaderBalanced(true, tagNumber, 4)
-	return NewBACnetContextTagTime(NewBACnetTagPayloadTime(hour, minute, second, fractional), header, tagNumber, true)
+	return NewBACnetContextTagTime(NewBACnetTagPayloadTime(hour, minute, second, fractional), header, tagNumber)
 }
 
 func requiredLength(value uint) uint32 {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/SubscribeCOVPropertyMultipleErrorFirstFailedSubscription.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/SubscribeCOVPropertyMultipleErrorFirstFailedSubscription.go
index 7d9fda2680..654d216d43 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/SubscribeCOVPropertyMultipleErrorFirstFailedSubscription.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/SubscribeCOVPropertyMultipleErrorFirstFailedSubscription.go
@@ -149,7 +149,7 @@ func SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParse(readBuffer ut
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -201,7 +201,7 @@ func SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParse(readBuffer ut
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/VTCloseErrorListOfVTSessionIdentifiers.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/VTCloseErrorListOfVTSessionIdentifiers.go
index cae393d536..67ca5d00a6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/VTCloseErrorListOfVTSessionIdentifiers.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/VTCloseErrorListOfVTSessionIdentifiers.go
@@ -133,7 +133,7 @@ func VTCloseErrorListOfVTSessionIdentifiersParse(readBuffer utils.ReadBuffer, ta
 	if pullErr := readBuffer.PullContext("openingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_openingTag, _openingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_OPENING_TAG))
+	_openingTag, _openingTagErr := BACnetOpeningTagParse(readBuffer, uint8(tagNumber))
 	if _openingTagErr != nil {
 		return nil, errors.Wrap(_openingTagErr, "Error parsing 'openingTag' field")
 	}
@@ -166,7 +166,7 @@ func VTCloseErrorListOfVTSessionIdentifiersParse(readBuffer utils.ReadBuffer, ta
 	if pullErr := readBuffer.PullContext("closingTag"); pullErr != nil {
 		return nil, pullErr
 	}
-	_closingTag, _closingTagErr := BACnetContextTagParse(readBuffer, uint8(tagNumber), BACnetDataType(BACnetDataType_CLOSING_TAG))
+	_closingTag, _closingTagErr := BACnetClosingTagParse(readBuffer, uint8(tagNumber))
 	if _closingTagErr != nil {
 		return nil, errors.Wrap(_closingTagErr, "Error parsing 'closingTag' field")
 	}
diff --git a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
index bec85900a2..58325da599 100644
--- a/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
+++ b/plc4j/drivers/bacnet/src/main/java/org/apache/plc4x/java/bacnetip/readwrite/utils/StaticHelper.java
@@ -1069,7 +1069,7 @@ public class StaticHelper {
 
     public static BACnetContextTagNull createBACnetContextTagNull(byte tagNumber) {
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 0);
-        return new BACnetContextTagNull(header, (short) tagNumber, true);
+        return new BACnetContextTagNull(header, (short) tagNumber);
     }
 
     public static BACnetOpeningTag createBACnetOpeningTag(short tagNum) {
@@ -1082,7 +1082,7 @@ public class StaticHelper {
             extTagNumber = tagNum;
         }
         BACnetTagHeader header = new BACnetTagHeader(tagNumber, TagClass.CONTEXT_SPECIFIC_TAGS, (byte) 0x6, extTagNumber, null, null, null);
-        return new BACnetOpeningTag(header, tagNum, 0x6L);
+        return new BACnetOpeningTag(header, tagNum);
     }
 
     public static BACnetClosingTag createBACnetClosingTag(short tagNum) {
@@ -1095,7 +1095,7 @@ public class StaticHelper {
             extTagNumber = tagNum;
         }
         BACnetTagHeader header = new BACnetTagHeader(tagNumber, TagClass.CONTEXT_SPECIFIC_TAGS, (byte) 0x7, extTagNumber, null, null, null);
-        return new BACnetClosingTag(header, tagNum, 0x7L);
+        return new BACnetClosingTag(header, tagNum);
     }
 
     public static BACnetApplicationTagObjectIdentifier createBACnetApplicationTagObjectIdentifier(int objectType, long instance) {
@@ -1119,7 +1119,7 @@ public class StaticHelper {
             proprietaryValue = objectType;
         }
         BACnetTagPayloadObjectIdentifier payload = new BACnetTagPayloadObjectIdentifier(objectTypeEnum, proprietaryValue, instance);
-        return new BACnetContextTagObjectIdentifier(header, payload, (short) tagNum, true);
+        return new BACnetContextTagObjectIdentifier(header, payload, (short) tagNum);
     }
 
     public static BACnetPropertyIdentifierTagged createBACnetPropertyIdentifierTagged(byte tagNum, int propertyType) {
@@ -1140,7 +1140,7 @@ public class StaticHelper {
 
     public static BACnetContextTagBoolean createBACnetContextTagBoolean(byte tagNumber, boolean value) {
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 1);
-        return new BACnetContextTagBoolean(header, (short) (value ? 1 : 0), new BACnetTagPayloadBoolean(value ? 1L : 0L), (short) tagNumber, true);
+        return new BACnetContextTagBoolean(header, (short) (value ? 1 : 0), new BACnetTagPayloadBoolean(value ? 1L : 0L), (short) tagNumber);
     }
 
     public static BACnetApplicationTagUnsignedInteger createBACnetApplicationTagUnsignedInteger(long value) {
@@ -1152,7 +1152,7 @@ public class StaticHelper {
     public static BACnetContextTagUnsignedInteger createBACnetContextTagUnsignedInteger(byte tagNumber, long value) {
         Pair<Long, BACnetTagPayloadUnsignedInteger> lengthPayload = createUnsignedPayload(value);
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, lengthPayload.getLeft());
-        return new BACnetContextTagUnsignedInteger(header, lengthPayload.getRight(), (short) tagNumber, true);
+        return new BACnetContextTagUnsignedInteger(header, lengthPayload.getRight(), (short) tagNumber);
     }
 
     public static Pair<Long, BACnetTagPayloadUnsignedInteger> createUnsignedPayload(long value) {
@@ -1191,7 +1191,7 @@ public class StaticHelper {
     public static BACnetContextTagSignedInteger createBACnetContextTagSignedInteger(short tagNumber, long value) {
         Pair<Long, BACnetTagPayloadSignedInteger> lengthPayload = createSignedPayload(value);
         BACnetTagHeader header = createBACnetTagHeaderBalanced(false, (byte) tagNumber, lengthPayload.getLeft());
-        return new BACnetContextTagSignedInteger(header, lengthPayload.getRight(), tagNumber, true);
+        return new BACnetContextTagSignedInteger(header, lengthPayload.getRight(), tagNumber);
     }
 
     public static Pair<Long, BACnetTagPayloadSignedInteger> createSignedPayload(long value) {
@@ -1224,7 +1224,7 @@ public class StaticHelper {
 
     public static BACnetContextTagReal createBACnetContextTagReal(byte tagNumber, float value) {
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 4);
-        return new BACnetContextTagReal(header, new BACnetTagPayloadReal(value), (short) tagNumber, true);
+        return new BACnetContextTagReal(header, new BACnetTagPayloadReal(value), (short) tagNumber);
     }
 
     public static BACnetApplicationTagDouble createBACnetApplicationTagDouble(double value) {
@@ -1234,7 +1234,7 @@ public class StaticHelper {
 
     public static BACnetContextTagDouble createBACnetContextTagDouble(byte tagNumber, double value) {
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 8);
-        return new BACnetContextTagDouble(header, new BACnetTagPayloadDouble(value), (short) tagNumber, true);
+        return new BACnetContextTagDouble(header, new BACnetTagPayloadDouble(value), (short) tagNumber);
     }
 
     public static BACnetApplicationTagOctetString createBACnetApplicationTagOctetString(String value) {
@@ -1244,7 +1244,7 @@ public class StaticHelper {
 
     public static BACnetContextTagOctetString createBACnetContextTagOctetString(byte tagNumber, String value) {
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, value.length() + 1);
-        return new BACnetContextTagOctetString(header, new BACnetTagPayloadOctetString(value, (long) value.length() + 1), (short) tagNumber, true);
+        return new BACnetContextTagOctetString(header, new BACnetTagPayloadOctetString(value, (long) value.length() + 1), (short) tagNumber);
     }
 
     public static BACnetApplicationTagCharacterString createBACnetApplicationTagCharacterString(BACnetCharacterEncoding baCnetCharacterEncoding, String value) {
@@ -1254,7 +1254,7 @@ public class StaticHelper {
 
     public static BACnetContextTagCharacterString createBACnetContextTagCharacterString(byte tagNumber, BACnetCharacterEncoding baCnetCharacterEncoding, String value) {
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, value.length() + 1);
-        return new BACnetContextTagCharacterString(header, new BACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, (long) value.length() + 1), (short) tagNumber, true);
+        return new BACnetContextTagCharacterString(header, new BACnetTagPayloadCharacterString(baCnetCharacterEncoding, value, (long) value.length() + 1), (short) tagNumber);
     }
 
     public static BACnetApplicationTagBitString createBACnetApplicationTagBitString(List<Boolean> value) {
@@ -1274,7 +1274,7 @@ public class StaticHelper {
             unusedBits = 0;
         }
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, numberOfBytesNeeded + 1);
-        return new BACnetContextTagBitString(header, new BACnetTagPayloadBitString(unusedBits, value, new ArrayList<>(unusedBits), numberOfBytesNeeded + 1), (short) tagNumber, true);
+        return new BACnetContextTagBitString(header, new BACnetTagPayloadBitString(unusedBits, value, new ArrayList<>(unusedBits), numberOfBytesNeeded + 1), (short) tagNumber);
     }
 
     public static BACnetApplicationTagEnumerated createBACnetApplicationTagEnumerated(long value) {
@@ -1286,7 +1286,7 @@ public class StaticHelper {
     public static BACnetContextTagEnumerated createBACnetContextTagEnumerated(byte tagNumber, long value) {
         Pair<Long, BACnetTagPayloadEnumerated> lengthPayload = CreateEnumeratedPayload(value);
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, lengthPayload.getLeft());
-        return new BACnetContextTagEnumerated(header, lengthPayload.getRight(), (short) tagNumber, true);
+        return new BACnetContextTagEnumerated(header, lengthPayload.getRight(), (short) tagNumber);
     }
 
     public static Pair<Long, BACnetTagPayloadEnumerated> CreateEnumeratedPayload(long value) {
@@ -1311,7 +1311,7 @@ public class StaticHelper {
         if (year == 0xFF) {
             yearMinus1900 = 0xFF;
         }
-        return new BACnetContextTagDate(header, new BACnetTagPayloadDate(yearMinus1900, month, dayOfMonth, dayOfWeek), (short) tagNumber, true);
+        return new BACnetContextTagDate(header, new BACnetTagPayloadDate(yearMinus1900, month, dayOfMonth, dayOfWeek), (short) tagNumber);
     }
 
     public static BACnetApplicationTagTime createBACnetApplicationTagTime(short hour, short minute, short second, short fractional) {
@@ -1321,7 +1321,7 @@ public class StaticHelper {
 
     public static BACnetContextTagTime createBACnetContextTagTime(byte tagNumber, short hour, short minute, short second, short fractional) {
         BACnetTagHeader header = createBACnetTagHeaderBalanced(true, tagNumber, 4);
-        return new BACnetContextTagTime(header, new BACnetTagPayloadTime(hour, minute, second, fractional), (short) tagNumber, true);
+        return new BACnetContextTagTime(header, new BACnetTagPayloadTime(hour, minute, second, fractional), (short) tagNumber);
     }
 
     private static long requiredLength(long value) {
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index 520875eaa3..2ffd438a24 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -384,11 +384,11 @@
             [simple BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord   accessMethod        ]
         ]
         ['ATOMIC_WRITE_FILE' BACnetConfirmedServiceRequestAtomicWriteFile
-            [simple BACnetApplicationTagObjectIdentifier                  deviceIdentifier    ]
-            [optional BACnetOpeningTag('0', 'BACnetDataType.OPENING_TAG') openingTag          ]
-            [simple BACnetApplicationTagSignedInteger                     fileStartPosition   ]
-            [simple BACnetApplicationTagOctetString                       fileData            ]
-            [optional BACnetClosingTag('0', 'BACnetDataType.CLOSING_TAG') closingTag          ]
+            [simple BACnetApplicationTagObjectIdentifier                  deviceIdentifier          ]
+            [optional BACnetOpeningTag('0')                               openingTag                ]
+            [simple BACnetApplicationTagSignedInteger                     fileStartPosition         ]
+            [simple BACnetApplicationTagOctetString                       fileData                  ]
+            [optional BACnetClosingTag('0')                               closingTag                ]
         ]
         //
         ////
@@ -524,7 +524,7 @@
 ]
 
 [type BACnetConfirmedServiceRequestCreateObjectObjectSpecifier(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                      openingTag                                                                         ]
     [optional   BACnetContextTagEnumerated('0', 'BACnetDataType.ENUMERATED')
                      rawObjectType                                                                      ]
@@ -535,31 +535,31 @@
                      objectIdentifier                                                                   ]
     [virtual    bit  isObjectIdentifier   'objectIdentifier != null'                                    ]
     [validation 'isObjectType || isObjectIdentifier' "either we need a objectType or a objectIdentifier"]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                      closingTag                                                                         ]
 ]
 
 [type ListOfCovNotificationsList(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                      openingTag                                                                         ]
     [array    ListOfCovNotifications
                      specifications
                         terminated
                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                         closingTag                                                                      ]
 ]
 
 [type ListOfCovNotifications
     [simple     BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
                         monitoredObjectIdentifier                                                       ]
-    [simple     BACnetOpeningTag('1', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('1')
                         openingTag                                                                      ]
     [array      ListOfCovNotificationsValue('monitoredObjectIdentifier.objectType')
                         listOfValues
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'    ]
-    [simple     BACnetClosingTag('1', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('1')
                         closingTag                                                                      ]
 ]
 
@@ -575,26 +575,26 @@
 ]
 
 [type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                      openingTag                                                                         ]
     [array    BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
                      specifications
                         terminated
                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                      closingTag                                                                         ]
 ]
 
 [type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications
     [simple   BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
                     monitoredObjectIdentifier                                                           ]
-    [simple   BACnetOpeningTag('1', 'BACnetDataType.OPENING_TAG')
+    [simple   BACnetOpeningTag('1')
                     openingTag                                                                          ]
     [array    BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference
                     listOfCovReferences
                         terminated
                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'        ]
-    [simple     BACnetClosingTag('1', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('1')
                     closingTag                                                                          ]
 ]
 
@@ -610,22 +610,22 @@
 [type BACnetReadAccessSpecification
     [simple   BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
                     objectIdentifier                                                                    ]
-    [simple     BACnetOpeningTag('1', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('1')
                      openingTag                                                                         ]
     [array    BACnetPropertyReference
                     listOfPropertyReferences
                         terminated
                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'        ]
-    [simple     BACnetClosingTag('1', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('1')
                      closingTag                                                                         ]
 ]
 
 [type BACnetPropertyReferenceEnclosed(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                     openingTag                  ]
     [simple BACnetPropertyReference
                     reference                   ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                     closingTag                  ]
 ]
 
@@ -637,11 +637,11 @@
 ]
 
 [type BACnetObjectPropertyReferenceEnclosed(uint 8 tagNumber)
-   [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+   [simple     BACnetOpeningTag('tagNumber')
                    openingTag                  ]
    [simple BACnetObjectPropertyReference
                    objectPropertyReference     ]
-   [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+   [simple     BACnetClosingTag('tagNumber')
                    closingTag                  ]
 ]
 
@@ -657,21 +657,21 @@
 [type BACnetWriteAccessSpecification
     [simple     BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
                     objectIdentifier                ]
-    [simple     BACnetOpeningTag('1', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('1')
                      openingTag                     ]
     [array      BACnetPropertyWriteDefinition('objectIdentifier.objectType')
                     listOfPropertyWriteDefinition
                     terminated
                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'
     ]
-    [simple     BACnetClosingTag('1', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('1')
                      closingTag                     ]
 ]
 
 [type BACnetConfirmedServiceRequestReadRangeRange
     [peek       BACnetTagHeader
                     peekedTagHeader                 ]
-    [simple     BACnetOpeningTag('peekedTagHeader.actualTagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('peekedTagHeader.actualTagNumber')
                      openingTag                     ]
     [virtual    uint 8      peekedTagNumber     'peekedTagHeader.actualTagNumber']
     [typeSwitch peekedTagNumber
@@ -688,7 +688,7 @@
             [simple BACnetApplicationTagSignedInteger                     count                     ]
         ]
     ]
-    [simple     BACnetClosingTag('peekedTagHeader.actualTagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('peekedTagHeader.actualTagNumber')
                      closingTag
     ]
 ]
@@ -733,7 +733,7 @@
 [type BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord
     [peek       BACnetTagHeader
                     peekedTagHeader                 ]
-    [simple     BACnetOpeningTag('peekedTagHeader.actualTagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('peekedTagHeader.actualTagNumber')
                      openingTag                     ]
     [virtual    uint 8      peekedTagNumber     'peekedTagHeader.actualTagNumber']
     [typeSwitch peekedTagNumber
@@ -746,9 +746,8 @@
             [simple BACnetApplicationTagUnsignedInteger                   requestRecordCount  ]
         ]
     ]
-    [simple     BACnetClosingTag('peekedTagHeader.actualTagNumber', 'BACnetDataType.CLOSING_TAG')
-                     closingTag
-    ]
+    [simple     BACnetClosingTag('peekedTagHeader.actualTagNumber')
+                     closingTag                     ]
 ]
 
 [discriminatedType BACnetUnconfirmedServiceRequest(uint 16 serviceRequestLength)
@@ -1032,14 +1031,14 @@
 ]
 
 [type BACnetEventSummariesList(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                      openingTag                     ]
     [array    BACnetEventSummary
                          listOfEventSummaries
                          terminated
                          'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'
     ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                      closingTag                     ]
 ]
 
@@ -1061,7 +1060,7 @@
 ]
 
 [type BACnetEventTimestamps(uint 8 tagNumber)
-    [simple  BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple  BACnetOpeningTag('tagNumber')
                     openingTag
     ]
     [simple  BACnetTimeStamp
@@ -1070,13 +1069,13 @@
                     toFault                         ]
     [simple  BACnetTimeStamp
                     toNormal                        ]
-    [simple  BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple  BACnetClosingTag('tagNumber')
                     closingTag
     ]
 ]
 
 [type BACnetEventProrities(uint 8 tagNumber)
-    [simple  BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple  BACnetOpeningTag('tagNumber')
                     openingTag
     ]
     [simple  BACnetApplicationTagUnsignedInteger
@@ -1085,7 +1084,7 @@
                     toFault                         ]
     [simple  BACnetApplicationTagUnsignedInteger
                     toNormal                        ]
-    [simple  BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple  BACnetClosingTag('tagNumber')
                     closingTag
     ]
 ]
@@ -1107,13 +1106,13 @@
 ]
 
 [type BACnetReadAccessResultListOfResults(uint 8 tagNumber, BACnetObjectType objectType)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                      openingTag                                                                 ]
     [array    BACnetReadAccessProperty('objectType')
                     listOfReadAccessProperty
                     terminated
                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'    ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                      closingTag                                                                 ]
 ]
 
@@ -1156,7 +1155,7 @@
     [peek       BACnetTagHeader
                             peekedTagHeader
     ]
-    [simple     BACnetOpeningTag('peekedTagHeader.actualTagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('peekedTagHeader.actualTagNumber')
                      openingTag
     ]
     [virtual    uint 8      peekedTagNumber     'peekedTagHeader.actualTagNumber']
@@ -1178,7 +1177,7 @@
                             'returnedRecordCount.payload.actualValue'   ]
         ]
     ]
-    [simple     BACnetClosingTag('peekedTagHeader.actualTagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('peekedTagHeader.actualTagNumber')
                      closingTag
     ]
 ]
@@ -1239,19 +1238,19 @@
 ]
 
 [type VTCloseErrorListOfVTSessionIdentifiers(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                     openingTag                  ]
     [array      BACnetApplicationTagUnsignedInteger
                     listOfVtSessionIdentifiers
                              terminated
                              'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 1)'
                                                 ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                     closingTag                  ]
 ]
 
 [type SubscribeCOVPropertyMultipleErrorFirstFailedSubscription(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                     openingTag                  ]
     [simple     BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
                     monitoredObjectIdentifier   ]
@@ -1259,16 +1258,16 @@
                     monitoredPropertyReference  ]
     [simple     ErrorEnclosed('2')
                     errorType                   ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                     closingTag                  ]
 ]
 
 [type ErrorEnclosed(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                     openingTag          ]
     [simple     Error
                     error               ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                     closingTag          ]
 ]
 
@@ -1318,44 +1317,44 @@
 ]
 
 [type BACnetNotificationParameters(uint 8 tagNumber, BACnetObjectType objectType)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                             openingTag                                              ]
     [peek       BACnetTagHeader
                             peekedTagHeader                                         ]
     [virtual    uint 8      peekedTagNumber     'peekedTagHeader.actualTagNumber'   ]
     [typeSwitch peekedTagNumber
         ['0' BACnetNotificationParametersChangeOfBitString(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetContextTagBitString('0', 'BACnetDataType.BIT_STRING')
                             changeOfBitString ]
             [simple BACnetStatusFlags('1')
                             statusFlags ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['1' BACnetNotificationParametersChangeOfState(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetPropertyStates('0')
                             changeOfState ]
             [simple BACnetStatusFlags('1')
                             statusFlags ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['2' BACnetNotificationParametersChangeOfValue(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetNotificationParametersChangeOfValueNewValue('0')
                             newValue ]
             [simple BACnetStatusFlags('1')
                             statusFlags ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['3' BACnetNotificationParametersCommandFailure(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetConstructedData('0', 'objectType', 'BACnetPropertyIdentifier.VENDOR_PROPRIETARY_VALUE')
                             commandValue ]
@@ -1363,11 +1362,11 @@
                             statusFlags ]
             [simple BACnetConstructedData('2', 'objectType', 'BACnetPropertyIdentifier.VENDOR_PROPRIETARY_VALUE')
                             feedbackValue ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['4' BACnetNotificationParametersFloatingLimit(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetContextTagReal('0', 'BACnetDataType.REAL')
                             referenceValue ]
@@ -1377,11 +1376,11 @@
                             setPointValue ]
             [simple BACnetContextTagReal('3', 'BACnetDataType.REAL')
                             errorLimit ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['5' BACnetNotificationParametersOutOfRange(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetContextTagReal('0', 'BACnetDataType.REAL')
                             exceedingValue ]
@@ -1391,7 +1390,7 @@
                             deadband ]
             [simple BACnetContextTagReal('3', 'BACnetDataType.REAL')
                             exceededLimit ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['6' BACnetNotificationParametersComplexEventType(uint 8 peekedTagNumber)
@@ -1400,7 +1399,7 @@
         ]
         // TODO: implement other cases
         ['9' BACnetNotificationParametersExtended(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER')
                             vendorId ]
@@ -1408,11 +1407,11 @@
                             extendedEventType ]
             [simple BACnetNotificationParametersExtendedParameters('2')
                             parameters ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['10' BACnetNotificationParametersBufferReady(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetDeviceObjectPropertyReferenceEnclosed('0')
                             bufferProperty ]
@@ -1420,11 +1419,11 @@
                             previousNotification ]
             [simple BACnetContextTagUnsignedInteger('2', 'BACnetDataType.UNSIGNED_INTEGER')
                             currentNotification ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         ['11' BACnetNotificationParametersUnsignedRange(uint 8 peekedTagNumber)
-            [simple BACnetOpeningTag('peekedTagNumber', 'BACnetDataType.OPENING_TAG')
+            [simple BACnetOpeningTag('peekedTagNumber')
                             innerOpeningTag ]
             [simple BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER')
                             sequenceNumber ]
@@ -1432,7 +1431,7 @@
                             statusFlags ]
             [simple BACnetContextTagUnsignedInteger('2', 'BACnetDataType.UNSIGNED_INTEGER')
                             exceededLimit ]
-            [simple BACnetClosingTag('peekedTagNumber', 'BACnetDataType.CLOSING_TAG')
+            [simple BACnetClosingTag('peekedTagNumber')
                             innerClosingTag ]
         ]
         // TODO: implement other cases
@@ -1441,12 +1440,12 @@
             [validation    '1 == 2'    "TODO: implement me"]
         ]
     ]
-    [simple BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple BACnetClosingTag('tagNumber')
                     closingTag                                              ]
 ]
 
 [type BACnetNotificationParametersChangeOfValueNewValue(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                         openingTag                                                  ]
     [peek       BACnetTagHeader
                         peekedTagHeader
@@ -1462,12 +1461,12 @@
                         changedValue                                                ]
         ]
     ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                         closingTag                                                  ]
 ]
 
 [type BACnetNotificationParametersExtendedParameters(uint 8 tagNumber)
-    [simple   BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple   BACnetOpeningTag('tagNumber')
                         openingTag                                                  ]
     [peek     BACnetTagHeader
                         peekedTagHeader                                             ]
@@ -1516,19 +1515,19 @@
     [optional BACnetDeviceObjectPropertyReferenceEnclosed('0')
                     reference
                         'isOpeningTag && !isClosingTag'                                 ]
-    [simple   BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple   BACnetClosingTag('tagNumber')
                     closingTag                                                          ]
 ]
 
 [type BACnetPropertyValues(uint 8 tagNumber, BACnetObjectType objectType)
-    [simple  BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple  BACnetOpeningTag('tagNumber')
                     innerOpeningTag                                                     ]
     [array   BACnetPropertyValue('objectType')
                     data
                         terminated
                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'
                                                                                         ]
-    [simple  BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple  BACnetClosingTag('tagNumber')
                     innerClosingTag                                                     ]
 ]
 
@@ -1540,9 +1539,9 @@
 ]
 
 [type BACnetDeviceObjectPropertyReferenceEnclosed(uint 8 tagNumber)
-    [simple   BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')                           openingTag          ]
+    [simple   BACnetOpeningTag('tagNumber')                                                         openingTag          ]
     [simple   BACnetDeviceObjectPropertyReference                                                   value               ]
-    [simple   BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')                           closingTag          ]
+    [simple   BACnetClosingTag('tagNumber')                                                         closingTag          ]
 ]
 
 [type BACnetLifeSafetyModeTagged(uint 8 tagNumber, TagClass tagClass)
@@ -1629,13 +1628,13 @@
 ]
 
 [type BACnetActionList
-    [simple BACnetOpeningTag('0', 'BACnetDataType.OPENING_TAG')
+    [simple BACnetOpeningTag('0')
                     innerOpeningTag                                                             ]
     [array  BACnetActionCommand
                     action
                         terminated
                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, 0)']
-    [simple BACnetClosingTag('0', 'BACnetDataType.CLOSING_TAG')
+    [simple BACnetClosingTag('0')
                     innerClosingTag                                                             ]
 ]
 
@@ -1674,7 +1673,7 @@
 ]
 
 [type BACnetPropertyStates(uint 8 tagNumber)
-    [simple  BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple  BACnetOpeningTag('tagNumber')
                     openingTag                              ]
     [peek    BACnetTagHeader
                     peekedTagHeader                         ]
@@ -1710,7 +1709,7 @@
                 [validation    '1 == 2'    "TODO: implement me"]
         ]
     ]
-    [simple  BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple  BACnetClosingTag('tagNumber')
                     closingTag                              ]
 ]
 
@@ -1736,23 +1735,23 @@
 ]
 
 [type BACnetTimeStampEnclosed(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                     openingTag          ]
     [simple     BACnetTimeStamp
                     timestamp           ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                     closingTag          ]
 ]
 
 [type BACnetTimeStampsEnclosed(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                     openingTag ]
     [array      BACnetTimeStamp
                         timestamps
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'
                                             ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                         closingTag          ]
 ]
 
@@ -1764,11 +1763,11 @@
 ]
 
 [type BACnetDateTimeEnclosed(uint 8 tagNumber)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                         openingTag          ]
     [simple     BACnetDateTime
                         dateTimeValue       ]
-    [simple     BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple     BACnetClosingTag('tagNumber')
                         closingTag          ]
 ]
 
@@ -1869,86 +1868,73 @@
 
 [discriminatedType BACnetContextTag(uint 8 tagNumberArgument, BACnetDataType dataType)
     [simple        BACnetTagHeader
-                            header
-    ]
+                            header                                                                                      ]
     [validation    'header.actualTagNumber == tagNumberArgument' "tagnumber doesn't match" shouldFail=false             ]
     [validation    'header.tagClass == TagClass.CONTEXT_SPECIFIC_TAGS' "should be a context tag"                        ]
     [virtual       uint 4   tagNumber     'header.tagNumber'                                                            ]
     [virtual       uint 32  actualLength  'header.actualLength'                                                         ]
-    [virtual       bit      isNotOpeningOrClosingTag    'header.lengthValueType != 6 && header.lengthValueType != 7'    ]
+    [validation    'header.lengthValueType != 6 && header.lengthValueType != 7' 
+                   "length 6 and 7 reserved for opening and closing tag" shouldFail=false                               ]
     [typeSwitch dataType
-        ['NULL' BACnetContextTagNull(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['NULL' BACnetContextTagNull(BACnetTagHeader header)
             [validation 'header.actualLength == 0' "length field should be 0"                                           ]
         ]
-        ['BOOLEAN' BACnetContextTagBoolean(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['BOOLEAN' BACnetContextTagBoolean(BACnetTagHeader header)
             [validation 'header.actualLength == 1' "length field should be 1"                                           ]
             [simple  uint 8 value                                                                                       ]
             [simple BACnetTagPayloadBoolean('value')
                             payload                                                                                     ]
             [virtual bit    actualValue 'payload.value'                                                                 ]
         ]
-        ['UNSIGNED_INTEGER' BACnetContextTagUnsignedInteger(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['UNSIGNED_INTEGER' BACnetContextTagUnsignedInteger(BACnetTagHeader header)
             [simple BACnetTagPayloadUnsignedInteger('header.actualLength')
                                 payload                                                                                 ]
             [virtual    uint 64 actualValue 'payload.actualValue'                                                       ]
         ]
-        ['SIGNED_INTEGER' BACnetContextTagSignedInteger(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['SIGNED_INTEGER' BACnetContextTagSignedInteger(BACnetTagHeader header)
             [simple BACnetTagPayloadSignedInteger('header.actualLength')
                                 payload                                                                                 ]
             [virtual    uint 64     actualValue 'payload.actualValue'                                                   ]
         ]
-        ['REAL' BACnetContextTagReal(bit isNotOpeningOrClosingTag)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag"]
+        ['REAL' BACnetContextTagReal
             [simple BACnetTagPayloadReal
                                     payload                                                                             ]
             [virtual    float 32     actualValue 'payload.value'                                                        ]
         ]
-        ['DOUBLE' BACnetContextTagDouble(bit isNotOpeningOrClosingTag)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag"]
+        ['DOUBLE' BACnetContextTagDouble
             [simple BACnetTagPayloadDouble
                                 payload                                                                                 ]
 
             [virtual    float 64     actualValue 'payload.value'                                                        ]
         ]
-        ['OCTET_STRING' BACnetContextTagOctetString(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag"]
+        ['OCTET_STRING' BACnetContextTagOctetString(BACnetTagHeader header)
             [simple BACnetTagPayloadOctetString('header.actualLength')
                                 payload                                                                                 ]
             [virtual vstring     value             'payload.value'                                                      ]
         ]
-        ['CHARACTER_STRING' BACnetContextTagCharacterString(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['CHARACTER_STRING' BACnetContextTagCharacterString(BACnetTagHeader header)
             [simple BACnetTagPayloadCharacterString('header.actualLength')
                                 payload                                                                                 ]
             [virtual vstring     value             'payload.value'                                                      ]
         ]
-        ['BIT_STRING' BACnetContextTagBitString(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['BIT_STRING' BACnetContextTagBitString(BACnetTagHeader header)
             [simple BACnetTagPayloadBitString('header.actualLength')
                                 payload                                                                                 ]
         ]
-        ['ENUMERATED' BACnetContextTagEnumerated(bit isNotOpeningOrClosingTag, BACnetTagHeader header)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['ENUMERATED' BACnetContextTagEnumerated(BACnetTagHeader header)
             [simple BACnetTagPayloadEnumerated('header.actualLength')
                                 payload                                                                                 ]
             [virtual  uint 32   actualValue 'payload.actualValue'                                                       ]
         ]
-        ['DATE' BACnetContextTagDate(bit isNotOpeningOrClosingTag)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['DATE' BACnetContextTagDate
             [simple BACnetTagPayloadDate
                                 payload                                                                                 ]
         ]
-        ['TIME' BACnetContextTagTime(bit isNotOpeningOrClosingTag)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['TIME' BACnetContextTagTime
             [simple     BACnetTagPayloadTime
                                 payload                                                                                 ]
         ]
-        ['BACNET_OBJECT_IDENTIFIER' BACnetContextTagObjectIdentifier(bit isNotOpeningOrClosingTag)
-            [validation 'isNotOpeningOrClosingTag' "length 6 and 7 reserved for opening and closing tag" shouldFail=false]
+        ['BACNET_OBJECT_IDENTIFIER' BACnetContextTagObjectIdentifier
             [simple  BACnetTagPayloadObjectIdentifier
                                 payload                                                                                 ]
             [virtual BACnetObjectType
@@ -1956,22 +1942,26 @@
             [virtual uint 22    instanceNumber
                                                'payload.instanceNumber'                                                 ]
         ]
-        // TODO: externalize
-        ['OPENING_TAG' BACnetOpeningTag(uint 32 actualLength)
-            [validation 'actualLength == 6' "opening tag should have a value of 6"]
-        ]
-        // TODO: externalize
-        ['CLOSING_TAG' BACnetClosingTag(uint 32 actualLength)
-            [validation 'actualLength == 7' "closing tag should have a value of 7"]
-        ]
         ['UNKNOWN' BACnetContextTagUnknown(uint 32 actualLength)
-            [array byte unknownData length 'actualLength'          ]
-        ]
-        [BACnetContextTagEmpty
+            [array byte unknownData length 'actualLength'                                                               ]
         ]
     ]
 ]
 
+[type BACnetOpeningTag(uint 8 tagNumberArgument)
+    [simple        BACnetTagHeader header                                                                               ]
+    [validation    'header.actualTagNumber == tagNumberArgument' "tagnumber doesn't match" shouldFail=false             ]
+    [validation    'header.tagClass == TagClass.CONTEXT_SPECIFIC_TAGS' "should be a context tag"                        ]
+    [validation    'header.lengthValueType == 6' "opening tag should have a value of 6"                                 ]
+]
+
+[type BACnetClosingTag(uint 8 tagNumberArgument)
+    [simple        BACnetTagHeader header                                                                               ]
+    [validation    'header.actualTagNumber == tagNumberArgument' "tagnumber doesn't match" shouldFail=false             ]
+    [validation    'header.tagClass == TagClass.CONTEXT_SPECIFIC_TAGS' "should be a context tag"                        ]
+    [validation    'header.lengthValueType == 7' "closing tag should have a value of 7"                                 ]
+]
+
 [type BACnetTagPayloadBoolean(uint 32 actualLength)
     [virtual bit value   'actualLength == 1'    ]
     [virtual bit isTrue  'value'                ]
@@ -2091,7 +2081,7 @@
 ]
 
 [type BACnetConstructedData(uint 8 tagNumber, BACnetObjectType objectType, BACnetPropertyIdentifier propertyIdentifierArgument)
-    [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
+    [simple     BACnetOpeningTag('tagNumber')
                         openingTag                                                                              ]
     [typeSwitch objectType, propertyIdentifierArgument
         //[*, 'ABSENTEE_LIMIT'                          BACnetConstructedDataAbsenteeLimit [validation    '1 == 2'    "TODO: implement me ABSENTEE_LIMIT BACnetConstructedDataAbsenteeLimit"]]
@@ -2606,7 +2596,7 @@
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
     ]
-    [simple       BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
+    [simple       BACnetClosingTag('tagNumber')
                         closingTag                                                                              ]
 ]
 
@@ -2669,18 +2659,7 @@
     ['10' DATE                                  ]
     ['11' TIME                                  ]
     ['12' BACNET_OBJECT_IDENTIFIER              ]
-    //////////
-    //////////
-    //
-    // Custom plc4x helper values below here
-    // TODO: we might get rid of that because of tagged
-    ['20' OPENING_TAG                           ]
-    ['21' CLOSING_TAG                           ]
-    // Event Related tags
     ['33' UNKNOWN                               ]
-    //
-    //////////
-    //////////
 ]
 
 // plc4x helper enum
diff --git a/protocols/bacnetip/src/test/resources/protocols/bacnet/ParserSerializerTestsuite.xml b/protocols/bacnetip/src/test/resources/protocols/bacnet/ParserSerializerTestsuite.xml
index c3cba604ad..4e5745fb3a 100644
--- a/protocols/bacnetip/src/test/resources/protocols/bacnet/ParserSerializerTestsuite.xml
+++ b/protocols/bacnetip/src/test/resources/protocols/bacnet/ParserSerializerTestsuite.xml
@@ -886,7 +886,7 @@
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -896,9 +896,7 @@
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -969,7 +967,7 @@ make -f demo/object/ai</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -979,9 +977,7 @@ make -f demo/object/ai</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1155,7 +1151,7 @@ make -f demo/object/ai</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1165,9 +1161,7 @@ make -f demo/object/ai</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -1232,7 +1226,7 @@ make -f awf.mak</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1242,9 +1236,7 @@ make -f awf.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1418,7 +1410,7 @@ make -f awf.mak</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1428,9 +1420,7 @@ make -f awf.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -1498,7 +1488,7 @@ make -f bacstr.mak</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1508,9 +1498,7 @@ make -f bacstr.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1684,7 +1672,7 @@ make -f bacstr.mak</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1694,9 +1682,7 @@ make -f bacstr.mak</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -1761,7 +1747,7 @@ make -f crc.mak clean</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1771,9 +1757,7 @@ make -f crc.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -1947,7 +1931,7 @@ make -f crc.mak clean</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -1957,9 +1941,7 @@ make -f crc.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2025,7 +2007,7 @@ make -f demo/object/lsp.</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2035,9 +2017,7 @@ make -f demo/object/lsp.</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -2211,7 +2191,7 @@ make -f demo/object/lsp.</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2221,9 +2201,7 @@ make -f demo/object/lsp.</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2292,7 +2270,7 @@ make</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2302,9 +2280,7 @@ make</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -2478,7 +2454,7 @@ make</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2488,9 +2464,7 @@ make</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2560,7 +2534,7 @@ make -f tsm.mak cle</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2570,9 +2544,7 @@ make -f tsm.mak cle</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -2746,7 +2718,7 @@ make -f tsm.mak cle</value>
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2756,9 +2728,7 @@ make -f tsm.mak cle</value>
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -2821,7 +2791,7 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -2831,9 +2801,7 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -4632,7 +4600,7 @@ make -f wp.mak clean</value>
                           <values>
                             <BACnetConstructedData>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -4642,9 +4610,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConstructedDataUnspecified>
                                 <data isList="true">
@@ -4923,7 +4889,7 @@ make -f wp.mak clean</value>
                                 </data>
                               </BACnetConstructedDataUnspecified>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -4933,9 +4899,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConstructedData>
                           </values>
@@ -5082,7 +5046,7 @@ make -f wp.mak clean</value>
                           <listOfValues>
                             <BACnetPropertyValues>
                               <innerOpeningTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">4</tagNumber>
@@ -5092,9 +5056,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </innerOpeningTag>
                               <data isList="true">
                                 <BACnetPropertyValue>
@@ -5117,7 +5079,7 @@ make -f wp.mak clean</value>
                                       <constructedData>
                                         <BACnetConstructedData>
                                           <openingTag>
-                                            <BACnetContextTag>
+                                            <BACnetOpeningTag>
                                               <header>
                                                 <BACnetTagHeader>
                                                   <tagNumber dataType="uint" bitLength="4">2</tagNumber>
@@ -5127,9 +5089,7 @@ make -f wp.mak clean</value>
                                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                                 </BACnetTagHeader>
                                               </header>
-                                              <BACnetOpeningTag>
-                                              </BACnetOpeningTag>
-                                            </BACnetContextTag>
+                                            </BACnetOpeningTag>
                                           </openingTag>
                                           <BACnetConstructedDataUnspecified>
                                             <data isList="true">
@@ -5158,7 +5118,7 @@ make -f wp.mak clean</value>
                                             </data>
                                           </BACnetConstructedDataUnspecified>
                                           <closingTag>
-                                            <BACnetContextTag>
+                                            <BACnetClosingTag>
                                               <header>
                                                 <BACnetTagHeader>
                                                   <tagNumber dataType="uint" bitLength="4">2</tagNumber>
@@ -5168,9 +5128,7 @@ make -f wp.mak clean</value>
                                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                                 </BACnetTagHeader>
                                               </header>
-                                              <BACnetClosingTag>
-                                              </BACnetClosingTag>
-                                            </BACnetContextTag>
+                                            </BACnetClosingTag>
                                           </closingTag>
                                         </BACnetConstructedData>
                                       </constructedData>
@@ -5179,7 +5137,7 @@ make -f wp.mak clean</value>
                                 </BACnetPropertyValue>
                               </data>
                               <innerClosingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">4</tagNumber>
@@ -5189,9 +5147,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </innerClosingTag>
                             </BACnetPropertyValues>
                           </listOfValues>
@@ -5533,7 +5489,7 @@ make -f wp.mak clean</value>
                           <propertyValue>
                             <BACnetConstructedData>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -5543,9 +5499,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConstructedDataUnspecified>
                                 <data isList="true">
@@ -5569,7 +5523,7 @@ make -f wp.mak clean</value>
                                 </data>
                               </BACnetConstructedDataUnspecified>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">3</tagNumber>
@@ -5579,9 +5533,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConstructedData>
                           </propertyValue>
@@ -8423,7 +8375,7 @@ make -f wp.mak clean</value>
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8433,9 +8385,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -8480,7 +8430,7 @@ make -f wp.mak clean</value>
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8490,9 +8440,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -8580,7 +8528,7 @@ make -f wp.mak clean</value>
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8590,9 +8538,7 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -8663,7 +8609,7 @@ Test "BACnet Applicat</value>
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8673,9 +8619,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -8771,7 +8715,7 @@ Test "BACnet Applicat</value>
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8781,9 +8725,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -8828,7 +8770,7 @@ Test "BACnet Applicat</value>
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8838,9 +8780,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -8928,7 +8868,7 @@ Test "BACnet Applicat</value>
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8938,9 +8878,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9016,7 +8954,7 @@ Test "BACnet I-Am":
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9026,9 +8964,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9124,7 +9060,7 @@ Test "BACnet I-Am":
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9134,9 +9070,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9181,7 +9115,7 @@ Test "BACnet I-Am":
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9191,9 +9125,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9281,7 +9213,7 @@ Test "BACnet I-Am":
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9291,9 +9223,7 @@ Test "BACnet I-Am":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9366,7 +9296,7 @@ Test "BACnet ReadProperty":
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9376,9 +9306,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9474,7 +9402,7 @@ Test "BACnet ReadProperty":
                           <accessMethod>
                             <BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9484,9 +9412,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetConfirmedServiceRequestAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9531,7 +9457,7 @@ Test "BACnet ReadProperty":
                                 </requestOctetCount>
                               </BACnetConfirmedServiceRequestAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9541,9 +9467,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9631,7 +9555,7 @@ Test "BACnet ReadProperty":
                           <accessMethod>
                             <BACnetServiceAckAtomicReadFileStreamOrRecord>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9641,9 +9565,7 @@ Test "BACnet ReadProperty":
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <BACnetServiceAckAtomicReadFileStream>
                                 <fileStartPosition>
@@ -9705,7 +9627,7 @@ Test "BACnet WriteProperty":
                                 </fileData>
                               </BACnetServiceAckAtomicReadFileStream>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9715,9 +9637,7 @@ Test "BACnet WriteProperty":
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetServiceAckAtomicReadFileStreamOrRecord>
                           </accessMethod>
@@ -9811,7 +9731,7 @@ Test "BACnet WriteProperty":
                             </BACnetApplicationTag>
                           </deviceIdentifier>
                           <openingTag>
-                            <BACnetContextTag>
+                            <BACnetOpeningTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9821,9 +9741,7 @@ Test "BACnet WriteProperty":
                                   <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetOpeningTag>
-                              </BACnetOpeningTag>
-                            </BACnetContextTag>
+                            </BACnetOpeningTag>
                           </openingTag>
                           <fileStartPosition>
                             <BACnetApplicationTag>
@@ -9892,7 +9810,7 @@ Test "BACnet Applicat</value>
                             </BACnetApplicationTag>
                           </fileData>
                           <closingTag>
-                            <BACnetContextTag>
+                            <BACnetClosingTag>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -9902,9 +9820,7 @@ Test "BACnet Applicat</value>
                                   <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetClosingTag>
-                              </BACnetClosingTag>
-                            </BACnetContextTag>
+                            </BACnetClosingTag>
                           </closingTag>
                         </BACnetConfirmedServiceRequestAtomicWriteFile>
                       </BACnetConfirmedServiceRequest>
@@ -10053,7 +9969,7 @@ Test "BACnet Applicat</value>
                                 </BACnetContextTag>
                               </objectIdentifier>
                               <openingTag>
-                                <BACnetContextTag>
+                                <BACnetOpeningTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -10063,9 +9979,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">6</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetOpeningTag>
-                                  </BACnetOpeningTag>
-                                </BACnetContextTag>
+                                </BACnetOpeningTag>
                               </openingTag>
                               <listOfPropertyReferences isList="true">
                                 <BACnetPropertyReference>
@@ -10086,7 +10000,7 @@ Test "BACnet Applicat</value>
                                 </BACnetPropertyReference>
                               </listOfPropertyReferences>
                               <closingTag>
-                                <BACnetContextTag>
+                                <BACnetClosingTag>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -10096,9 +10010,7 @@ Test "BACnet Applicat</value>
                                       <lengthValueType dataType="uint" bitLength="3">7</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetClosingTag>
-                                  </BACnetClosingTag>
-                                </BACnetContextTag>
+                                </BACnetClosingTag>
                               </closingTag>
                             </BACnetReadAccessSpecification>
                           </data>