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/01/13 14:42:13 UTC

[plc4x] branch develop updated: feat(bacnet): support for life support zones

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 0806f51  feat(bacnet): support for life support zones
0806f51 is described below

commit 0806f517249153048ded8a2ee442e72909f42e00
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jan 13 15:42:03 2022 +0100

    feat(bacnet): support for life support zones
---
 .../language/go/GoLanguageTemplateHelper.java      |  12 +-
 .../resources/templates/go/model-template.go.ftlh  | 105 ++++++-
 .../model/DF1RequestProtectedTypedLogicalRead.go   |   3 +-
 plc4go/internal/plc4go/ads/fieldtype_string.go     |  17 ++
 .../model/AdsAddDeviceNotificationRequest.go       |   3 +-
 .../model/AdsAddDeviceNotificationResponse.go      |   3 +-
 .../model/AdsDeleteDeviceNotificationRequest.go    |   3 +-
 .../model/AdsDeleteDeviceNotificationResponse.go   |   3 +-
 .../model/AdsDeviceNotificationRequest.go          |   3 +-
 .../model/AdsDeviceNotificationResponse.go         |   3 +-
 .../ads/readwrite/model/AdsInvalidRequest.go       |   3 +-
 .../ads/readwrite/model/AdsInvalidResponse.go      |   3 +-
 .../ads/readwrite/model/AdsMultiRequestItemRead.go |   3 +-
 .../model/AdsMultiRequestItemReadWrite.go          |   3 +-
 .../readwrite/model/AdsMultiRequestItemWrite.go    |   3 +-
 .../readwrite/model/AdsReadDeviceInfoRequest.go    |   3 +-
 .../readwrite/model/AdsReadDeviceInfoResponse.go   |   3 +-
 .../plc4go/ads/readwrite/model/AdsReadRequest.go   |   3 +-
 .../plc4go/ads/readwrite/model/AdsReadResponse.go  |   3 +-
 .../ads/readwrite/model/AdsReadStateRequest.go     |   3 +-
 .../ads/readwrite/model/AdsReadStateResponse.go    |   3 +-
 .../ads/readwrite/model/AdsReadWriteRequest.go     |   3 +-
 .../ads/readwrite/model/AdsReadWriteResponse.go    |   3 +-
 .../ads/readwrite/model/AdsWriteControlRequest.go  |   3 +-
 .../ads/readwrite/model/AdsWriteControlResponse.go |   3 +-
 .../plc4go/ads/readwrite/model/AdsWriteRequest.go  |   3 +-
 .../plc4go/ads/readwrite/model/AdsWriteResponse.go |   3 +-
 .../plc4go/bacnetip/readwrite/ParserHelper.go      |  17 +-
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   |  19 +-
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |   3 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |   3 +-
 .../readwrite/model/APDUConfirmedRequest.go        |   3 +-
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |   3 +-
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |   3 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |   3 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |   3 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |   3 +-
 .../plc4go/bacnetip/readwrite/model/APDUUnknown.go |   3 +-
 .../model/BACnetConfirmedServiceACKCreateObject.go |   3 +-
 .../model/BACnetConfirmedServiceACKReadProperty.go |   3 +-
 .../model/BACnetConfirmedServiceACKReadRange.go    |   3 +-
 .../model/BACnetConfirmedServiceACKVTData.go       |   3 +-
 .../model/BACnetConfirmedServiceACKVTOpen.go       |   3 +-
 .../model/BACnetConfirmedServiceAddListElement.go  |   3 +-
 ...firmedServiceRequestConfirmedCOVNotification.go |   2 +-
 ...rmedServiceRequestConfirmedEventNotification.go |   2 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  |   2 +-
 .../readwrite/model/BACnetConstructedData.go       | 150 ++++------
 .../model/BACnetConstructedDataElement.go          |   6 +-
 .../model/BACnetConstructedDataLifeSafetyZone.go   | 187 ++++++++++++
 .../model/BACnetConstructedDataUnspecified.go      | 231 +++++++++++++++
 .../model/BACnetNotificationParameters.go          |  16 +-
 .../BACnetNotificationParametersBufferReady.go     |   2 +-
 ...ACnetNotificationParametersChangeOfBitString.go |   2 +-
 .../BACnetNotificationParametersChangeOfState.go   |   2 +-
 .../BACnetNotificationParametersChangeOfValue.go   |   2 +-
 ...BACnetNotificationParametersComplexEventType.go |   4 +-
 .../model/BACnetNotificationParametersExtended.go  |   2 +-
 .../BACnetNotificationParametersUnsignedRange.go   |   2 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   8 +
 .../readwrite/model/BACnetPropertyValue.go         |   4 +-
 .../readwrite/model/BACnetPropertyValues.go        |   8 +-
 .../model/BACnetServiceAckAtomicReadFile.go        |   3 +-
 .../model/BACnetServiceAckAtomicWriteFile.go       |   3 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |   3 +-
 .../model/BACnetServiceAckCreateObject.go          |   3 +-
 .../model/BACnetServiceAckGetAlarmSummary.go       |   3 +-
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |   3 +-
 .../model/BACnetServiceAckGetEventInformation.go   |   3 +-
 .../model/BACnetServiceAckReadProperty.go          |   5 +-
 .../model/BACnetServiceAckReadPropertyMultiple.go  |   3 +-
 .../readwrite/model/BACnetServiceAckReadRange.go   |   3 +-
 .../model/BACnetServiceAckRemovedAuthenticate.go   |   3 +-
 ...CnetServiceAckRemovedReadPropertyConditional.go |   3 +-
 .../readwrite/model/BACnetServiceAckVTData.go      |   3 +-
 .../readwrite/model/BACnetServiceAckVTOpen.go      |   3 +-
 ...rmedServiceRequestUnconfirmedCOVNotification.go |   2 +-
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   2 +-
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |  66 ++---
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |  21 +-
 .../model/BVLCDistributeBroadcastToNetwork.go      |  46 ++-
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |  94 +++---
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |  46 ++-
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |  46 ++-
 .../model/BVLCReadBroadcastDistributionTable.go    |  21 +-
 .../model/BVLCReadBroadcastDistributionTableAck.go |  21 +-
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |  22 +-
 .../model/BVLCReadForeignDeviceTableAck.go         |  22 +-
 .../readwrite/model/BVLCRegisterForeignDevice.go   |  42 ++-
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |  46 ++-
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |  22 +-
 .../model/BVLCWriteBroadcastDistributionTable.go   |  49 ++--
 .../bacnetip/readwrite/model/StaticHelper.go       |   7 +-
 .../df1/readwrite/model/DF1SymbolMessageFrame.go   |   3 +-
 .../readwrite/model/DF1SymbolMessageFrameACK.go    |   3 +-
 .../readwrite/model/DF1SymbolMessageFrameNAK.go    |   3 +-
 .../plc4go/eip/readwrite/model/CipReadRequest.go   |   3 +-
 .../plc4go/eip/readwrite/model/CipReadResponse.go  |   3 +-
 .../eip/readwrite/model/CipUnconnectedRequest.go   |   3 +-
 .../plc4go/eip/readwrite/model/CipWriteRequest.go  |   3 +-
 .../plc4go/eip/readwrite/model/CipWriteResponse.go |   3 +-
 .../eip/readwrite/model/MultipleServiceRequest.go  |   3 +-
 .../eip/readwrite/model/MultipleServiceResponse.go |   3 +-
 .../model/FirmataCommandProtocolVersion.go         |   3 +-
 .../model/FirmataCommandSetDigitalPinValue.go      |   3 +-
 .../readwrite/model/FirmataCommandSetPinMode.go    |   3 +-
 .../firmata/readwrite/model/FirmataCommandSysex.go |   3 +-
 .../readwrite/model/FirmataCommandSystemReset.go   |   3 +-
 .../readwrite/model/FirmataMessageAnalogIO.go      |   3 +-
 .../readwrite/model/FirmataMessageCommand.go       |   3 +-
 .../readwrite/model/FirmataMessageDigitalIO.go     |   3 +-
 .../model/FirmataMessageSubscribeAnalogPinValue.go |   3 +-
 .../FirmataMessageSubscribeDigitalPinValue.go      |   3 +-
 .../model/SysexCommandAnalogMappingQueryRequest.go |   3 +-
 .../SysexCommandAnalogMappingQueryResponse.go      |   3 +-
 .../model/SysexCommandAnalogMappingResponse.go     |   3 +-
 .../readwrite/model/SysexCommandCapabilityQuery.go |   3 +-
 .../model/SysexCommandCapabilityResponse.go        |   3 +-
 .../readwrite/model/SysexCommandExtendedAnalog.go  |   3 +-
 .../readwrite/model/SysexCommandExtendedId.go      |   3 +-
 .../readwrite/model/SysexCommandPinStateQuery.go   |   3 +-
 .../model/SysexCommandPinStateResponse.go          |   3 +-
 .../model/SysexCommandReportFirmwareRequest.go     |   3 +-
 .../model/SysexCommandReportFirmwareResponse.go    |   3 +-
 .../model/SysexCommandSamplingInterval.go          |   3 +-
 .../readwrite/model/SysexCommandStringData.go      |   3 +-
 .../model/SysexCommandSysexNonRealtime.go          |   3 +-
 .../readwrite/model/SysexCommandSysexRealtime.go   |   3 +-
 .../knxnetip/readwrite/model/ApduControlAck.go     |   3 +-
 .../knxnetip/readwrite/model/ApduControlConnect.go |   3 +-
 .../readwrite/model/ApduControlDisconnect.go       |   3 +-
 .../knxnetip/readwrite/model/ApduControlNack.go    |   3 +-
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    |   3 +-
 .../readwrite/model/ApduDataAdcResponse.go         |   3 +-
 .../model/ApduDataDeviceDescriptorRead.go          |   3 +-
 .../model/ApduDataDeviceDescriptorResponse.go      |   3 +-
 .../readwrite/model/ApduDataExtAuthorizeRequest.go |   3 +-
 .../model/ApduDataExtAuthorizeResponse.go          |   3 +-
 .../model/ApduDataExtDomainAddressRead.go          |   3 +-
 .../model/ApduDataExtDomainAddressResponse.go      |   3 +-
 .../model/ApduDataExtDomainAddressSelectiveRead.go |   3 +-
 .../ApduDataExtDomainAddressSerialNumberRead.go    |   3 +-
 ...ApduDataExtDomainAddressSerialNumberResponse.go |   3 +-
 .../ApduDataExtDomainAddressSerialNumberWrite.go   |   3 +-
 .../model/ApduDataExtDomainAddressWrite.go         |   3 +-
 .../model/ApduDataExtFileStreamInfoReport.go       |   3 +-
 .../ApduDataExtGroupPropertyValueInfoReport.go     |   3 +-
 .../model/ApduDataExtGroupPropertyValueRead.go     |   3 +-
 .../model/ApduDataExtGroupPropertyValueResponse.go |   3 +-
 .../model/ApduDataExtGroupPropertyValueWrite.go    |   3 +-
 ...ApduDataExtIndividualAddressSerialNumberRead.go |   3 +-
 ...DataExtIndividualAddressSerialNumberResponse.go |   3 +-
 ...pduDataExtIndividualAddressSerialNumberWrite.go |   3 +-
 .../readwrite/model/ApduDataExtKeyResponse.go      |   3 +-
 .../readwrite/model/ApduDataExtKeyWrite.go         |   3 +-
 .../readwrite/model/ApduDataExtLinkRead.go         |   3 +-
 .../readwrite/model/ApduDataExtLinkResponse.go     |   3 +-
 .../readwrite/model/ApduDataExtLinkWrite.go        |   3 +-
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   |   3 +-
 .../model/ApduDataExtNetworkParameterRead.go       |   3 +-
 .../model/ApduDataExtNetworkParameterResponse.go   |   3 +-
 .../model/ApduDataExtNetworkParameterWrite.go      |   3 +-
 .../model/ApduDataExtOpenRoutingTableRequest.go    |   3 +-
 .../model/ApduDataExtPropertyDescriptionRead.go    |   3 +-
 .../ApduDataExtPropertyDescriptionResponse.go      |   3 +-
 .../model/ApduDataExtPropertyValueRead.go          |   3 +-
 .../model/ApduDataExtPropertyValueResponse.go      |   3 +-
 .../model/ApduDataExtPropertyValueWrite.go         |   3 +-
 .../model/ApduDataExtReadRouterMemoryRequest.go    |   3 +-
 .../model/ApduDataExtReadRouterMemoryResponse.go   |   3 +-
 .../model/ApduDataExtReadRouterStatusRequest.go    |   3 +-
 .../model/ApduDataExtReadRouterStatusResponse.go   |   3 +-
 .../model/ApduDataExtReadRoutingTableRequest.go    |   3 +-
 .../model/ApduDataExtReadRoutingTableResponse.go   |   3 +-
 .../model/ApduDataExtWriteRouterMemoryRequest.go   |   3 +-
 .../model/ApduDataExtWriteRouterStatusRequest.go   |   3 +-
 .../model/ApduDataExtWriteRoutingTableRequest.go   |   3 +-
 .../readwrite/model/ApduDataGroupValueRead.go      |   3 +-
 .../readwrite/model/ApduDataGroupValueResponse.go  |   3 +-
 .../readwrite/model/ApduDataGroupValueWrite.go     |   3 +-
 .../model/ApduDataIndividualAddressRead.go         |   3 +-
 .../model/ApduDataIndividualAddressResponse.go     |   3 +-
 .../model/ApduDataIndividualAddressWrite.go        |   3 +-
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go |   3 +-
 .../readwrite/model/ApduDataMemoryResponse.go      |   3 +-
 .../readwrite/model/ApduDataMemoryWrite.go         |   3 +-
 .../knxnetip/readwrite/model/ApduDataOther.go      |   3 +-
 .../knxnetip/readwrite/model/ApduDataRestart.go    |   3 +-
 .../readwrite/model/ApduDataUserMessage.go         |   3 +-
 .../model/ComObjectTableRealisationType1.go        |   3 +-
 .../model/ComObjectTableRealisationType2.go        |   3 +-
 .../model/ComObjectTableRealisationType6.go        |   3 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |   3 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |   3 +-
 .../readwrite/model/ConnectionStateRequest.go      |   3 +-
 .../readwrite/model/ConnectionStateResponse.go     |   3 +-
 .../knxnetip/readwrite/model/DescriptionRequest.go |   3 +-
 .../readwrite/model/DescriptionResponse.go         |   3 +-
 .../readwrite/model/DeviceConfigurationAck.go      |   3 +-
 .../readwrite/model/DeviceConfigurationRequest.go  |   3 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |   3 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |   3 +-
 .../readwrite/model/KnxGroupAddress2Level.go       |   3 +-
 .../readwrite/model/KnxGroupAddress3Level.go       |   3 +-
 .../readwrite/model/KnxGroupAddressFreeLevel.go    |   3 +-
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |   3 +-
 .../readwrite/model/KnxNetIpDeviceManagement.go    |   3 +-
 .../knxnetip/readwrite/model/KnxNetIpRouting.go    |   3 +-
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |   3 +-
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |   3 +-
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |   3 +-
 .../readwrite/model/KnxNetRemoteLogging.go         |   3 +-
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  |   3 +-
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    |   3 +-
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    |   3 +-
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    |   3 +-
 .../knxnetip/readwrite/model/LPollDataCon.go       |   3 +-
 .../knxnetip/readwrite/model/LPollDataReq.go       |   3 +-
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     |   3 +-
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     |   3 +-
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     |   3 +-
 .../readwrite/model/MFuncPropCommandReq.go         |   3 +-
 .../knxnetip/readwrite/model/MFuncPropCon.go       |   3 +-
 .../readwrite/model/MFuncPropStateReadReq.go       |   3 +-
 .../knxnetip/readwrite/model/MPropInfoInd.go       |   3 +-
 .../knxnetip/readwrite/model/MPropReadCon.go       |   3 +-
 .../knxnetip/readwrite/model/MPropReadReq.go       |   3 +-
 .../knxnetip/readwrite/model/MPropWriteCon.go      |   3 +-
 .../knxnetip/readwrite/model/MPropWriteReq.go      |   3 +-
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   |   3 +-
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   |   3 +-
 .../knxnetip/readwrite/model/RoutingIndication.go  |   3 +-
 .../knxnetip/readwrite/model/SearchRequest.go      |   3 +-
 .../knxnetip/readwrite/model/SearchResponse.go     |   3 +-
 .../knxnetip/readwrite/model/TDataConnectedInd.go  |   3 +-
 .../knxnetip/readwrite/model/TDataConnectedReq.go  |   3 +-
 .../knxnetip/readwrite/model/TDataIndividualInd.go |   3 +-
 .../knxnetip/readwrite/model/TDataIndividualReq.go |   3 +-
 .../knxnetip/readwrite/model/TunnelingRequest.go   |   3 +-
 .../knxnetip/readwrite/model/TunnelingResponse.go  |   3 +-
 .../knxnetip/readwrite/model/UnknownMessage.go     |   3 +-
 plc4go/internal/plc4go/modbus/fieldtype_string.go  |  17 ++
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |   3 +-
 .../readwrite/model/ModbusPDUDiagnosticResponse.go |   3 +-
 .../modbus/readwrite/model/ModbusPDUError.go       |   3 +-
 .../model/ModbusPDUGetComEventCounterRequest.go    |   3 +-
 .../model/ModbusPDUGetComEventCounterResponse.go   |   3 +-
 .../model/ModbusPDUGetComEventLogRequest.go        |   3 +-
 .../model/ModbusPDUGetComEventLogResponse.go       |   3 +-
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |   3 +-
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |   3 +-
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |   3 +-
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  |   3 +-
 .../ModbusPDUReadDeviceIdentificationRequest.go    |   3 +-
 .../ModbusPDUReadDeviceIdentificationResponse.go   |   3 +-
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |   3 +-
 .../model/ModbusPDUReadDiscreteInputsResponse.go   |   3 +-
 .../model/ModbusPDUReadExceptionStatusRequest.go   |   3 +-
 .../model/ModbusPDUReadExceptionStatusResponse.go  |   3 +-
 .../model/ModbusPDUReadFifoQueueRequest.go         |   3 +-
 .../model/ModbusPDUReadFifoQueueResponse.go        |   3 +-
 .../model/ModbusPDUReadFileRecordRequest.go        |   3 +-
 .../model/ModbusPDUReadFileRecordResponse.go       |   3 +-
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |   3 +-
 .../model/ModbusPDUReadHoldingRegistersResponse.go |   3 +-
 .../model/ModbusPDUReadInputRegistersRequest.go    |   3 +-
 .../model/ModbusPDUReadInputRegistersResponse.go   |   3 +-
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go |   3 +-
 ...PDUReadWriteMultipleHoldingRegistersResponse.go |   3 +-
 .../model/ModbusPDUReportServerIdRequest.go        |   3 +-
 .../model/ModbusPDUReportServerIdResponse.go       |   3 +-
 .../model/ModbusPDUWriteFileRecordRequest.go       |   3 +-
 .../model/ModbusPDUWriteFileRecordResponse.go      |   3 +-
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    |   3 +-
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |   3 +-
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go |   3 +-
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |   3 +-
 .../model/ModbusPDUWriteSingleCoilRequest.go       |   3 +-
 .../model/ModbusPDUWriteSingleCoilResponse.go      |   3 +-
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |   3 +-
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |   3 +-
 plc4go/internal/plc4go/s7/fieldtype_string.go      |  17 ++
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |   3 +-
 .../s7/readwrite/model/COTPParameterCallingTsap.go |   3 +-
 .../s7/readwrite/model/COTPParameterChecksum.go    |   3 +-
 ...COTPParameterDisconnectAdditionalInformation.go |   3 +-
 .../s7/readwrite/model/COTPParameterTpduSize.go    |   3 +-
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |   3 +-
 .../s7/readwrite/model/S7MessageObjectRequest.go   |   3 +-
 .../s7/readwrite/model/S7MessageObjectResponse.go  |   3 +-
 .../readwrite/model/S7ParameterModeTransition.go   |   3 +-
 .../readwrite/model/S7ParameterReadVarRequest.go   |   3 +-
 .../readwrite/model/S7ParameterReadVarResponse.go  |   3 +-
 .../model/S7ParameterSetupCommunication.go         |   3 +-
 .../s7/readwrite/model/S7ParameterUserData.go      |   3 +-
 .../model/S7ParameterUserDataItemCPUFunctions.go   |   3 +-
 .../readwrite/model/S7ParameterWriteVarRequest.go  |   3 +-
 .../readwrite/model/S7ParameterWriteVarResponse.go |   3 +-
 .../s7/readwrite/model/S7PayloadReadVarResponse.go |   3 +-
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go |   3 +-
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go |   3 +-
 .../readwrite/model/S7PayloadWriteVarResponse.go   |   3 +-
 .../model/S7VarRequestParameterItemAddress.go      |   3 +-
 .../plc4go/spi/testutils/steptype_string.go        |  17 ++
 .../bacnetip/readwrite/utils/StaticHelper.java     |  89 +++++-
 .../plc4x/java/bacnetip/RandomPackagesTest.java    | 321 ++++++++++++---------
 .../resources/protocols/bacnetip/bacnetip.mspec    |  73 +++--
 307 files changed, 1538 insertions(+), 1158 deletions(-)

diff --git a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index db8edb9..526105d 100644
--- a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -240,7 +240,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 case VSTRING:
                     return "\"\"";
             }
-        } else if (typeReference instanceof ComplexTypeReference) {
+        } else if (typeReference instanceof ComplexTypeReference && isEnumTypeReference(typeReference)) {
             return "0";
         }
         return "nil";
@@ -890,6 +890,7 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 sb.append(", ");
             }
             if (arg instanceof VariableLiteral) {
+                tracer = tracer.dive("VariableLiteral");
                 VariableLiteral va = (VariableLiteral) arg;
                 // "io" is the default name of the reader argument which is always available.
                 boolean isParserArg = "readBuffer".equals(va.getName()) || "writeBuffer".equals(va.getName()) || ((thisType instanceof DataIoTypeDefinition) && "_value".equals(va.getName()));
@@ -933,7 +934,16 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                     sb.append(toVariableExpression(field, typeReference, va, parserArguments, serializerArguments, serialize, suppressPointerAccess));
                 }
             } else if (arg instanceof StringLiteral) {
+                tracer = tracer.dive("StringLiteral");
                 sb.append(((StringLiteral) arg).getValue());
+            } else if (arg instanceof BooleanLiteral) {
+                tracer = tracer.dive("BooleanLiteral");
+                sb.append(((BooleanLiteral) arg).getValue());
+            } else if (arg instanceof BinaryTerm) {
+                tracer = tracer.dive("BinaryTerm");
+                sb.append(toBinaryTermExpression(field, typeReference,(BinaryTerm) arg, parserArguments,serializerArguments,serialize,tracer));
+            } else {
+                throw new RuntimeException(arg.getClass().getName());
             }
         }
         sb.append(")");
diff --git a/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh
index c71066a..77566273 100644
--- a/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/model-template.go.ftlh
@@ -107,7 +107,8 @@ type I${type.name} interface {
 	<#list helper.getDiscriminatorTypes() as discriminatorName, discriminatorType>
 	<#-- If the discriminator name matches that of another field, suppress the methods generation -->
 		<#if !type.isNonDiscriminatorField(discriminatorName)>
-	${discriminatorName?cap_first}() ${helper.getLanguageTypeNameForTypeReference(helper.getDiscriminatorTypes()[discriminatorName])}
+			<#assign typeRef=helper.getDiscriminatorTypes()[discriminatorName]>
+	${discriminatorName?cap_first}() <#if typeRef.isComplexTypeReference() && !helper.isEnumTypeReference(typeRef)>I</#if>${helper.getLanguageTypeNameForTypeReference(typeRef)}
 		</#if>
 	</#list>
 </#if>
@@ -124,27 +125,28 @@ type I${type.name} interface {
 	<#list discriminatedChildType.getDiscriminatorMap() as discriminatorName, discriminatorTerm>
 		<#-- If the discriminator name matches that of another field, suppress the methods generation -->
 		<#if !type.isNonDiscriminatorField(discriminatorName)>
-func (m *${type.name}) ${discriminatorName?cap_first}() ${helper.getLanguageTypeNameForTypeReference(helper.getDiscriminatorTypes()[discriminatorName])} {
+            <#assign typeRef=helper.getDiscriminatorTypes()[discriminatorName]>
+func (m *${type.name}) ${discriminatorName?cap_first}() <#if typeRef.isComplexTypeReference() && !helper.isEnumTypeReference(typeRef)>I</#if>${helper.getLanguageTypeNameForTypeReference(typeRef)} {
 			<@compress single_line=true>
 	return
 				<#if discriminatorTerm??>
-					<#if helper.isComplexTypeReference(helper.getDiscriminatorTypes()[discriminatorName])>
-						<#if helper.isEnumTypeReference(helper.getDiscriminatorTypes()[discriminatorName])>
-                            <#assign enumType=helper.getLanguageTypeNameForTypeReference(helper.getDiscriminatorTypes()[discriminatorName])>
+					<#if helper.isComplexTypeReference(typeRef)>
+						<#if helper.isEnumTypeReference(typeRef)>
+                            <#assign enumType=helper.getLanguageTypeNameForTypeReference(typeRef)>
                             <#assign enumTypeWithoutTraces=tracer.removeTraces(enumType)>
                             <#assign enumTypeTraces=tracer.extractTraces(enumType)>
-                            <#assign enumValue=helper.toParseExpression(null, helper.getDiscriminatorTypes()[discriminatorName], discriminatorTerm, parserArguments)>
+                            <#assign enumValue=helper.toParseExpression(null, typeRef, discriminatorTerm, parserArguments)>
                             <#assign enumValueWithoutTraces=tracer.removeTraces(enumValue)>
                             <#assign enumValueTraces=tracer.extractTraces(enumValue)>
                             ${enumTypeTraces}${enumValueTraces}${enumTypeWithoutTraces}_${enumValueWithoutTraces}
 						<#else>
-							${helper.toParseExpression(null, helper.getDiscriminatorTypes()[discriminatorName], discriminatorTerm, parserArguments)}
+							${helper.toParseExpression(null, typeRef, discriminatorTerm, parserArguments)}
 						</#if>
 					<#else>
-						${helper.toParseExpression(null, helper.getDiscriminatorTypes()[discriminatorName], discriminatorTerm, parserArguments)}
+						${helper.toParseExpression(null, typeRef, discriminatorTerm, parserArguments)}
 					</#if>
 				<#else>
-					${helper.getNullValueForTypeReference(helper.getDiscriminatorTypes()[discriminatorName])}
+					${helper.getNullValueForTypeReference(typeRef)}
 				</#if>
 			</...@compress>
 }
@@ -161,7 +163,27 @@ type I${type.name}Parent interface {
 
 type I${type.name}Child interface {
 	Serialize(writeBuffer utils.WriteBuffer) error
-	InitializeParent(parent *${type.name}<#if type.getPropertyFields()?has_content>, <#list type.getPropertyFields() as field>${field.name} <#if field.loopType??>[]</#if><#if helper.needsPointerAccess(field)>*</#if>${helper.getLanguageTypeNameForField(field)}<#sep>, </#sep></#list></#if><#if type.getPropertyFields()?has_content && type.virtualFields?has_content>, </#if><#list type.virtualFields as field>${field.name} <#if field.loopType??>[]</#if><#if helper.needsPointerAccess(field)>*</#if [...]
+<@compress single_line=true>
+	InitializeParent(parent *${type.name}
+	<#if type.getPropertyFields()?has_content>, </#if>
+	<#list type.getPropertyFields() as field>
+		${field.name}
+		<#if field.loopType??>[]</#if>
+		<#if helper.needsPointerAccess(field)>*</#if>
+		${helper.getLanguageTypeNameForField(field)}
+		<#sep>, </#sep>
+	</#list>
+	<#if type.virtualFields?has_content>, </#if>
+	<#list type.virtualFields as field>
+		${field.name}
+		<#if field.loopType??>[]</#if>
+		<#if helper.needsPointerAccess(field)>*</#if>
+		${helper.getLanguageTypeNameForField(field)}
+		<#sep>, </#sep>
+		</#list>
+	)
+</...@compress>
+
 	GetTypeName() string
 	I${type.name}
 }
@@ -175,7 +197,29 @@ func ${type.name}${discriminatorName?cap_first}(m I${type.name}) ${helper.getLan
 	</#list-->
 <#elseif type.parentType??>
 
-func (m *${type.name}) InitializeParent(parent *${type.parentType.name}<#if type.parentType.asComplexTypeDefinition().orElseThrow().allPropertyFields?has_content>, <#list type.parentPropertyFields as parentField>${parentField.name} <#if parentField.loopType??>[]</#if><#if helper.needsPointerAccess(parentField)>*</#if>${helper.getLanguageTypeNameForField(parentField)}<#sep>, </#sep></#list></#if><#if type.parentType.asComplexTypeDefinition().orElseThrow().allPropertyFields?has_content &&  [...]
+<@compress single_line=true>
+func (m *${type.name}) InitializeParent(parent *${type.parentType.name}
+	<#assign parentTypeHasPropertyFields=type.parentType.asComplexTypeDefinition().orElseThrow().allPropertyFields?has_content>
+	<#if parentTypeHasPropertyFields>, </#if>
+    <#list type.parentPropertyFields as parentField>
+        ${parentField.name}
+        <#if parentField.loopType??>[]</#if>
+        <#if helper.needsPointerAccess(parentField)>*</#if>
+        ${helper.getLanguageTypeNameForField(parentField)}
+        <#sep>, </#sep>
+    </#list>
+    <#assign parentTypeHasVritualFields=type.parentType.asComplexTypeDefinition().orElseThrow().virtualFields?has_content>
+	<#if parentTypeHasVritualFields>, </#if>
+	<#list type.parentType.asComplexTypeDefinition().orElseThrow().virtualFields as parentField>
+		${parentField.name}
+		<#if parentField.loopType??>[]</#if>
+		<#if helper.needsPointerAccess(parentField)>*</#if>
+		${helper.getLanguageTypeNameForField(parentField)}
+		<#sep>, </#sep>
+	</#list>
+	)
+	{
+</...@compress>
 	<#list type.parentType.asComplexTypeDefinition().orElseThrow().allPropertyFields as field>
 	m.${field.name?cap_first} = ${field.name}
 	</#list>
@@ -680,11 +724,32 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
 	${arrayField.name} := make([]<#if helper.needsPointerAccess(arrayField)>*</#if>${helper.getLanguageTypeNameForField(field)}, 0)
 	{
 		for ;!bool(${helper.toParseExpression(arrayField, helper.boolTypeReference, arrayField.loopExpression, parserArguments)}); {
-			_item, _err := <#if helper.isSimpleTypeReference(arrayField.type)>${helper.getReadBufferReadMethodCall("", arrayField.type.asSimpleTypeReference().orElseThrow(), arrayField)}<#else>${arrayField.type.asComplexTypeReference().orElseThrow().name}Parse(readBuffer<#if arrayField.type.asComplexTypeReference().orElseThrow().params.isPresent()>, <#list arrayField.type.asComplexTypeReference().orElseThrow().params.orElseThrow() as parserArgument><#if <#--TODO: here DF1ResponseMessage throws a  [...]
+						<@compress single_line=true>
+			_item, _err :=
+							<#if helper.isSimpleTypeReference(arrayField.type)>
+								${helper.getReadBufferReadMethodCall("", arrayField.type.asSimpleTypeReference().orElseThrow(), arrayField)}
+							<#else>
+								${arrayField.type.asComplexTypeReference().orElseThrow().name}Parse(readBuffer
+								<#if arrayField.type.asComplexTypeReference().orElseThrow().params.isPresent()>
+									,
+									<#list arrayField.type.asComplexTypeReference().orElseThrow().params.orElseThrow() as parserArgument>
+										<#if <#--TODO: here DF1ResponseMessage throws a payloadLength not present: meaning that some feature is not rightfully implemented as the result should be a error not a missing pointer-->type.getPropertyFieldFromThisOrParentByName(parserArgument.name).isPresent() && helper.needsPointerAccess(type.getPropertyFieldFromThisOrParentByName(parserArgument.name).orElseThrow())>*</#if>
+										${helper.toTypedParseExpression(arrayField, helper.getArgumentType(arrayField.type, parserArgument?index), parserArgument, parserArguments)}
+										<#sep>, </#sep>
+									</#list>
+								</#if>
+								)
+							</#if>
+						</...@compress>
+
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing '${arrayField.name}' field")<@emitImport import="github.com/pkg/errors" />
 			}
+						<#if helper.isSimpleTypeReference(arrayField.type)>
 			${arrayField.name} = append(${arrayField.name}, _item)
+						<#else>
+			${arrayField.name} = append(${arrayField.name}, Cast${arrayField.type.asComplexTypeReference().orElseThrow().name}(_item))
+						</#if>
 
 						<#-- After parsing, update the current position, but only if it's needed -->
 							<#if arrayField.loopExpression.contains("curPos")>
@@ -1206,7 +1271,21 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
 
 	<#if type.isDiscriminatedParentTypeDefinition()>
 	// Finish initializing
-	_parent.Child.InitializeParent(_parent<#if type.propertyFields?has_content>, <#list type.propertyFields as field>${field.name}<#sep>, </#sep></#list></#if><#if type.propertyFields?has_content && type.virtualFields?has_content>, </#if><#list type.virtualFields as field>${field.name}<#sep>, </#sep></#list>)
+		<@compress single_line=true>
+	_parent.Child.InitializeParent(_parent
+			<#if type.propertyFields?has_content>, </#if>
+			<#list type.propertyFields as field>
+				${field.name}
+				<#sep>, </#sep>
+			</#list>
+			<#if type.virtualFields?has_content>, </#if>
+			<#list type.virtualFields as field>
+				${field.name}
+				<#sep>, </#sep>
+			</#list>
+			)
+		</...@compress>
+
 	return _parent, nil
 	<#elseif type.parentType?has_content>
 	// Create a partially initialized instance
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
index 770e1cb..6c98a29 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
@@ -50,8 +50,7 @@ func (m *DF1RequestProtectedTypedLogicalRead) FunctionCode() uint8 {
 	return 0xA2
 }
 
-func (m *DF1RequestProtectedTypedLogicalRead) InitializeParent(parent *DF1RequestCommand) {
-}
+func (m *DF1RequestProtectedTypedLogicalRead) InitializeParent(parent *DF1RequestCommand) {}
 
 func NewDF1RequestProtectedTypedLogicalRead(byteSize uint8, fileNumber uint8, fileType uint8, elementNumber uint8, subElementNumber uint8) *DF1RequestCommand {
 	child := &DF1RequestProtectedTypedLogicalRead{
diff --git a/plc4go/internal/plc4go/ads/fieldtype_string.go b/plc4go/internal/plc4go/ads/fieldtype_string.go
index 6c2fa73..4b0da39 100644
--- a/plc4go/internal/plc4go/ads/fieldtype_string.go
+++ b/plc4go/internal/plc4go/ads/fieldtype_string.go
@@ -1,3 +1,20 @@
+// Licensed to 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. Apache Software Foundation (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.
+
 // Code generated by "stringer -type FieldType"; DO NOT EDIT.
 
 package ads
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
index a8b39ad..0c6da74 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
@@ -56,8 +56,7 @@ func (m *AdsAddDeviceNotificationRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsAddDeviceNotificationRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsAddDeviceNotificationRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsAddDeviceNotificationRequest(indexGroup uint32, indexOffset uint32, length uint32, transmissionMode uint32, maxDelay uint32, cycleTime uint32) *AdsData {
 	child := &AdsAddDeviceNotificationRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
index 3563530..9a51ebe 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
@@ -51,8 +51,7 @@ func (m *AdsAddDeviceNotificationResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsAddDeviceNotificationResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsAddDeviceNotificationResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsAddDeviceNotificationResponse(result ReturnCode, notificationHandle uint32) *AdsData {
 	child := &AdsAddDeviceNotificationResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
index 4ad1be4..5e3b991 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
@@ -50,8 +50,7 @@ func (m *AdsDeleteDeviceNotificationRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsDeleteDeviceNotificationRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsDeleteDeviceNotificationRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsDeleteDeviceNotificationRequest(notificationHandle uint32) *AdsData {
 	child := &AdsDeleteDeviceNotificationRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
index 7b402c7..10ce1ca 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
@@ -50,8 +50,7 @@ func (m *AdsDeleteDeviceNotificationResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsDeleteDeviceNotificationResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsDeleteDeviceNotificationResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsDeleteDeviceNotificationResponse(result ReturnCode) *AdsData {
 	child := &AdsDeleteDeviceNotificationResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
index 5927d7d..5649ec7 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
@@ -52,8 +52,7 @@ func (m *AdsDeviceNotificationRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsDeviceNotificationRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsDeviceNotificationRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsDeviceNotificationRequest(length uint32, stamps uint32, adsStampHeaders []*AdsStampHeader) *AdsData {
 	child := &AdsDeviceNotificationRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
index deb4236..e003b85 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
@@ -48,8 +48,7 @@ func (m *AdsDeviceNotificationResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsDeviceNotificationResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsDeviceNotificationResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsDeviceNotificationResponse() *AdsData {
 	child := &AdsDeviceNotificationResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
index 895c166..5992b82 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
@@ -48,8 +48,7 @@ func (m *AdsInvalidRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsInvalidRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsInvalidRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsInvalidRequest() *AdsData {
 	child := &AdsInvalidRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
index 36b1ff7..44f54e0 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
@@ -48,8 +48,7 @@ func (m *AdsInvalidResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsInvalidResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsInvalidResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsInvalidResponse() *AdsData {
 	child := &AdsInvalidResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
index ebde48b..d6379da 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
@@ -48,8 +48,7 @@ func (m *AdsMultiRequestItemRead) IndexGroup() uint32 {
 	return uint32(61568)
 }
 
-func (m *AdsMultiRequestItemRead) InitializeParent(parent *AdsMultiRequestItem) {
-}
+func (m *AdsMultiRequestItemRead) InitializeParent(parent *AdsMultiRequestItem) {}
 
 func NewAdsMultiRequestItemRead(itemIndexGroup uint32, itemIndexOffset uint32, itemReadLength uint32) *AdsMultiRequestItem {
 	child := &AdsMultiRequestItemRead{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
index 72d00d2..9a3aa67 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
@@ -49,8 +49,7 @@ func (m *AdsMultiRequestItemReadWrite) IndexGroup() uint32 {
 	return uint32(61570)
 }
 
-func (m *AdsMultiRequestItemReadWrite) InitializeParent(parent *AdsMultiRequestItem) {
-}
+func (m *AdsMultiRequestItemReadWrite) InitializeParent(parent *AdsMultiRequestItem) {}
 
 func NewAdsMultiRequestItemReadWrite(itemIndexGroup uint32, itemIndexOffset uint32, itemReadLength uint32, itemWriteLength uint32) *AdsMultiRequestItem {
 	child := &AdsMultiRequestItemReadWrite{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
index 4f864ce..7702130 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
@@ -48,8 +48,7 @@ func (m *AdsMultiRequestItemWrite) IndexGroup() uint32 {
 	return uint32(61569)
 }
 
-func (m *AdsMultiRequestItemWrite) InitializeParent(parent *AdsMultiRequestItem) {
-}
+func (m *AdsMultiRequestItemWrite) InitializeParent(parent *AdsMultiRequestItem) {}
 
 func NewAdsMultiRequestItemWrite(itemIndexGroup uint32, itemIndexOffset uint32, itemWriteLength uint32) *AdsMultiRequestItem {
 	child := &AdsMultiRequestItemWrite{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
index b3801ff..fe8c161 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
@@ -48,8 +48,7 @@ func (m *AdsReadDeviceInfoRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsReadDeviceInfoRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadDeviceInfoRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadDeviceInfoRequest() *AdsData {
 	child := &AdsReadDeviceInfoRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
index 0f41f9e..46fc247 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
@@ -54,8 +54,7 @@ func (m *AdsReadDeviceInfoResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsReadDeviceInfoResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadDeviceInfoResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadDeviceInfoResponse(result ReturnCode, majorVersion uint8, minorVersion uint8, version uint16, device []byte) *AdsData {
 	child := &AdsReadDeviceInfoResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
index 857a203..8551226 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
@@ -52,8 +52,7 @@ func (m *AdsReadRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsReadRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadRequest(indexGroup uint32, indexOffset uint32, length uint32) *AdsData {
 	child := &AdsReadRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
index 1f109b3..27a55e7 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
@@ -51,8 +51,7 @@ func (m *AdsReadResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsReadResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadResponse(result ReturnCode, data []byte) *AdsData {
 	child := &AdsReadResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
index 9240fde..2a6094f 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
@@ -48,8 +48,7 @@ func (m *AdsReadStateRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsReadStateRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadStateRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadStateRequest() *AdsData {
 	child := &AdsReadStateRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
index 57288af..bd012c1 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
@@ -52,8 +52,7 @@ func (m *AdsReadStateResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsReadStateResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadStateResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadStateResponse(result ReturnCode, adsState uint16, deviceState uint16) *AdsData {
 	child := &AdsReadStateResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
index 675f5b2..840c51e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
@@ -54,8 +54,7 @@ func (m *AdsReadWriteRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsReadWriteRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadWriteRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadWriteRequest(indexGroup uint32, indexOffset uint32, readLength uint32, items []*AdsMultiRequestItem, data []byte) *AdsData {
 	child := &AdsReadWriteRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
index 3be5f50..4d7c7a2 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
@@ -51,8 +51,7 @@ func (m *AdsReadWriteResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsReadWriteResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsReadWriteResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsReadWriteResponse(result ReturnCode, data []byte) *AdsData {
 	child := &AdsReadWriteResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
index 3c9838a..e0d57ee 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
@@ -52,8 +52,7 @@ func (m *AdsWriteControlRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsWriteControlRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsWriteControlRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsWriteControlRequest(adsState uint16, deviceState uint16, data []byte) *AdsData {
 	child := &AdsWriteControlRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
index a5b5848..90c9ceb 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
@@ -50,8 +50,7 @@ func (m *AdsWriteControlResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsWriteControlResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsWriteControlResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsWriteControlResponse(result ReturnCode) *AdsData {
 	child := &AdsWriteControlResponse{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
index 3a1fedb..9f27dde 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
@@ -52,8 +52,7 @@ func (m *AdsWriteRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *AdsWriteRequest) InitializeParent(parent *AdsData) {
-}
+func (m *AdsWriteRequest) InitializeParent(parent *AdsData) {}
 
 func NewAdsWriteRequest(indexGroup uint32, indexOffset uint32, data []byte) *AdsData {
 	child := &AdsWriteRequest{
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
index 7e162ee..d030cec 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
@@ -50,8 +50,7 @@ func (m *AdsWriteResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *AdsWriteResponse) InitializeParent(parent *AdsData) {
-}
+func (m *AdsWriteResponse) InitializeParent(parent *AdsData) {}
 
 func NewAdsWriteResponse(result ReturnCode) *AdsData {
 	child := &AdsWriteResponse{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
index e6e37e1..000bfdd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
@@ -74,7 +74,9 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
-		return model.BACnetConstructedDataParse(io, tagNumber)
+		var objectType model.BACnetObjectType
+		var propertyIdentifierArgument model.BACnetContextTagPropertyIdentifier
+		return model.BACnetConstructedDataParse(io, tagNumber, objectType, &propertyIdentifierArgument)
 	case "BACnetSegmentation":
 		return model.BACnetSegmentationParse(io)
 	case "BACnetConfirmedServiceACK":
@@ -112,7 +114,8 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
-		return model.BACnetNotificationParametersParse(io, tagNumber)
+		var objectType model.BACnetObjectType
+		return model.BACnetNotificationParametersParse(io, tagNumber, objectType)
 	case "BACnetConfirmedServiceRequest":
 		len, err := utils.StrToUint16(arguments[0])
 		if err != nil {
@@ -130,17 +133,21 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		}
 		return model.BACnetDeviceObjectPropertyReferenceParse(io, tagNumber)
 	case "BACnetConstructedDataElement":
-		return model.BACnetConstructedDataElementParse(io)
+		var objectType model.BACnetObjectType
+		var propertyIdentifier model.BACnetContextTagPropertyIdentifier
+		return model.BACnetConstructedDataElementParse(io, objectType, &propertyIdentifier)
 	case "BACnetPropertyValues":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
-		return model.BACnetPropertyValuesParse(io, tagNumber)
+		var objectType model.BACnetObjectType
+		return model.BACnetPropertyValuesParse(io, tagNumber, objectType)
 	case "BACnetTagHeader":
 		return model.BACnetTagHeaderParse(io)
 	case "BACnetPropertyValue":
-		return model.BACnetPropertyValueParse(io)
+		var objectType model.BACnetObjectType
+		return model.BACnetPropertyValueParse(io, objectType)
 	case "NLMInitalizeRoutingTablePortMapping":
 		return model.NLMInitalizeRoutingTablePortMappingParse(io)
 	case "BACnetServiceAck":
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
index 1c30f00..c798510 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
@@ -91,7 +91,10 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 			return nil, err
 		}
 		tagNumber := uint8(parsedUint0)
-		return model.BACnetConstructedDataParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+		objectType := model.BACnetObjectTypeByName(parserArguments[1])
+		// TODO: find a way to parse the sub types
+		var propertyIdentifierArgument model.BACnetContextTagPropertyIdentifier
+		return model.BACnetConstructedDataParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, objectType, &propertyIdentifierArgument)
 	case "BACnetSegmentation":
 		return model.BACnetSegmentationParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetConfirmedServiceACK":
@@ -134,7 +137,8 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 			return nil, err
 		}
 		tagNumber := uint8(parsedUint0)
-		return model.BACnetNotificationParametersParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+		objectType := model.BACnetObjectTypeByName(parserArguments[1])
+		return model.BACnetNotificationParametersParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, objectType)
 	case "BACnetConfirmedServiceRequest":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 16)
 		if err != nil {
@@ -154,18 +158,23 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetDeviceObjectPropertyReferenceParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
 	case "BACnetConstructedDataElement":
-		return model.BACnetConstructedDataElementParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+		objectType := model.BACnetObjectTypeByName(parserArguments[0])
+		// TODO: find a way to parse the sub types
+		var propertyIdentifier model.BACnetContextTagPropertyIdentifier
+		return model.BACnetConstructedDataElementParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), objectType, &propertyIdentifier)
 	case "BACnetPropertyValues":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
 			return nil, err
 		}
 		tagNumber := uint8(parsedUint0)
-		return model.BACnetPropertyValuesParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+		objectType := model.BACnetObjectTypeByName(parserArguments[1])
+		return model.BACnetPropertyValuesParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, objectType)
 	case "BACnetTagHeader":
 		return model.BACnetTagHeaderParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetPropertyValue":
-		return model.BACnetPropertyValueParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+		objectType := model.BACnetObjectTypeByName(parserArguments[0])
+		return model.BACnetPropertyValueParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), objectType)
 	case "NLMInitalizeRoutingTablePortMapping":
 		return model.NLMInitalizeRoutingTablePortMappingParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetServiceAck":
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
index 85b2618..29bcbf1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
@@ -49,8 +49,7 @@ func (m *APDUAbort) ApduType() uint8 {
 	return 0x7
 }
 
-func (m *APDUAbort) InitializeParent(parent *APDU) {
-}
+func (m *APDUAbort) InitializeParent(parent *APDU) {}
 
 func NewAPDUAbort(server bool, originalInvokeId uint8, abortReason uint8) *APDU {
 	child := &APDUAbort{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
index 9e8131d..b8f13fc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
@@ -52,8 +52,7 @@ func (m *APDUComplexAck) ApduType() uint8 {
 	return 0x3
 }
 
-func (m *APDUComplexAck) InitializeParent(parent *APDU) {
-}
+func (m *APDUComplexAck) InitializeParent(parent *APDU) {}
 
 func NewAPDUComplexAck(segmentedMessage bool, moreFollows bool, originalInvokeId uint8, sequenceNumber *uint8, proposedWindowSize *uint8, serviceAck *BACnetServiceAck) *APDU {
 	child := &APDUComplexAck{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
index c32973a..b418e2c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -55,8 +55,7 @@ func (m *APDUConfirmedRequest) ApduType() uint8 {
 	return 0x0
 }
 
-func (m *APDUConfirmedRequest) InitializeParent(parent *APDU) {
-}
+func (m *APDUConfirmedRequest) InitializeParent(parent *APDU) {}
 
 func NewAPDUConfirmedRequest(segmentedMessage bool, moreFollows bool, segmentedResponseAccepted bool, maxSegmentsAccepted uint8, maxApduLengthAccepted uint8, invokeId uint8, sequenceNumber *uint8, proposedWindowSize *uint8, serviceRequest *BACnetConfirmedServiceRequest) *APDU {
 	child := &APDUConfirmedRequest{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
index 489291e..eea4c14 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
@@ -48,8 +48,7 @@ func (m *APDUError) ApduType() uint8 {
 	return 0x5
 }
 
-func (m *APDUError) InitializeParent(parent *APDU) {
-}
+func (m *APDUError) InitializeParent(parent *APDU) {}
 
 func NewAPDUError(originalInvokeId uint8, error *BACnetError) *APDU {
 	child := &APDUError{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
index f755a9c..bb5a8d7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
@@ -48,8 +48,7 @@ func (m *APDUReject) ApduType() uint8 {
 	return 0x6
 }
 
-func (m *APDUReject) InitializeParent(parent *APDU) {
-}
+func (m *APDUReject) InitializeParent(parent *APDU) {}
 
 func NewAPDUReject(originalInvokeId uint8, rejectReason uint8) *APDU {
 	child := &APDUReject{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
index 1496772..4372453 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
@@ -51,8 +51,7 @@ func (m *APDUSegmentAck) ApduType() uint8 {
 	return 0x4
 }
 
-func (m *APDUSegmentAck) InitializeParent(parent *APDU) {
-}
+func (m *APDUSegmentAck) InitializeParent(parent *APDU) {}
 
 func NewAPDUSegmentAck(negativeAck bool, server bool, originalInvokeId uint8, sequenceNumber uint8, proposedWindowSize uint8) *APDU {
 	child := &APDUSegmentAck{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
index a015882..c35f609 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
@@ -48,8 +48,7 @@ func (m *APDUSimpleAck) ApduType() uint8 {
 	return 0x2
 }
 
-func (m *APDUSimpleAck) InitializeParent(parent *APDU) {
-}
+func (m *APDUSimpleAck) InitializeParent(parent *APDU) {}
 
 func NewAPDUSimpleAck(originalInvokeId uint8, serviceChoice uint8) *APDU {
 	child := &APDUSimpleAck{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
index 46858fa..1a601f8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
@@ -47,8 +47,7 @@ func (m *APDUUnconfirmedRequest) ApduType() uint8 {
 	return 0x1
 }
 
-func (m *APDUUnconfirmedRequest) InitializeParent(parent *APDU) {
-}
+func (m *APDUUnconfirmedRequest) InitializeParent(parent *APDU) {}
 
 func NewAPDUUnconfirmedRequest(serviceRequest *BACnetUnconfirmedServiceRequest) *APDU {
 	child := &APDUUnconfirmedRequest{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go
index dcf89f4..7c5a92c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go
@@ -44,8 +44,7 @@ func (m *APDUUnknown) ApduType() uint8 {
 	return 0
 }
 
-func (m *APDUUnknown) InitializeParent(parent *APDU) {
-}
+func (m *APDUUnknown) InitializeParent(parent *APDU) {}
 
 func NewAPDUUnknown() *APDU {
 	child := &APDUUnknown{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
index c8e309b..2a822b2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
@@ -44,8 +44,7 @@ func (m *BACnetConfirmedServiceACKCreateObject) ServiceChoice() uint8 {
 	return 0x0A
 }
 
-func (m *BACnetConfirmedServiceACKCreateObject) InitializeParent(parent *BACnetConfirmedServiceACK) {
-}
+func (m *BACnetConfirmedServiceACKCreateObject) InitializeParent(parent *BACnetConfirmedServiceACK) {}
 
 func NewBACnetConfirmedServiceACKCreateObject() *BACnetConfirmedServiceACK {
 	child := &BACnetConfirmedServiceACKCreateObject{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
index d2ee04f..d1a42ea 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
@@ -44,8 +44,7 @@ func (m *BACnetConfirmedServiceACKReadProperty) ServiceChoice() uint8 {
 	return 0x0C
 }
 
-func (m *BACnetConfirmedServiceACKReadProperty) InitializeParent(parent *BACnetConfirmedServiceACK) {
-}
+func (m *BACnetConfirmedServiceACKReadProperty) InitializeParent(parent *BACnetConfirmedServiceACK) {}
 
 func NewBACnetConfirmedServiceACKReadProperty() *BACnetConfirmedServiceACK {
 	child := &BACnetConfirmedServiceACKReadProperty{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
index 08ae75d..0cecaa3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
@@ -44,8 +44,7 @@ func (m *BACnetConfirmedServiceACKReadRange) ServiceChoice() uint8 {
 	return 0x1A
 }
 
-func (m *BACnetConfirmedServiceACKReadRange) InitializeParent(parent *BACnetConfirmedServiceACK) {
-}
+func (m *BACnetConfirmedServiceACKReadRange) InitializeParent(parent *BACnetConfirmedServiceACK) {}
 
 func NewBACnetConfirmedServiceACKReadRange() *BACnetConfirmedServiceACK {
 	child := &BACnetConfirmedServiceACKReadRange{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
index 6465764..4dcb1e9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
@@ -44,8 +44,7 @@ func (m *BACnetConfirmedServiceACKVTData) ServiceChoice() uint8 {
 	return 0x17
 }
 
-func (m *BACnetConfirmedServiceACKVTData) InitializeParent(parent *BACnetConfirmedServiceACK) {
-}
+func (m *BACnetConfirmedServiceACKVTData) InitializeParent(parent *BACnetConfirmedServiceACK) {}
 
 func NewBACnetConfirmedServiceACKVTData() *BACnetConfirmedServiceACK {
 	child := &BACnetConfirmedServiceACKVTData{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
index 4f74132..513e11a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
@@ -44,8 +44,7 @@ func (m *BACnetConfirmedServiceACKVTOpen) ServiceChoice() uint8 {
 	return 0x15
 }
 
-func (m *BACnetConfirmedServiceACKVTOpen) InitializeParent(parent *BACnetConfirmedServiceACK) {
-}
+func (m *BACnetConfirmedServiceACKVTOpen) InitializeParent(parent *BACnetConfirmedServiceACK) {}
 
 func NewBACnetConfirmedServiceACKVTOpen() *BACnetConfirmedServiceACK {
 	child := &BACnetConfirmedServiceACKVTOpen{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go
index 7f22356..19d29db 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go
@@ -44,8 +44,7 @@ func (m *BACnetConfirmedServiceAddListElement) ServiceChoice() uint8 {
 	return 0x08
 }
 
-func (m *BACnetConfirmedServiceAddListElement) InitializeParent(parent *BACnetConfirmedServiceACK) {
-}
+func (m *BACnetConfirmedServiceAddListElement) InitializeParent(parent *BACnetConfirmedServiceACK) {}
 
 func NewBACnetConfirmedServiceAddListElement() *BACnetConfirmedServiceACK {
 	child := &BACnetConfirmedServiceAddListElement{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index 7dc4764..5b47845 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -179,7 +179,7 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(readBuffer utils
 	if pullErr := readBuffer.PullContext("listOfValues"); pullErr != nil {
 		return nil, pullErr
 	}
-	_listOfValues, _listOfValuesErr := BACnetPropertyValuesParse(readBuffer, uint8(4))
+	_listOfValues, _listOfValuesErr := BACnetPropertyValuesParse(readBuffer, uint8(4), monitoredObjectIdentifier.ObjectType)
 	if _listOfValuesErr != nil {
 		return nil, errors.Wrap(_listOfValuesErr, "Error parsing 'listOfValues' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
index cba77cf..f3423e5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -358,7 +358,7 @@ func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(readBuffer uti
 		if pullErr := readBuffer.PullContext("eventValues"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetNotificationParametersParse(readBuffer, uint8(12))
+		_val, _err := BACnetNotificationParametersParse(readBuffer, uint8(12), eventObjectIdentifier.ObjectType)
 		switch {
 		case _err != nil && _err != utils.ParseAssertError:
 			return nil, errors.Wrap(_err, "Error parsing 'eventValues' field")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 48c1bd2..ea72e9a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -178,7 +178,7 @@ func BACnetConfirmedServiceRequestWritePropertyParse(readBuffer utils.ReadBuffer
 	if pullErr := readBuffer.PullContext("propertyValue"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyValue, _propertyValueErr := BACnetConstructedDataParse(readBuffer, uint8(3))
+	_propertyValue, _propertyValueErr := BACnetConstructedDataParse(readBuffer, uint8(3), objectIdentifier.ObjectType, propertyIdentifier)
 	if _propertyValueErr != nil {
 		return nil, errors.Wrap(_propertyValueErr, "Error parsing 'propertyValue' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
index b8a54e4..9dfd886 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
@@ -28,22 +28,36 @@ import (
 
 // The data-structure of this message
 type BACnetConstructedData struct {
-	OpeningTag         *BACnetOpeningTag
-	Data               []*BACnetConstructedDataElement
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
-	Content            *BACnetApplicationTag
-	ClosingTag         *BACnetClosingTag
+	OpeningTag *BACnetOpeningTag
+	Data       []*BACnetConstructedDataElement
+	ClosingTag *BACnetClosingTag
+	HasData    bool
+	Child      IBACnetConstructedDataChild
 }
 
 // The corresponding interface
 type IBACnetConstructedData interface {
+	ObjectType() BACnetObjectType
+	PropertyIdentifierArgument() IBACnetContextTagPropertyIdentifier
 	LengthInBytes() uint16
 	LengthInBits() uint16
 	Serialize(writeBuffer utils.WriteBuffer) error
 }
 
-func NewBACnetConstructedData(openingTag *BACnetOpeningTag, data []*BACnetConstructedDataElement, propertyIdentifier *BACnetContextTagPropertyIdentifier, content *BACnetApplicationTag, closingTag *BACnetClosingTag) *BACnetConstructedData {
-	return &BACnetConstructedData{OpeningTag: openingTag, Data: data, PropertyIdentifier: propertyIdentifier, Content: content, ClosingTag: closingTag}
+type IBACnetConstructedDataParent interface {
+	SerializeParent(writeBuffer utils.WriteBuffer, child IBACnetConstructedData, serializeChildFunction func() error) error
+	GetTypeName() string
+}
+
+type IBACnetConstructedDataChild interface {
+	Serialize(writeBuffer utils.WriteBuffer) error
+	InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, data []*BACnetConstructedDataElement, closingTag *BACnetClosingTag, hasData bool)
+	GetTypeName() string
+	IBACnetConstructedData
+}
+
+func NewBACnetConstructedData(openingTag *BACnetOpeningTag, data []*BACnetConstructedDataElement, closingTag *BACnetClosingTag, hasData bool) *BACnetConstructedData {
+	return &BACnetConstructedData{OpeningTag: openingTag, Data: data, ClosingTag: closingTag, HasData: hasData}
 }
 
 func CastBACnetConstructedData(structType interface{}) *BACnetConstructedData {
@@ -68,6 +82,10 @@ func (m *BACnetConstructedData) LengthInBits() uint16 {
 }
 
 func (m *BACnetConstructedData) LengthInBitsConditional(lastItem bool) uint16 {
+	return m.Child.LengthInBits()
+}
+
+func (m *BACnetConstructedData) ParentLengthInBits() uint16 {
 	lengthInBits := uint16(0)
 
 	// Optional Field (openingTag)
@@ -82,15 +100,7 @@ func (m *BACnetConstructedData) LengthInBitsConditional(lastItem bool) uint16 {
 		}
 	}
 
-	// Optional Field (propertyIdentifier)
-	if m.PropertyIdentifier != nil {
-		lengthInBits += (*m.PropertyIdentifier).LengthInBits()
-	}
-
-	// Optional Field (content)
-	if m.Content != nil {
-		lengthInBits += (*m.Content).LengthInBits()
-	}
+	// A virtual field doesn't have any in- or output.
 
 	// Optional Field (closingTag)
 	if m.ClosingTag != nil {
@@ -104,7 +114,7 @@ func (m *BACnetConstructedData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetConstructedData, error) {
+func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedData, error) {
 	if pullErr := readBuffer.PullContext("BACnetConstructedData"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -137,12 +147,12 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*
 	// Terminated array
 	data := make([]*BACnetConstructedDataElement, 0)
 	{
-		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, tagNumber)) {
-			_item, _err := BACnetConstructedDataElementParse(readBuffer)
+		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, bool((objectType) == (BACnetObjectType_LIFE_SAFETY_ZONE)), tagNumber)) {
+			_item, _err := BACnetConstructedDataElementParse(readBuffer, objectType, propertyIdentifierArgument)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'data' field")
 			}
-			data = append(data, _item)
+			data = append(data, CastBACnetConstructedDataElement(_item))
 
 		}
 	}
@@ -150,46 +160,24 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*
 		return nil, closeErr
 	}
 
-	// Optional Field (propertyIdentifier) (Can be skipped, if a given expression evaluates to false)
-	var propertyIdentifier *BACnetContextTagPropertyIdentifier = nil
-	if bool((len(data)) == (0)) {
-		currentPos := readBuffer.GetPos()
-		if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
-			return nil, pullErr
-		}
-		_val, _err := BACnetContextTagParse(readBuffer, uint8(0), BACnetDataType_BACNET_PROPERTY_IDENTIFIER)
-		switch {
-		case _err != nil && _err != utils.ParseAssertError:
-			return nil, errors.Wrap(_err, "Error parsing 'propertyIdentifier' field")
-		case _err == utils.ParseAssertError:
-			readBuffer.Reset(currentPos)
-		default:
-			propertyIdentifier = CastBACnetContextTagPropertyIdentifier(_val)
-			if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
-				return nil, closeErr
-			}
-		}
+	// Virtual field
+	_hasData := bool((len(data)) == (0))
+	hasData := bool(_hasData)
+
+	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
+	var _parent *BACnetConstructedData
+	var typeSwitchError error
+	switch {
+	case objectType == BACnetObjectType_LIFE_SAFETY_ZONE: // BACnetConstructedDataLifeSafetyZone
+		_parent, typeSwitchError = BACnetConstructedDataLifeSafetyZoneParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
+	case true: // BACnetConstructedDataUnspecified
+		_parent, typeSwitchError = BACnetConstructedDataUnspecifiedParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument, hasData)
+	default:
+		// TODO: return actual type
+		typeSwitchError = errors.New("Unmapped type")
 	}
-
-	// Optional Field (content) (Can be skipped, if a given expression evaluates to false)
-	var content *BACnetApplicationTag = nil
-	if bool((len(data)) == (0)) {
-		currentPos := readBuffer.GetPos()
-		if pullErr := readBuffer.PullContext("content"); pullErr != nil {
-			return nil, pullErr
-		}
-		_val, _err := BACnetApplicationTagParse(readBuffer)
-		switch {
-		case _err != nil && _err != utils.ParseAssertError:
-			return nil, errors.Wrap(_err, "Error parsing 'content' field")
-		case _err == utils.ParseAssertError:
-			readBuffer.Reset(currentPos)
-		default:
-			content = CastBACnetApplicationTag(_val)
-			if closeErr := readBuffer.CloseContext("content"); closeErr != nil {
-				return nil, closeErr
-			}
-		}
+	if typeSwitchError != nil {
+		return nil, errors.Wrap(typeSwitchError, "Error parsing sub-type for type-switch.")
 	}
 
 	// Optional Field (closingTag) (Can be skipped, if a given expression evaluates to false)
@@ -217,11 +205,16 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*
 		return nil, closeErr
 	}
 
-	// Create the instance
-	return NewBACnetConstructedData(openingTag, data, propertyIdentifier, content, closingTag), nil
+	// Finish initializing
+	_parent.Child.InitializeParent(_parent, openingTag, data, closingTag, hasData)
+	return _parent, nil
 }
 
 func (m *BACnetConstructedData) Serialize(writeBuffer utils.WriteBuffer) error {
+	return m.Child.Serialize(writeBuffer)
+}
+
+func (m *BACnetConstructedData) SerializeParent(writeBuffer utils.WriteBuffer, child IBACnetConstructedData, serializeChildFunction func() error) error {
 	if pushErr := writeBuffer.PushContext("BACnetConstructedData"); pushErr != nil {
 		return pushErr
 	}
@@ -257,37 +250,14 @@ func (m *BACnetConstructedData) Serialize(writeBuffer utils.WriteBuffer) error {
 			return popErr
 		}
 	}
-
-	// Optional Field (propertyIdentifier) (Can be skipped, if the value is null)
-	var propertyIdentifier *BACnetContextTagPropertyIdentifier = nil
-	if m.PropertyIdentifier != nil {
-		if pushErr := writeBuffer.PushContext("propertyIdentifier"); pushErr != nil {
-			return pushErr
-		}
-		propertyIdentifier = m.PropertyIdentifier
-		_propertyIdentifierErr := propertyIdentifier.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("propertyIdentifier"); popErr != nil {
-			return popErr
-		}
-		if _propertyIdentifierErr != nil {
-			return errors.Wrap(_propertyIdentifierErr, "Error serializing 'propertyIdentifier' field")
-		}
+	// Virtual field
+	if _hasDataErr := writeBuffer.WriteVirtual("hasData", m.HasData); _hasDataErr != nil {
+		return errors.Wrap(_hasDataErr, "Error serializing 'hasData' field")
 	}
 
-	// Optional Field (content) (Can be skipped, if the value is null)
-	var content *BACnetApplicationTag = nil
-	if m.Content != nil {
-		if pushErr := writeBuffer.PushContext("content"); pushErr != nil {
-			return pushErr
-		}
-		content = m.Content
-		_contentErr := content.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("content"); popErr != nil {
-			return popErr
-		}
-		if _contentErr != nil {
-			return errors.Wrap(_contentErr, "Error serializing 'content' field")
-		}
+	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
+	if _typeSwitchErr := serializeChildFunction(); _typeSwitchErr != nil {
+		return errors.Wrap(_typeSwitchErr, "Error serializing sub-type field")
 	}
 
 	// Optional Field (closingTag) (Can be skipped, if the value is null)
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go
index 891d565..5775529 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go
@@ -103,7 +103,7 @@ func (m *BACnetConstructedDataElement) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer) (*BACnetConstructedDataElement, error) {
+func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer, objectType BACnetObjectType, propertyIdentifier *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataElement, error) {
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataElement"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -160,7 +160,7 @@ func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer) (*BACnetCons
 		if pullErr := readBuffer.PullContext("contextTag"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetContextTagParse(readBuffer, peekedTagNumber, GuessDataType())
+		_val, _err := BACnetContextTagParse(readBuffer, peekedTagNumber, GuessDataType(objectType))
 		switch {
 		case _err != nil && _err != utils.ParseAssertError:
 			return nil, errors.Wrap(_err, "Error parsing 'contextTag' field")
@@ -181,7 +181,7 @@ func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer) (*BACnetCons
 		if pullErr := readBuffer.PullContext("constructedData"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataParse(readBuffer, peekedTagNumber)
+		_val, _err := BACnetConstructedDataParse(readBuffer, peekedTagNumber, objectType, propertyIdentifier)
 		switch {
 		case _err != nil && _err != utils.ParseAssertError:
 			return nil, errors.Wrap(_err, "Error parsing 'constructedData' field")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go
new file mode 100644
index 0000000..d61cd09
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go
@@ -0,0 +1,187 @@
+/*
+ * 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.
+
+// The data-structure of this message
+type BACnetConstructedDataLifeSafetyZone struct {
+	*BACnetConstructedData
+	Zones []*BACnetContextTagObjectIdentifier
+}
+
+// The corresponding interface
+type IBACnetConstructedDataLifeSafetyZone interface {
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+///////////////////////////////////////////////////////////
+// Accessors for discriminator values.
+///////////////////////////////////////////////////////////
+func (m *BACnetConstructedDataLifeSafetyZone) ObjectType() BACnetObjectType {
+	return BACnetObjectType_LIFE_SAFETY_ZONE
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) PropertyIdentifierArgument() IBACnetContextTagPropertyIdentifier {
+	return nil
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, data []*BACnetConstructedDataElement, closingTag *BACnetClosingTag, hasData bool) {
+	m.OpeningTag = openingTag
+	m.Data = data
+	m.ClosingTag = closingTag
+}
+
+func NewBACnetConstructedDataLifeSafetyZone(zones []*BACnetContextTagObjectIdentifier, openingTag *BACnetOpeningTag, data []*BACnetConstructedDataElement, closingTag *BACnetClosingTag, hasData bool) *BACnetConstructedData {
+	child := &BACnetConstructedDataLifeSafetyZone{
+		Zones:                 zones,
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, data, closingTag, hasData),
+	}
+	child.Child = child
+	return child.BACnetConstructedData
+}
+
+func CastBACnetConstructedDataLifeSafetyZone(structType interface{}) *BACnetConstructedDataLifeSafetyZone {
+	castFunc := func(typ interface{}) *BACnetConstructedDataLifeSafetyZone {
+		if casted, ok := typ.(BACnetConstructedDataLifeSafetyZone); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetConstructedDataLifeSafetyZone); ok {
+			return casted
+		}
+		if casted, ok := typ.(BACnetConstructedData); ok {
+			return CastBACnetConstructedDataLifeSafetyZone(casted.Child)
+		}
+		if casted, ok := typ.(*BACnetConstructedData); ok {
+			return CastBACnetConstructedDataLifeSafetyZone(casted.Child)
+		}
+		return nil
+	}
+	return castFunc(structType)
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) GetTypeName() string {
+	return "BACnetConstructedDataLifeSafetyZone"
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) LengthInBits() uint16 {
+	return m.LengthInBitsConditional(false)
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) LengthInBitsConditional(lastItem bool) uint16 {
+	lengthInBits := uint16(m.ParentLengthInBits())
+
+	// Array field
+	if len(m.Zones) > 0 {
+		for _, element := range m.Zones {
+			lengthInBits += element.LengthInBits()
+		}
+	}
+
+	return lengthInBits
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) LengthInBytes() uint16 {
+	return m.LengthInBits() / 8
+}
+
+func BACnetConstructedDataLifeSafetyZoneParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedData, error) {
+	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyZone"); pullErr != nil {
+		return nil, pullErr
+	}
+
+	// Array field (zones)
+	if pullErr := readBuffer.PullContext("zones", utils.WithRenderAsList(true)); pullErr != nil {
+		return nil, pullErr
+	}
+	// Terminated array
+	zones := make([]*BACnetContextTagObjectIdentifier, 0)
+	{
+		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
+			_item, _err := BACnetContextTagObjectIdentifierParse(readBuffer, uint8(1), BACnetDataType_BACNET_OBJECT_IDENTIFIER)
+			if _err != nil {
+				return nil, errors.Wrap(_err, "Error parsing 'zones' field")
+			}
+			zones = append(zones, CastBACnetContextTagObjectIdentifier(_item))
+
+		}
+	}
+	if closeErr := readBuffer.CloseContext("zones", utils.WithRenderAsList(true)); closeErr != nil {
+		return nil, closeErr
+	}
+
+	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyZone"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Create a partially initialized instance
+	_child := &BACnetConstructedDataLifeSafetyZone{
+		Zones:                 zones,
+		BACnetConstructedData: &BACnetConstructedData{},
+	}
+	_child.BACnetConstructedData.Child = _child
+	return _child.BACnetConstructedData, nil
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) Serialize(writeBuffer utils.WriteBuffer) error {
+	ser := func() error {
+		if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyZone"); pushErr != nil {
+			return pushErr
+		}
+
+		// Array Field (zones)
+		if m.Zones != nil {
+			if pushErr := writeBuffer.PushContext("zones", utils.WithRenderAsList(true)); pushErr != nil {
+				return pushErr
+			}
+			for _, _element := range m.Zones {
+				_elementErr := _element.Serialize(writeBuffer)
+				if _elementErr != nil {
+					return errors.Wrap(_elementErr, "Error serializing 'zones' field")
+				}
+			}
+			if popErr := writeBuffer.PopContext("zones", utils.WithRenderAsList(true)); popErr != nil {
+				return popErr
+			}
+		}
+
+		if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyZone"); popErr != nil {
+			return popErr
+		}
+		return nil
+	}
+	return m.SerializeParent(writeBuffer, m, ser)
+}
+
+func (m *BACnetConstructedDataLifeSafetyZone) String() string {
+	if m == nil {
+		return "<nil>"
+	}
+	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+	m.Serialize(buffer)
+	return buffer.GetBox().String()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
new file mode 100644
index 0000000..bf69192
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
@@ -0,0 +1,231 @@
+/*
+ * 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.
+
+// The data-structure of this message
+type BACnetConstructedDataUnspecified struct {
+	*BACnetConstructedData
+	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	Content            *BACnetApplicationTag
+}
+
+// The corresponding interface
+type IBACnetConstructedDataUnspecified interface {
+	LengthInBytes() uint16
+	LengthInBits() uint16
+	Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+///////////////////////////////////////////////////////////
+// Accessors for discriminator values.
+///////////////////////////////////////////////////////////
+func (m *BACnetConstructedDataUnspecified) ObjectType() BACnetObjectType {
+	return 0
+}
+
+func (m *BACnetConstructedDataUnspecified) PropertyIdentifierArgument() IBACnetContextTagPropertyIdentifier {
+	return nil
+}
+
+func (m *BACnetConstructedDataUnspecified) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, data []*BACnetConstructedDataElement, closingTag *BACnetClosingTag, hasData bool) {
+	m.OpeningTag = openingTag
+	m.Data = data
+	m.ClosingTag = closingTag
+}
+
+func NewBACnetConstructedDataUnspecified(propertyIdentifier *BACnetContextTagPropertyIdentifier, content *BACnetApplicationTag, openingTag *BACnetOpeningTag, data []*BACnetConstructedDataElement, closingTag *BACnetClosingTag, hasData bool) *BACnetConstructedData {
+	child := &BACnetConstructedDataUnspecified{
+		PropertyIdentifier:    propertyIdentifier,
+		Content:               content,
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, data, closingTag, hasData),
+	}
+	child.Child = child
+	return child.BACnetConstructedData
+}
+
+func CastBACnetConstructedDataUnspecified(structType interface{}) *BACnetConstructedDataUnspecified {
+	castFunc := func(typ interface{}) *BACnetConstructedDataUnspecified {
+		if casted, ok := typ.(BACnetConstructedDataUnspecified); ok {
+			return &casted
+		}
+		if casted, ok := typ.(*BACnetConstructedDataUnspecified); ok {
+			return casted
+		}
+		if casted, ok := typ.(BACnetConstructedData); ok {
+			return CastBACnetConstructedDataUnspecified(casted.Child)
+		}
+		if casted, ok := typ.(*BACnetConstructedData); ok {
+			return CastBACnetConstructedDataUnspecified(casted.Child)
+		}
+		return nil
+	}
+	return castFunc(structType)
+}
+
+func (m *BACnetConstructedDataUnspecified) GetTypeName() string {
+	return "BACnetConstructedDataUnspecified"
+}
+
+func (m *BACnetConstructedDataUnspecified) LengthInBits() uint16 {
+	return m.LengthInBitsConditional(false)
+}
+
+func (m *BACnetConstructedDataUnspecified) LengthInBitsConditional(lastItem bool) uint16 {
+	lengthInBits := uint16(m.ParentLengthInBits())
+
+	// Optional Field (propertyIdentifier)
+	if m.PropertyIdentifier != nil {
+		lengthInBits += (*m.PropertyIdentifier).LengthInBits()
+	}
+
+	// Optional Field (content)
+	if m.Content != nil {
+		lengthInBits += (*m.Content).LengthInBits()
+	}
+
+	return lengthInBits
+}
+
+func (m *BACnetConstructedDataUnspecified) LengthInBytes() uint16 {
+	return m.LengthInBits() / 8
+}
+
+func BACnetConstructedDataUnspecifiedParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier, hasData bool) (*BACnetConstructedData, error) {
+	if pullErr := readBuffer.PullContext("BACnetConstructedDataUnspecified"); pullErr != nil {
+		return nil, pullErr
+	}
+
+	// Optional Field (propertyIdentifier) (Can be skipped, if a given expression evaluates to false)
+	var propertyIdentifier *BACnetContextTagPropertyIdentifier = nil
+	if hasData {
+		currentPos := readBuffer.GetPos()
+		if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
+			return nil, pullErr
+		}
+		_val, _err := BACnetContextTagParse(readBuffer, uint8(0), BACnetDataType_BACNET_PROPERTY_IDENTIFIER)
+		switch {
+		case _err != nil && _err != utils.ParseAssertError:
+			return nil, errors.Wrap(_err, "Error parsing 'propertyIdentifier' field")
+		case _err == utils.ParseAssertError:
+			readBuffer.Reset(currentPos)
+		default:
+			propertyIdentifier = CastBACnetContextTagPropertyIdentifier(_val)
+			if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
+				return nil, closeErr
+			}
+		}
+	}
+
+	// Optional Field (content) (Can be skipped, if a given expression evaluates to false)
+	var content *BACnetApplicationTag = nil
+	if hasData {
+		currentPos := readBuffer.GetPos()
+		if pullErr := readBuffer.PullContext("content"); pullErr != nil {
+			return nil, pullErr
+		}
+		_val, _err := BACnetApplicationTagParse(readBuffer)
+		switch {
+		case _err != nil && _err != utils.ParseAssertError:
+			return nil, errors.Wrap(_err, "Error parsing 'content' field")
+		case _err == utils.ParseAssertError:
+			readBuffer.Reset(currentPos)
+		default:
+			content = CastBACnetApplicationTag(_val)
+			if closeErr := readBuffer.CloseContext("content"); closeErr != nil {
+				return nil, closeErr
+			}
+		}
+	}
+
+	if closeErr := readBuffer.CloseContext("BACnetConstructedDataUnspecified"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Create a partially initialized instance
+	_child := &BACnetConstructedDataUnspecified{
+		PropertyIdentifier:    CastBACnetContextTagPropertyIdentifier(propertyIdentifier),
+		Content:               CastBACnetApplicationTag(content),
+		BACnetConstructedData: &BACnetConstructedData{},
+	}
+	_child.BACnetConstructedData.Child = _child
+	return _child.BACnetConstructedData, nil
+}
+
+func (m *BACnetConstructedDataUnspecified) Serialize(writeBuffer utils.WriteBuffer) error {
+	ser := func() error {
+		if pushErr := writeBuffer.PushContext("BACnetConstructedDataUnspecified"); pushErr != nil {
+			return pushErr
+		}
+
+		// Optional Field (propertyIdentifier) (Can be skipped, if the value is null)
+		var propertyIdentifier *BACnetContextTagPropertyIdentifier = nil
+		if m.PropertyIdentifier != nil {
+			if pushErr := writeBuffer.PushContext("propertyIdentifier"); pushErr != nil {
+				return pushErr
+			}
+			propertyIdentifier = m.PropertyIdentifier
+			_propertyIdentifierErr := propertyIdentifier.Serialize(writeBuffer)
+			if popErr := writeBuffer.PopContext("propertyIdentifier"); popErr != nil {
+				return popErr
+			}
+			if _propertyIdentifierErr != nil {
+				return errors.Wrap(_propertyIdentifierErr, "Error serializing 'propertyIdentifier' field")
+			}
+		}
+
+		// Optional Field (content) (Can be skipped, if the value is null)
+		var content *BACnetApplicationTag = nil
+		if m.Content != nil {
+			if pushErr := writeBuffer.PushContext("content"); pushErr != nil {
+				return pushErr
+			}
+			content = m.Content
+			_contentErr := content.Serialize(writeBuffer)
+			if popErr := writeBuffer.PopContext("content"); popErr != nil {
+				return popErr
+			}
+			if _contentErr != nil {
+				return errors.Wrap(_contentErr, "Error serializing 'content' field")
+			}
+		}
+
+		if popErr := writeBuffer.PopContext("BACnetConstructedDataUnspecified"); popErr != nil {
+			return popErr
+		}
+		return nil
+	}
+	return m.SerializeParent(writeBuffer, m, ser)
+}
+
+func (m *BACnetConstructedDataUnspecified) String() string {
+	if m == nil {
+		return "<nil>"
+	}
+	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+	m.Serialize(buffer)
+	return buffer.GetBox().String()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go
index 2aa24cb..5e06247 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParameters.go
@@ -102,7 +102,7 @@ func (m *BACnetNotificationParameters) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParameters"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -137,19 +137,19 @@ func BACnetNotificationParametersParse(readBuffer utils.ReadBuffer, tagNumber ui
 	var typeSwitchError error
 	switch {
 	case peekedTagNumber == uint8(0): // BACnetNotificationParametersChangeOfBitString
-		_parent, typeSwitchError = BACnetNotificationParametersChangeOfBitStringParse(readBuffer, tagNumber, peekedTagNumber)
+		_parent, typeSwitchError = BACnetNotificationParametersChangeOfBitStringParse(readBuffer, tagNumber, objectType, peekedTagNumber)
 	case peekedTagNumber == uint8(1): // BACnetNotificationParametersChangeOfState
-		_parent, typeSwitchError = BACnetNotificationParametersChangeOfStateParse(readBuffer, tagNumber, peekedTagNumber)
+		_parent, typeSwitchError = BACnetNotificationParametersChangeOfStateParse(readBuffer, tagNumber, objectType, peekedTagNumber)
 	case peekedTagNumber == uint8(2): // BACnetNotificationParametersChangeOfValue
-		_parent, typeSwitchError = BACnetNotificationParametersChangeOfValueParse(readBuffer, tagNumber, peekedTagNumber)
+		_parent, typeSwitchError = BACnetNotificationParametersChangeOfValueParse(readBuffer, tagNumber, objectType, peekedTagNumber)
 	case peekedTagNumber == uint8(6): // BACnetNotificationParametersComplexEventType
-		_parent, typeSwitchError = BACnetNotificationParametersComplexEventTypeParse(readBuffer, tagNumber, peekedTagNumber)
+		_parent, typeSwitchError = BACnetNotificationParametersComplexEventTypeParse(readBuffer, tagNumber, objectType, peekedTagNumber)
 	case peekedTagNumber == uint8(9): // BACnetNotificationParametersExtended
-		_parent, typeSwitchError = BACnetNotificationParametersExtendedParse(readBuffer, tagNumber, peekedTagNumber)
+		_parent, typeSwitchError = BACnetNotificationParametersExtendedParse(readBuffer, tagNumber, objectType, peekedTagNumber)
 	case peekedTagNumber == uint8(10): // BACnetNotificationParametersBufferReady
-		_parent, typeSwitchError = BACnetNotificationParametersBufferReadyParse(readBuffer, tagNumber, peekedTagNumber)
+		_parent, typeSwitchError = BACnetNotificationParametersBufferReadyParse(readBuffer, tagNumber, objectType, peekedTagNumber)
 	case peekedTagNumber == uint8(11): // BACnetNotificationParametersUnsignedRange
-		_parent, typeSwitchError = BACnetNotificationParametersUnsignedRangeParse(readBuffer, tagNumber, peekedTagNumber)
+		_parent, typeSwitchError = BACnetNotificationParametersUnsignedRangeParse(readBuffer, tagNumber, objectType, peekedTagNumber)
 	default:
 		// TODO: return actual type
 		typeSwitchError = errors.New("Unmapped type")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
index 5aabfb2..6615b6c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
@@ -121,7 +121,7 @@ func (m *BACnetNotificationParametersBufferReady) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersBufferReadyParse(readBuffer utils.ReadBuffer, tagNumber uint8, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersBufferReadyParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParametersBufferReady"); pullErr != nil {
 		return nil, pullErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
index 7162494..198b168 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
@@ -116,7 +116,7 @@ func (m *BACnetNotificationParametersChangeOfBitString) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersChangeOfBitStringParse(readBuffer utils.ReadBuffer, tagNumber uint8, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersChangeOfBitStringParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParametersChangeOfBitString"); pullErr != nil {
 		return nil, pullErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
index dca3fdc..da0899b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
@@ -116,7 +116,7 @@ func (m *BACnetNotificationParametersChangeOfState) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersChangeOfStateParse(readBuffer utils.ReadBuffer, tagNumber uint8, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersChangeOfStateParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParametersChangeOfState"); pullErr != nil {
 		return nil, pullErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
index a2075ae..b603d1d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
@@ -116,7 +116,7 @@ func (m *BACnetNotificationParametersChangeOfValue) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersChangeOfValueParse(readBuffer utils.ReadBuffer, tagNumber uint8, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersChangeOfValueParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParametersChangeOfValue"); pullErr != nil {
 		return nil, pullErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go
index b0c8168..c22e334 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go
@@ -101,7 +101,7 @@ func (m *BACnetNotificationParametersComplexEventType) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersComplexEventTypeParse(readBuffer utils.ReadBuffer, tagNumber uint8, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersComplexEventTypeParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParametersComplexEventType"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -110,7 +110,7 @@ func BACnetNotificationParametersComplexEventTypeParse(readBuffer utils.ReadBuff
 	if pullErr := readBuffer.PullContext("listOfValues"); pullErr != nil {
 		return nil, pullErr
 	}
-	_listOfValues, _listOfValuesErr := BACnetPropertyValuesParse(readBuffer, peekedTagNumber)
+	_listOfValues, _listOfValuesErr := BACnetPropertyValuesParse(readBuffer, peekedTagNumber, objectType)
 	if _listOfValuesErr != nil {
 		return nil, errors.Wrap(_listOfValuesErr, "Error parsing 'listOfValues' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
index 7996e22..1f6f610 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
@@ -121,7 +121,7 @@ func (m *BACnetNotificationParametersExtended) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersExtendedParse(readBuffer utils.ReadBuffer, tagNumber uint8, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersExtendedParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParametersExtended"); pullErr != nil {
 		return nil, pullErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
index 4334db5..dea7369 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
@@ -121,7 +121,7 @@ func (m *BACnetNotificationParametersUnsignedRange) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotificationParametersUnsignedRangeParse(readBuffer utils.ReadBuffer, tagNumber uint8, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
+func BACnetNotificationParametersUnsignedRangeParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, peekedTagNumber uint8) (*BACnetNotificationParameters, error) {
 	if pullErr := readBuffer.PullContext("BACnetNotificationParametersUnsignedRange"); pullErr != nil {
 		return nil, pullErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
index 1fe5a4d..9fa6165 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
@@ -93,6 +93,7 @@ const (
 	BACnetObjectType_TIMER                  BACnetObjectType = 31
 	BACnetObjectType_TREND_LOG              BACnetObjectType = 20
 	BACnetObjectType_TREND_LOG_MULTIPLE     BACnetObjectType = 27
+	BACnetObjectType_UNKNOWN                BACnetObjectType = 0x3FF
 )
 
 var BACnetObjectTypeValues []BACnetObjectType
@@ -160,6 +161,7 @@ func init() {
 		BACnetObjectType_TIMER,
 		BACnetObjectType_TREND_LOG,
 		BACnetObjectType_TREND_LOG_MULTIPLE,
+		BACnetObjectType_UNKNOWN,
 	}
 }
 
@@ -167,6 +169,8 @@ func BACnetObjectTypeByValue(value uint16) BACnetObjectType {
 	switch value {
 	case 0:
 		return BACnetObjectType_ANALOG_INPUT
+	case 0x3FF:
+		return BACnetObjectType_UNKNOWN
 	case 1:
 		return BACnetObjectType_ANALOG_OUTPUT
 	case 10:
@@ -293,6 +297,8 @@ func BACnetObjectTypeByName(value string) BACnetObjectType {
 	switch value {
 	case "ANALOG_INPUT":
 		return BACnetObjectType_ANALOG_INPUT
+	case "UNKNOWN":
+		return BACnetObjectType_UNKNOWN
 	case "ANALOG_OUTPUT":
 		return BACnetObjectType_ANALOG_OUTPUT
 	case "FILE":
@@ -449,6 +455,8 @@ func (e BACnetObjectType) name() string {
 	switch e {
 	case BACnetObjectType_ANALOG_INPUT:
 		return "ANALOG_INPUT"
+	case BACnetObjectType_UNKNOWN:
+		return "UNKNOWN"
 	case BACnetObjectType_ANALOG_OUTPUT:
 		return "ANALOG_OUTPUT"
 	case BACnetObjectType_FILE:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValue.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValue.go
index 1d0a2d3..9019d89 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValue.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValue.go
@@ -94,7 +94,7 @@ func (m *BACnetPropertyValue) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetPropertyValueParse(readBuffer utils.ReadBuffer) (*BACnetPropertyValue, error) {
+func BACnetPropertyValueParse(readBuffer utils.ReadBuffer, objectType BACnetObjectType) (*BACnetPropertyValue, error) {
 	if pullErr := readBuffer.PullContext("BACnetPropertyValue"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -140,7 +140,7 @@ func BACnetPropertyValueParse(readBuffer utils.ReadBuffer) (*BACnetPropertyValue
 		if pullErr := readBuffer.PullContext("propertyValue"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataElementParse(readBuffer)
+		_val, _err := BACnetConstructedDataElementParse(readBuffer, objectType, propertyIdentifier)
 		switch {
 		case _err != nil && _err != utils.ParseAssertError:
 			return nil, errors.Wrap(_err, "Error parsing 'propertyValue' field")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go
index c777776..a10dae4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyValues.go
@@ -88,7 +88,7 @@ func (m *BACnetPropertyValues) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetPropertyValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetPropertyValues, error) {
+func BACnetPropertyValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType) (*BACnetPropertyValues, error) {
 	if pullErr := readBuffer.PullContext("BACnetPropertyValues"); pullErr != nil {
 		return nil, pullErr
 	}
@@ -113,12 +113,12 @@ func BACnetPropertyValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*B
 	// Terminated array
 	data := make([]*BACnetPropertyValue, 0)
 	{
-		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, tagNumber)) {
-			_item, _err := BACnetPropertyValueParse(readBuffer)
+		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
+			_item, _err := BACnetPropertyValueParse(readBuffer, objectType)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'data' field")
 			}
-			data = append(data, _item)
+			data = append(data, CastBACnetPropertyValue(_item))
 
 		}
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
index c8fecb9..5dd8a95 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckAtomicReadFile) ServiceChoice() uint8 {
 	return 0x06
 }
 
-func (m *BACnetServiceAckAtomicReadFile) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckAtomicReadFile) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckAtomicReadFile() *BACnetServiceAck {
 	child := &BACnetServiceAckAtomicReadFile{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
index d7006df..afb64d1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
@@ -46,8 +46,7 @@ func (m *BACnetServiceAckAtomicWriteFile) ServiceChoice() uint8 {
 	return 0x07
 }
 
-func (m *BACnetServiceAckAtomicWriteFile) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckAtomicWriteFile) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckAtomicWriteFile(fileStartPosition *BACnetContextTagSignedInteger) *BACnetServiceAck {
 	child := &BACnetServiceAckAtomicWriteFile{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
index 078dc2c..7f519ff 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckConfirmedPrivateTransfer) ServiceChoice() uint8 {
 	return 0x12
 }
 
-func (m *BACnetServiceAckConfirmedPrivateTransfer) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckConfirmedPrivateTransfer) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckConfirmedPrivateTransfer() *BACnetServiceAck {
 	child := &BACnetServiceAckConfirmedPrivateTransfer{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
index 49c38a5..7be5880 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckCreateObject) ServiceChoice() uint8 {
 	return 0x0A
 }
 
-func (m *BACnetServiceAckCreateObject) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckCreateObject) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckCreateObject() *BACnetServiceAck {
 	child := &BACnetServiceAckCreateObject{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
index 06fe665..0d6cc84 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckGetAlarmSummary) ServiceChoice() uint8 {
 	return 0x03
 }
 
-func (m *BACnetServiceAckGetAlarmSummary) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckGetAlarmSummary) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckGetAlarmSummary() *BACnetServiceAck {
 	child := &BACnetServiceAckGetAlarmSummary{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
index 0789394..76bb511 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckGetEnrollmentSummary) ServiceChoice() uint8 {
 	return 0x04
 }
 
-func (m *BACnetServiceAckGetEnrollmentSummary) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckGetEnrollmentSummary) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckGetEnrollmentSummary() *BACnetServiceAck {
 	child := &BACnetServiceAckGetEnrollmentSummary{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
index 562dbb2..c5be755 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckGetEventInformation) ServiceChoice() uint8 {
 	return 0x1D
 }
 
-func (m *BACnetServiceAckGetEventInformation) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckGetEventInformation) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckGetEventInformation() *BACnetServiceAck {
 	child := &BACnetServiceAckGetEventInformation{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
index 83f8a2e..54dca97 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
@@ -49,8 +49,7 @@ func (m *BACnetServiceAckReadProperty) ServiceChoice() uint8 {
 	return 0x0C
 }
 
-func (m *BACnetServiceAckReadProperty) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckReadProperty) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckReadProperty(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger, values *BACnetConstructedData) *BACnetServiceAck {
 	child := &BACnetServiceAckReadProperty{
@@ -176,7 +175,7 @@ func BACnetServiceAckReadPropertyParse(readBuffer utils.ReadBuffer) (*BACnetServ
 		if pullErr := readBuffer.PullContext("values"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(3))
+		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(3), objectIdentifier.ObjectType, propertyIdentifier)
 		switch {
 		case _err != nil && _err != utils.ParseAssertError:
 			return nil, errors.Wrap(_err, "Error parsing 'values' field")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
index 5398479..50cb5d3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckReadPropertyMultiple) ServiceChoice() uint8 {
 	return 0x0E
 }
 
-func (m *BACnetServiceAckReadPropertyMultiple) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckReadPropertyMultiple) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckReadPropertyMultiple() *BACnetServiceAck {
 	child := &BACnetServiceAckReadPropertyMultiple{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
index a9042dc..c7570ec 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckReadRange) ServiceChoice() uint8 {
 	return 0x1A
 }
 
-func (m *BACnetServiceAckReadRange) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckReadRange) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckReadRange() *BACnetServiceAck {
 	child := &BACnetServiceAckReadRange{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
index d22f885..af99f05 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckRemovedAuthenticate) ServiceChoice() uint8 {
 	return 0x18
 }
 
-func (m *BACnetServiceAckRemovedAuthenticate) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckRemovedAuthenticate) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckRemovedAuthenticate() *BACnetServiceAck {
 	child := &BACnetServiceAckRemovedAuthenticate{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
index 16f6fe4..e41fccb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckRemovedReadPropertyConditional) ServiceChoice() uint8 {
 	return 0x0D
 }
 
-func (m *BACnetServiceAckRemovedReadPropertyConditional) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckRemovedReadPropertyConditional) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckRemovedReadPropertyConditional() *BACnetServiceAck {
 	child := &BACnetServiceAckRemovedReadPropertyConditional{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
index 81824df..9634381 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckVTData) ServiceChoice() uint8 {
 	return 0x17
 }
 
-func (m *BACnetServiceAckVTData) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckVTData) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckVTData() *BACnetServiceAck {
 	child := &BACnetServiceAckVTData{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
index a43ed45..7778c07 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
@@ -44,8 +44,7 @@ func (m *BACnetServiceAckVTOpen) ServiceChoice() uint8 {
 	return 0x15
 }
 
-func (m *BACnetServiceAckVTOpen) InitializeParent(parent *BACnetServiceAck) {
-}
+func (m *BACnetServiceAckVTOpen) InitializeParent(parent *BACnetServiceAck) {}
 
 func NewBACnetServiceAckVTOpen() *BACnetServiceAck {
 	child := &BACnetServiceAckVTOpen{
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
index 698ee80..1b909bb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
@@ -179,7 +179,7 @@ func BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationParse(readBuffer u
 	if pullErr := readBuffer.PullContext("listOfValues"); pullErr != nil {
 		return nil, pullErr
 	}
-	_listOfValues, _listOfValuesErr := BACnetPropertyValuesParse(readBuffer, uint8(4))
+	_listOfValues, _listOfValuesErr := BACnetPropertyValuesParse(readBuffer, uint8(4), monitoredObjectIdentifier.ObjectType)
 	if _listOfValuesErr != nil {
 		return nil, errors.Wrap(_listOfValuesErr, "Error parsing 'listOfValues' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
index 94ab54b..6ed51f8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
@@ -148,7 +148,7 @@ func BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransferParse(readBuffer u
 		if pullErr := readBuffer.PullContext("serviceParameters"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetPropertyValuesParse(readBuffer, uint8(2))
+		_val, _err := BACnetPropertyValuesParse(readBuffer, uint8(2), BACnetObjectType_UNKNOWN)
 		switch {
 		case _err != nil && _err != utils.ParseAssertError:
 			return nil, errors.Wrap(_err, "Error parsing 'serviceParameters' field")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
index 3dc618d..08d8817 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
@@ -19,23 +19,21 @@
 
 package model
 
-
 import (
 	"fmt"
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // Constant values.
 const BVLC_BACNETTYPE uint8 = 0x81
 
 // The data-structure of this message
 type BVLC struct {
-        BvlcPayloadLength uint16
-	Child IBVLCChild
+	BvlcPayloadLength uint16
+	Child             IBVLCChild
 }
 
 // The corresponding interface
@@ -53,12 +51,13 @@ type IBVLCParent interface {
 
 type IBVLCChild interface {
 	Serialize(writeBuffer utils.WriteBuffer) error
-	InitializeParent(parent *BVLCbvlcPayloadLength uint16)
+	InitializeParent(parent *BVLC, bvlcPayloadLength uint16)
 	GetTypeName() string
 	IBVLC
 }
 
-func NewBVLC( bvlcPayloadLength uint16 ) *BVLC {	return &BVLC{BvlcPayloadLength: bvlcPayloadLength}
+func NewBVLC(bvlcPayloadLength uint16) *BVLC {
+	return &BVLC{BvlcPayloadLength: bvlcPayloadLength}
 }
 
 func CastBVLC(structType interface{}) *BVLC {
@@ -92,7 +91,7 @@ func (m *BVLC) ParentLengthInBits() uint16 {
 	// Const Field (bacnetType)
 	lengthInBits += 8
 	// Discriminator Field (bvlcFunction)
-	lengthInBits += 8;
+	lengthInBits += 8
 
 	// Implicit Field (bvlcLength)
 	lengthInBits += 16
@@ -123,7 +122,7 @@ func BVLCParse(readBuffer utils.ReadBuffer) (*BVLC, error) {
 	// Discriminator Field (bvlcFunction) (Used as input to a switch field)
 	bvlcFunction, _bvlcFunctionErr := readBuffer.ReadUint8("bvlcFunction", 8)
 	if _bvlcFunctionErr != nil {
-	return nil, errors.Wrap(_bvlcFunctionErr, "Error parsing 'bvlcFunction' field")
+		return nil, errors.Wrap(_bvlcFunctionErr, "Error parsing 'bvlcFunction' field")
 	}
 
 	// Implicit Field (bvlcLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
@@ -141,32 +140,32 @@ func BVLCParse(readBuffer utils.ReadBuffer) (*BVLC, error) {
 	var _parent *BVLC
 	var typeSwitchError error
 	switch {
-case bvlcFunction == 0x00 : // BVLCResult
-		_parent, typeSwitchError = BVLCResultParse(readBuffer, )
-case bvlcFunction == 0x01 : // BVLCWriteBroadcastDistributionTable
+	case bvlcFunction == 0x00: // BVLCResult
+		_parent, typeSwitchError = BVLCResultParse(readBuffer)
+	case bvlcFunction == 0x01: // BVLCWriteBroadcastDistributionTable
 		_parent, typeSwitchError = BVLCWriteBroadcastDistributionTableParse(readBuffer, bvlcPayloadLength)
-case bvlcFunction == 0x02 : // BVLCReadBroadcastDistributionTable
-		_parent, typeSwitchError = BVLCReadBroadcastDistributionTableParse(readBuffer, )
-case bvlcFunction == 0x03 : // BVLCReadBroadcastDistributionTableAck
-		_parent, typeSwitchError = BVLCReadBroadcastDistributionTableAckParse(readBuffer, )
-case bvlcFunction == 0x04 : // BVLCForwardedNPDU
+	case bvlcFunction == 0x02: // BVLCReadBroadcastDistributionTable
+		_parent, typeSwitchError = BVLCReadBroadcastDistributionTableParse(readBuffer)
+	case bvlcFunction == 0x03: // BVLCReadBroadcastDistributionTableAck
+		_parent, typeSwitchError = BVLCReadBroadcastDistributionTableAckParse(readBuffer)
+	case bvlcFunction == 0x04: // BVLCForwardedNPDU
 		_parent, typeSwitchError = BVLCForwardedNPDUParse(readBuffer, bvlcPayloadLength)
-case bvlcFunction == 0x05 : // BVLCRegisterForeignDevice
-		_parent, typeSwitchError = BVLCRegisterForeignDeviceParse(readBuffer, )
-case bvlcFunction == 0x06 : // BVLCReadForeignDeviceTable
-		_parent, typeSwitchError = BVLCReadForeignDeviceTableParse(readBuffer, )
-case bvlcFunction == 0x07 : // BVLCReadForeignDeviceTableAck
-		_parent, typeSwitchError = BVLCReadForeignDeviceTableAckParse(readBuffer, )
-case bvlcFunction == 0x08 : // BVLCDeleteForeignDeviceTableEntry
-		_parent, typeSwitchError = BVLCDeleteForeignDeviceTableEntryParse(readBuffer, )
-case bvlcFunction == 0x09 : // BVLCDistributeBroadcastToNetwork
+	case bvlcFunction == 0x05: // BVLCRegisterForeignDevice
+		_parent, typeSwitchError = BVLCRegisterForeignDeviceParse(readBuffer)
+	case bvlcFunction == 0x06: // BVLCReadForeignDeviceTable
+		_parent, typeSwitchError = BVLCReadForeignDeviceTableParse(readBuffer)
+	case bvlcFunction == 0x07: // BVLCReadForeignDeviceTableAck
+		_parent, typeSwitchError = BVLCReadForeignDeviceTableAckParse(readBuffer)
+	case bvlcFunction == 0x08: // BVLCDeleteForeignDeviceTableEntry
+		_parent, typeSwitchError = BVLCDeleteForeignDeviceTableEntryParse(readBuffer)
+	case bvlcFunction == 0x09: // BVLCDistributeBroadcastToNetwork
 		_parent, typeSwitchError = BVLCDistributeBroadcastToNetworkParse(readBuffer, bvlcPayloadLength)
-case bvlcFunction == 0x0A : // BVLCOriginalUnicastNPDU
+	case bvlcFunction == 0x0A: // BVLCOriginalUnicastNPDU
 		_parent, typeSwitchError = BVLCOriginalUnicastNPDUParse(readBuffer, bvlcPayloadLength)
-case bvlcFunction == 0x0B : // BVLCOriginalBroadcastNPDU
+	case bvlcFunction == 0x0B: // BVLCOriginalBroadcastNPDU
 		_parent, typeSwitchError = BVLCOriginalBroadcastNPDUParse(readBuffer, bvlcPayloadLength)
-case bvlcFunction == 0x0C : // BVLCSecureBVLL
-		_parent, typeSwitchError = BVLCSecureBVLLParse(readBuffer, )
+	case bvlcFunction == 0x0C: // BVLCSecureBVLL
+		_parent, typeSwitchError = BVLCSecureBVLLParse(readBuffer)
 	default:
 		// TODO: return actual type
 		typeSwitchError = errors.New("Unmapped type")
@@ -180,7 +179,7 @@ case bvlcFunction == 0x0C : // BVLCSecureBVLL
 	}
 
 	// Finish initializing
-	_parent.Child.InitializeParent(_parentbvlcPayloadLength)
+	_parent.Child.InitializeParent(_parent, bvlcPayloadLength)
 	return _parent, nil
 }
 
@@ -189,7 +188,7 @@ func (m *BVLC) Serialize(writeBuffer utils.WriteBuffer) error {
 }
 
 func (m *BVLC) SerializeParent(writeBuffer utils.WriteBuffer, child IBVLC, serializeChildFunction func() error) error {
-	if pushErr :=writeBuffer.PushContext("BVLC"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BVLC"); pushErr != nil {
 		return pushErr
 	}
 
@@ -237,6 +236,3 @@ func (m *BVLC) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
index 61314a5..52b6b84 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
@@ -19,13 +19,11 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCDeleteForeignDeviceTableEntry struct {
@@ -43,14 +41,15 @@ type IBVLCDeleteForeignDeviceTableEntry interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCDeleteForeignDeviceTableEntry) BvlcFunction() uint8 {
-return 0x08}
-
+	return 0x08
+}
 
-func (m *BVLCDeleteForeignDeviceTableEntry) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+func (m *BVLCDeleteForeignDeviceTableEntry) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {
 }
 
-func NewBVLCDeleteForeignDeviceTableEntry( bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCDeleteForeignDeviceTableEntry{
-    	BVLC: NewBVLC(bvlcPayloadLength),
+func NewBVLCDeleteForeignDeviceTableEntry(bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCDeleteForeignDeviceTableEntry{
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -89,7 +88,6 @@ func (m *BVLCDeleteForeignDeviceTableEntry) LengthInBitsConditional(lastItem boo
 	return lengthInBits
 }
 
-
 func (m *BVLCDeleteForeignDeviceTableEntry) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -105,7 +103,7 @@ func BVLCDeleteForeignDeviceTableEntryParse(readBuffer utils.ReadBuffer) (*BVLC,
 
 	// Create a partially initialized instance
 	_child := &BVLCDeleteForeignDeviceTableEntry{
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -133,6 +131,3 @@ func (m *BVLCDeleteForeignDeviceTableEntry) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
index 091c82f..d7a9fd3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
@@ -19,14 +19,12 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCDistributeBroadcastToNetwork struct {
@@ -45,15 +43,15 @@ type IBVLCDistributeBroadcastToNetwork interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCDistributeBroadcastToNetwork) BvlcFunction() uint8 {
-return 0x09}
-
-
-func (m *BVLCDistributeBroadcastToNetwork) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x09
 }
 
-func NewBVLCDistributeBroadcastToNetwork( npdu *NPDU , bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCDistributeBroadcastToNetwork{
+func (m *BVLCDistributeBroadcastToNetwork) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCDistributeBroadcastToNetwork(npdu *NPDU, bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCDistributeBroadcastToNetwork{
 		Npdu: npdu,
-    	BVLC: NewBVLC(bvlcPayloadLength),
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -95,7 +93,6 @@ func (m *BVLCDistributeBroadcastToNetwork) LengthInBitsConditional(lastItem bool
 	return lengthInBits
 }
 
-
 func (m *BVLCDistributeBroadcastToNetwork) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -109,7 +106,7 @@ func BVLCDistributeBroadcastToNetworkParse(readBuffer utils.ReadBuffer, bvlcPayl
 	if pullErr := readBuffer.PullContext("npdu"); pullErr != nil {
 		return nil, pullErr
 	}
-_npdu, _npduErr := NPDUParse(readBuffer , bvlcPayloadLength )
+	_npdu, _npduErr := NPDUParse(readBuffer, bvlcPayloadLength)
 	if _npduErr != nil {
 		return nil, errors.Wrap(_npduErr, "Error parsing 'npdu' field")
 	}
@@ -125,7 +122,7 @@ _npdu, _npduErr := NPDUParse(readBuffer , bvlcPayloadLength )
 	// Create a partially initialized instance
 	_child := &BVLCDistributeBroadcastToNetwork{
 		Npdu: CastNPDU(npdu),
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -137,17 +134,17 @@ func (m *BVLCDistributeBroadcastToNetwork) Serialize(writeBuffer utils.WriteBuff
 			return pushErr
 		}
 
-	// Simple Field (npdu)
-	if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
-		return pushErr
-	}
-	_npduErr := m.Npdu.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
-		return popErr
-	}
-	if _npduErr != nil {
-		return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
-	}
+		// Simple Field (npdu)
+		if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
+			return pushErr
+		}
+		_npduErr := m.Npdu.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
+			return popErr
+		}
+		if _npduErr != nil {
+			return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BVLCDistributeBroadcastToNetwork"); popErr != nil {
 			return popErr
@@ -165,6 +162,3 @@ func (m *BVLCDistributeBroadcastToNetwork) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
index 0d0765b..b596b90 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
@@ -19,19 +19,17 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCForwardedNPDU struct {
 	*BVLC
-	Ip []uint8
+	Ip   []uint8
 	Port uint16
 	Npdu *NPDU
 }
@@ -47,17 +45,17 @@ type IBVLCForwardedNPDU interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCForwardedNPDU) BvlcFunction() uint8 {
-return 0x04}
-
-
-func (m *BVLCForwardedNPDU) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x04
 }
 
-func NewBVLCForwardedNPDU( ip []uint8 , port uint16 , npdu *NPDU , bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCForwardedNPDU{
-		Ip: ip,
+func (m *BVLCForwardedNPDU) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCForwardedNPDU(ip []uint8, port uint16, npdu *NPDU, bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCForwardedNPDU{
+		Ip:   ip,
 		Port: port,
 		Npdu: npdu,
-    	BVLC: NewBVLC(bvlcPayloadLength),
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -99,7 +97,7 @@ func (m *BVLCForwardedNPDU) LengthInBitsConditional(lastItem bool) uint16 {
 	}
 
 	// Simple field (port)
-	lengthInBits += 16;
+	lengthInBits += 16
 
 	// Simple field (npdu)
 	lengthInBits += m.Npdu.LengthInBits()
@@ -107,7 +105,6 @@ func (m *BVLCForwardedNPDU) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
-
 func (m *BVLCForwardedNPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -137,7 +134,7 @@ func BVLCForwardedNPDUParse(readBuffer utils.ReadBuffer, bvlcPayloadLength uint1
 	}
 
 	// Simple Field (port)
-_port, _portErr := readBuffer.ReadUint16("port", 16)
+	_port, _portErr := readBuffer.ReadUint16("port", 16)
 	if _portErr != nil {
 		return nil, errors.Wrap(_portErr, "Error parsing 'port' field")
 	}
@@ -147,7 +144,7 @@ _port, _portErr := readBuffer.ReadUint16("port", 16)
 	if pullErr := readBuffer.PullContext("npdu"); pullErr != nil {
 		return nil, pullErr
 	}
-_npdu, _npduErr := NPDUParse(readBuffer , uint16(bvlcPayloadLength) - uint16(uint16(6)) )
+	_npdu, _npduErr := NPDUParse(readBuffer, uint16(bvlcPayloadLength)-uint16(uint16(6)))
 	if _npduErr != nil {
 		return nil, errors.Wrap(_npduErr, "Error parsing 'npdu' field")
 	}
@@ -162,10 +159,10 @@ _npdu, _npduErr := NPDUParse(readBuffer , uint16(bvlcPayloadLength) - uint16(uin
 
 	// Create a partially initialized instance
 	_child := &BVLCForwardedNPDU{
-		Ip: ip,
+		Ip:   ip,
 		Port: port,
 		Npdu: CastNPDU(npdu),
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -177,40 +174,40 @@ func (m *BVLCForwardedNPDU) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-	// Array Field (ip)
-	if m.Ip != nil {
-		if pushErr := writeBuffer.PushContext("ip", utils.WithRenderAsList(true)); pushErr != nil {
-			return pushErr
-		}
-		for _, _element := range m.Ip {
-			_elementErr := writeBuffer.WriteUint8("", 8, _element)
-			if _elementErr != nil {
-				return errors.Wrap(_elementErr, "Error serializing 'ip' field")
+		// Array Field (ip)
+		if m.Ip != nil {
+			if pushErr := writeBuffer.PushContext("ip", utils.WithRenderAsList(true)); pushErr != nil {
+				return pushErr
+			}
+			for _, _element := range m.Ip {
+				_elementErr := writeBuffer.WriteUint8("", 8, _element)
+				if _elementErr != nil {
+					return errors.Wrap(_elementErr, "Error serializing 'ip' field")
+				}
+			}
+			if popErr := writeBuffer.PopContext("ip", utils.WithRenderAsList(true)); popErr != nil {
+				return popErr
 			}
 		}
-		if popErr := writeBuffer.PopContext("ip", utils.WithRenderAsList(true)); popErr != nil {
-			return popErr
-		}
-	}
 
-	// Simple Field (port)
-	port := uint16(m.Port)
-	_portErr := writeBuffer.WriteUint16("port", 16, (port))
-	if _portErr != nil {
-		return errors.Wrap(_portErr, "Error serializing 'port' field")
-	}
+		// Simple Field (port)
+		port := uint16(m.Port)
+		_portErr := writeBuffer.WriteUint16("port", 16, (port))
+		if _portErr != nil {
+			return errors.Wrap(_portErr, "Error serializing 'port' field")
+		}
 
-	// Simple Field (npdu)
-	if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
-		return pushErr
-	}
-	_npduErr := m.Npdu.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
-		return popErr
-	}
-	if _npduErr != nil {
-		return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
-	}
+		// Simple Field (npdu)
+		if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
+			return pushErr
+		}
+		_npduErr := m.Npdu.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
+			return popErr
+		}
+		if _npduErr != nil {
+			return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BVLCForwardedNPDU"); popErr != nil {
 			return popErr
@@ -228,6 +225,3 @@ func (m *BVLCForwardedNPDU) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
index ccec798..2be6ac0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
@@ -19,14 +19,12 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCOriginalBroadcastNPDU struct {
@@ -45,15 +43,15 @@ type IBVLCOriginalBroadcastNPDU interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCOriginalBroadcastNPDU) BvlcFunction() uint8 {
-return 0x0B}
-
-
-func (m *BVLCOriginalBroadcastNPDU) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x0B
 }
 
-func NewBVLCOriginalBroadcastNPDU( npdu *NPDU , bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCOriginalBroadcastNPDU{
+func (m *BVLCOriginalBroadcastNPDU) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCOriginalBroadcastNPDU(npdu *NPDU, bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCOriginalBroadcastNPDU{
 		Npdu: npdu,
-    	BVLC: NewBVLC(bvlcPayloadLength),
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -95,7 +93,6 @@ func (m *BVLCOriginalBroadcastNPDU) LengthInBitsConditional(lastItem bool) uint1
 	return lengthInBits
 }
 
-
 func (m *BVLCOriginalBroadcastNPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -109,7 +106,7 @@ func BVLCOriginalBroadcastNPDUParse(readBuffer utils.ReadBuffer, bvlcPayloadLeng
 	if pullErr := readBuffer.PullContext("npdu"); pullErr != nil {
 		return nil, pullErr
 	}
-_npdu, _npduErr := NPDUParse(readBuffer , bvlcPayloadLength )
+	_npdu, _npduErr := NPDUParse(readBuffer, bvlcPayloadLength)
 	if _npduErr != nil {
 		return nil, errors.Wrap(_npduErr, "Error parsing 'npdu' field")
 	}
@@ -125,7 +122,7 @@ _npdu, _npduErr := NPDUParse(readBuffer , bvlcPayloadLength )
 	// Create a partially initialized instance
 	_child := &BVLCOriginalBroadcastNPDU{
 		Npdu: CastNPDU(npdu),
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -137,17 +134,17 @@ func (m *BVLCOriginalBroadcastNPDU) Serialize(writeBuffer utils.WriteBuffer) err
 			return pushErr
 		}
 
-	// Simple Field (npdu)
-	if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
-		return pushErr
-	}
-	_npduErr := m.Npdu.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
-		return popErr
-	}
-	if _npduErr != nil {
-		return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
-	}
+		// Simple Field (npdu)
+		if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
+			return pushErr
+		}
+		_npduErr := m.Npdu.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
+			return popErr
+		}
+		if _npduErr != nil {
+			return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BVLCOriginalBroadcastNPDU"); popErr != nil {
 			return popErr
@@ -165,6 +162,3 @@ func (m *BVLCOriginalBroadcastNPDU) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
index 40c2245..58612d1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
@@ -19,14 +19,12 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCOriginalUnicastNPDU struct {
@@ -45,15 +43,15 @@ type IBVLCOriginalUnicastNPDU interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCOriginalUnicastNPDU) BvlcFunction() uint8 {
-return 0x0A}
-
-
-func (m *BVLCOriginalUnicastNPDU) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x0A
 }
 
-func NewBVLCOriginalUnicastNPDU( npdu *NPDU , bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCOriginalUnicastNPDU{
+func (m *BVLCOriginalUnicastNPDU) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCOriginalUnicastNPDU(npdu *NPDU, bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCOriginalUnicastNPDU{
 		Npdu: npdu,
-    	BVLC: NewBVLC(bvlcPayloadLength),
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -95,7 +93,6 @@ func (m *BVLCOriginalUnicastNPDU) LengthInBitsConditional(lastItem bool) uint16
 	return lengthInBits
 }
 
-
 func (m *BVLCOriginalUnicastNPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -109,7 +106,7 @@ func BVLCOriginalUnicastNPDUParse(readBuffer utils.ReadBuffer, bvlcPayloadLength
 	if pullErr := readBuffer.PullContext("npdu"); pullErr != nil {
 		return nil, pullErr
 	}
-_npdu, _npduErr := NPDUParse(readBuffer , bvlcPayloadLength )
+	_npdu, _npduErr := NPDUParse(readBuffer, bvlcPayloadLength)
 	if _npduErr != nil {
 		return nil, errors.Wrap(_npduErr, "Error parsing 'npdu' field")
 	}
@@ -125,7 +122,7 @@ _npdu, _npduErr := NPDUParse(readBuffer , bvlcPayloadLength )
 	// Create a partially initialized instance
 	_child := &BVLCOriginalUnicastNPDU{
 		Npdu: CastNPDU(npdu),
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -137,17 +134,17 @@ func (m *BVLCOriginalUnicastNPDU) Serialize(writeBuffer utils.WriteBuffer) error
 			return pushErr
 		}
 
-	// Simple Field (npdu)
-	if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
-		return pushErr
-	}
-	_npduErr := m.Npdu.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
-		return popErr
-	}
-	if _npduErr != nil {
-		return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
-	}
+		// Simple Field (npdu)
+		if pushErr := writeBuffer.PushContext("npdu"); pushErr != nil {
+			return pushErr
+		}
+		_npduErr := m.Npdu.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("npdu"); popErr != nil {
+			return popErr
+		}
+		if _npduErr != nil {
+			return errors.Wrap(_npduErr, "Error serializing 'npdu' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BVLCOriginalUnicastNPDU"); popErr != nil {
 			return popErr
@@ -165,6 +162,3 @@ func (m *BVLCOriginalUnicastNPDU) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
index 63eb1eb..e5b67d2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
@@ -19,13 +19,11 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCReadBroadcastDistributionTable struct {
@@ -43,14 +41,15 @@ type IBVLCReadBroadcastDistributionTable interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCReadBroadcastDistributionTable) BvlcFunction() uint8 {
-return 0x02}
-
+	return 0x02
+}
 
-func (m *BVLCReadBroadcastDistributionTable) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+func (m *BVLCReadBroadcastDistributionTable) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {
 }
 
-func NewBVLCReadBroadcastDistributionTable( bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCReadBroadcastDistributionTable{
-    	BVLC: NewBVLC(bvlcPayloadLength),
+func NewBVLCReadBroadcastDistributionTable(bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCReadBroadcastDistributionTable{
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -89,7 +88,6 @@ func (m *BVLCReadBroadcastDistributionTable) LengthInBitsConditional(lastItem bo
 	return lengthInBits
 }
 
-
 func (m *BVLCReadBroadcastDistributionTable) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -105,7 +103,7 @@ func BVLCReadBroadcastDistributionTableParse(readBuffer utils.ReadBuffer) (*BVLC
 
 	// Create a partially initialized instance
 	_child := &BVLCReadBroadcastDistributionTable{
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -133,6 +131,3 @@ func (m *BVLCReadBroadcastDistributionTable) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
index 402528c..01f80a8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
@@ -19,13 +19,11 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCReadBroadcastDistributionTableAck struct {
@@ -43,14 +41,15 @@ type IBVLCReadBroadcastDistributionTableAck interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCReadBroadcastDistributionTableAck) BvlcFunction() uint8 {
-return 0x03}
-
+	return 0x03
+}
 
-func (m *BVLCReadBroadcastDistributionTableAck) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+func (m *BVLCReadBroadcastDistributionTableAck) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {
 }
 
-func NewBVLCReadBroadcastDistributionTableAck( bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCReadBroadcastDistributionTableAck{
-    	BVLC: NewBVLC(bvlcPayloadLength),
+func NewBVLCReadBroadcastDistributionTableAck(bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCReadBroadcastDistributionTableAck{
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -89,7 +88,6 @@ func (m *BVLCReadBroadcastDistributionTableAck) LengthInBitsConditional(lastItem
 	return lengthInBits
 }
 
-
 func (m *BVLCReadBroadcastDistributionTableAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -105,7 +103,7 @@ func BVLCReadBroadcastDistributionTableAckParse(readBuffer utils.ReadBuffer) (*B
 
 	// Create a partially initialized instance
 	_child := &BVLCReadBroadcastDistributionTableAck{
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -133,6 +131,3 @@ func (m *BVLCReadBroadcastDistributionTableAck) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
index 4d0df01..1464f61 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
@@ -19,13 +19,11 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCReadForeignDeviceTable struct {
@@ -43,14 +41,14 @@ type IBVLCReadForeignDeviceTable interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCReadForeignDeviceTable) BvlcFunction() uint8 {
-return 0x06}
-
-
-func (m *BVLCReadForeignDeviceTable) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x06
 }
 
-func NewBVLCReadForeignDeviceTable( bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCReadForeignDeviceTable{
-    	BVLC: NewBVLC(bvlcPayloadLength),
+func (m *BVLCReadForeignDeviceTable) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCReadForeignDeviceTable(bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCReadForeignDeviceTable{
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -89,7 +87,6 @@ func (m *BVLCReadForeignDeviceTable) LengthInBitsConditional(lastItem bool) uint
 	return lengthInBits
 }
 
-
 func (m *BVLCReadForeignDeviceTable) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -105,7 +102,7 @@ func BVLCReadForeignDeviceTableParse(readBuffer utils.ReadBuffer) (*BVLC, error)
 
 	// Create a partially initialized instance
 	_child := &BVLCReadForeignDeviceTable{
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -133,6 +130,3 @@ func (m *BVLCReadForeignDeviceTable) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
index a5f5559..a3d01fd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
@@ -19,13 +19,11 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCReadForeignDeviceTableAck struct {
@@ -43,14 +41,14 @@ type IBVLCReadForeignDeviceTableAck interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCReadForeignDeviceTableAck) BvlcFunction() uint8 {
-return 0x07}
-
-
-func (m *BVLCReadForeignDeviceTableAck) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x07
 }
 
-func NewBVLCReadForeignDeviceTableAck( bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCReadForeignDeviceTableAck{
-    	BVLC: NewBVLC(bvlcPayloadLength),
+func (m *BVLCReadForeignDeviceTableAck) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCReadForeignDeviceTableAck(bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCReadForeignDeviceTableAck{
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -89,7 +87,6 @@ func (m *BVLCReadForeignDeviceTableAck) LengthInBitsConditional(lastItem bool) u
 	return lengthInBits
 }
 
-
 func (m *BVLCReadForeignDeviceTableAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -105,7 +102,7 @@ func BVLCReadForeignDeviceTableAckParse(readBuffer utils.ReadBuffer) (*BVLC, err
 
 	// Create a partially initialized instance
 	_child := &BVLCReadForeignDeviceTableAck{
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -133,6 +130,3 @@ func (m *BVLCReadForeignDeviceTableAck) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
index b70d598..eeb249d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
@@ -19,14 +19,12 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCRegisterForeignDevice struct {
@@ -45,15 +43,15 @@ type IBVLCRegisterForeignDevice interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCRegisterForeignDevice) BvlcFunction() uint8 {
-return 0x05}
-
-
-func (m *BVLCRegisterForeignDevice) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x05
 }
 
-func NewBVLCRegisterForeignDevice( ttl uint16 , bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCRegisterForeignDevice{
-		Ttl: ttl,
-    	BVLC: NewBVLC(bvlcPayloadLength),
+func (m *BVLCRegisterForeignDevice) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCRegisterForeignDevice(ttl uint16, bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCRegisterForeignDevice{
+		Ttl:  ttl,
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -90,12 +88,11 @@ func (m *BVLCRegisterForeignDevice) LengthInBitsConditional(lastItem bool) uint1
 	lengthInBits := uint16(m.ParentLengthInBits())
 
 	// Simple field (ttl)
-	lengthInBits += 16;
+	lengthInBits += 16
 
 	return lengthInBits
 }
 
-
 func (m *BVLCRegisterForeignDevice) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -106,7 +103,7 @@ func BVLCRegisterForeignDeviceParse(readBuffer utils.ReadBuffer) (*BVLC, error)
 	}
 
 	// Simple Field (ttl)
-_ttl, _ttlErr := readBuffer.ReadUint16("ttl", 16)
+	_ttl, _ttlErr := readBuffer.ReadUint16("ttl", 16)
 	if _ttlErr != nil {
 		return nil, errors.Wrap(_ttlErr, "Error parsing 'ttl' field")
 	}
@@ -118,8 +115,8 @@ _ttl, _ttlErr := readBuffer.ReadUint16("ttl", 16)
 
 	// Create a partially initialized instance
 	_child := &BVLCRegisterForeignDevice{
-		Ttl: ttl,
-        BVLC: &BVLC{},
+		Ttl:  ttl,
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -131,12 +128,12 @@ func (m *BVLCRegisterForeignDevice) Serialize(writeBuffer utils.WriteBuffer) err
 			return pushErr
 		}
 
-	// Simple Field (ttl)
-	ttl := uint16(m.Ttl)
-	_ttlErr := writeBuffer.WriteUint16("ttl", 16, (ttl))
-	if _ttlErr != nil {
-		return errors.Wrap(_ttlErr, "Error serializing 'ttl' field")
-	}
+		// Simple Field (ttl)
+		ttl := uint16(m.Ttl)
+		_ttlErr := writeBuffer.WriteUint16("ttl", 16, (ttl))
+		if _ttlErr != nil {
+			return errors.Wrap(_ttlErr, "Error serializing 'ttl' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BVLCRegisterForeignDevice"); popErr != nil {
 			return popErr
@@ -154,6 +151,3 @@ func (m *BVLCRegisterForeignDevice) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
index a859775..5bd1e1d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
@@ -19,14 +19,12 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCResult struct {
@@ -45,15 +43,15 @@ type IBVLCResult interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCResult) BvlcFunction() uint8 {
-return 0x00}
-
-
-func (m *BVLCResult) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x00
 }
 
-func NewBVLCResult( code BVLCResultCode , bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCResult{
+func (m *BVLCResult) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCResult(code BVLCResultCode, bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCResult{
 		Code: code,
-    	BVLC: NewBVLC(bvlcPayloadLength),
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -95,7 +93,6 @@ func (m *BVLCResult) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
-
 func (m *BVLCResult) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -109,7 +106,7 @@ func BVLCResultParse(readBuffer utils.ReadBuffer) (*BVLC, error) {
 	if pullErr := readBuffer.PullContext("code"); pullErr != nil {
 		return nil, pullErr
 	}
-_code, _codeErr := BVLCResultCodeParse(readBuffer)
+	_code, _codeErr := BVLCResultCodeParse(readBuffer)
 	if _codeErr != nil {
 		return nil, errors.Wrap(_codeErr, "Error parsing 'code' field")
 	}
@@ -125,7 +122,7 @@ _code, _codeErr := BVLCResultCodeParse(readBuffer)
 	// Create a partially initialized instance
 	_child := &BVLCResult{
 		Code: code,
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -137,17 +134,17 @@ func (m *BVLCResult) Serialize(writeBuffer utils.WriteBuffer) error {
 			return pushErr
 		}
 
-	// Simple Field (code)
-	if pushErr := writeBuffer.PushContext("code"); pushErr != nil {
-		return pushErr
-	}
-	_codeErr := m.Code.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("code"); popErr != nil {
-		return popErr
-	}
-	if _codeErr != nil {
-		return errors.Wrap(_codeErr, "Error serializing 'code' field")
-	}
+		// Simple Field (code)
+		if pushErr := writeBuffer.PushContext("code"); pushErr != nil {
+			return pushErr
+		}
+		_codeErr := m.Code.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("code"); popErr != nil {
+			return popErr
+		}
+		if _codeErr != nil {
+			return errors.Wrap(_codeErr, "Error serializing 'code' field")
+		}
 
 		if popErr := writeBuffer.PopContext("BVLCResult"); popErr != nil {
 			return popErr
@@ -165,6 +162,3 @@ func (m *BVLCResult) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
index 4514f03..b0a6303 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
@@ -19,13 +19,11 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCSecureBVLL struct {
@@ -43,14 +41,14 @@ type IBVLCSecureBVLL interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCSecureBVLL) BvlcFunction() uint8 {
-return 0x0C}
-
-
-func (m *BVLCSecureBVLL) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+	return 0x0C
 }
 
-func NewBVLCSecureBVLL( bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCSecureBVLL{
-    	BVLC: NewBVLC(bvlcPayloadLength),
+func (m *BVLCSecureBVLL) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {}
+
+func NewBVLCSecureBVLL(bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCSecureBVLL{
+		BVLC: NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -89,7 +87,6 @@ func (m *BVLCSecureBVLL) LengthInBitsConditional(lastItem bool) uint16 {
 	return lengthInBits
 }
 
-
 func (m *BVLCSecureBVLL) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -105,7 +102,7 @@ func BVLCSecureBVLLParse(readBuffer utils.ReadBuffer) (*BVLC, error) {
 
 	// Create a partially initialized instance
 	_child := &BVLCSecureBVLL{
-        BVLC: &BVLC{},
+		BVLC: &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -133,6 +130,3 @@ func (m *BVLCSecureBVLL) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go
index 290fdd3..a6d8013 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go
@@ -19,14 +19,12 @@
 
 package model
 
-
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
 )
 
-	// Code generated by code-generation. DO NOT EDIT.
-
+// Code generated by code-generation. DO NOT EDIT.
 
 // The data-structure of this message
 type BVLCWriteBroadcastDistributionTable struct {
@@ -45,15 +43,16 @@ type IBVLCWriteBroadcastDistributionTable interface {
 // Accessors for discriminator values.
 ///////////////////////////////////////////////////////////
 func (m *BVLCWriteBroadcastDistributionTable) BvlcFunction() uint8 {
-return 0x01}
-
+	return 0x01
+}
 
-func (m *BVLCWriteBroadcastDistributionTable) InitializeParent(parent *BVLCbvlcPayloadLength uint16) {
+func (m *BVLCWriteBroadcastDistributionTable) InitializeParent(parent *BVLC, bvlcPayloadLength uint16) {
 }
 
-func NewBVLCWriteBroadcastDistributionTable( table []*BVLCWriteBroadcastDistributionTableEntry , bvlcPayloadLength uint16 ) *BVLC {	child := &BVLCWriteBroadcastDistributionTable{
+func NewBVLCWriteBroadcastDistributionTable(table []*BVLCWriteBroadcastDistributionTableEntry, bvlcPayloadLength uint16) *BVLC {
+	child := &BVLCWriteBroadcastDistributionTable{
 		Table: table,
-    	BVLC: NewBVLC(bvlcPayloadLength),
+		BVLC:  NewBVLC(bvlcPayloadLength),
 	}
 	child.Child = child
 	return child.BVLC
@@ -99,7 +98,6 @@ func (m *BVLCWriteBroadcastDistributionTable) LengthInBitsConditional(lastItem b
 	return lengthInBits
 }
 
-
 func (m *BVLCWriteBroadcastDistributionTable) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
@@ -118,7 +116,7 @@ func BVLCWriteBroadcastDistributionTableParse(readBuffer utils.ReadBuffer, bvlcP
 	{
 		_tableLength := bvlcPayloadLength
 		_tableEndPos := readBuffer.GetPos() + uint16(_tableLength)
-		for ;readBuffer.GetPos() < _tableEndPos; {
+		for readBuffer.GetPos() < _tableEndPos {
 			_item, _err := BVLCWriteBroadcastDistributionTableEntryParse(readBuffer)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'table' field")
@@ -137,7 +135,7 @@ func BVLCWriteBroadcastDistributionTableParse(readBuffer utils.ReadBuffer, bvlcP
 	// Create a partially initialized instance
 	_child := &BVLCWriteBroadcastDistributionTable{
 		Table: table,
-        BVLC: &BVLC{},
+		BVLC:  &BVLC{},
 	}
 	_child.BVLC.Child = _child
 	return _child.BVLC, nil
@@ -149,21 +147,21 @@ func (m *BVLCWriteBroadcastDistributionTable) Serialize(writeBuffer utils.WriteB
 			return pushErr
 		}
 
-	// Array Field (table)
-	if m.Table != nil {
-		if pushErr := writeBuffer.PushContext("table", utils.WithRenderAsList(true)); pushErr != nil {
-			return pushErr
-		}
-		for _, _element := range m.Table {
-			_elementErr := _element.Serialize(writeBuffer)
-			if _elementErr != nil {
-				return errors.Wrap(_elementErr, "Error serializing 'table' field")
+		// Array Field (table)
+		if m.Table != nil {
+			if pushErr := writeBuffer.PushContext("table", utils.WithRenderAsList(true)); pushErr != nil {
+				return pushErr
+			}
+			for _, _element := range m.Table {
+				_elementErr := _element.Serialize(writeBuffer)
+				if _elementErr != nil {
+					return errors.Wrap(_elementErr, "Error serializing 'table' field")
+				}
+			}
+			if popErr := writeBuffer.PopContext("table", utils.WithRenderAsList(true)); popErr != nil {
+				return popErr
 			}
 		}
-		if popErr := writeBuffer.PopContext("table", utils.WithRenderAsList(true)); popErr != nil {
-			return popErr
-		}
-	}
 
 		if popErr := writeBuffer.PopContext("BVLCWriteBroadcastDistributionTable"); popErr != nil {
 			return popErr
@@ -181,6 +179,3 @@ func (m *BVLCWriteBroadcastDistributionTable) String() string {
 	m.Serialize(buffer)
 	return buffer.GetBox().String()
 }
-
-
-
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
index 8aa8cf4..77c5c3a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/StaticHelper.go
@@ -231,7 +231,10 @@ func ReadProprietaryEventType(readBuffer utils.ReadBuffer, value BACnetEventType
 	return readBuffer.ReadUint32("proprietaryEventType", bitsToRead)
 }
 
-func IsBACnetConstructedDataClosingTag(readBuffer utils.ReadBuffer, expectedTagNumber byte) bool {
+func IsBACnetConstructedDataClosingTag(readBuffer utils.ReadBuffer, instantTerminate bool, expectedTagNumber byte) bool {
+	if instantTerminate {
+		return true
+	}
 	oldPos := readBuffer.GetPos()
 	// TODO: add graceful exit if we know already that we are at the end (we might need to add available bytes to reader)
 	tagNumber, err := readBuffer.ReadUint8("", 4)
@@ -291,7 +294,7 @@ func PeekByte(readBuffer utils.ReadBuffer) (byte, error) {
 	return aByte, nil
 }
 
-func GuessDataType() BACnetDataType {
+func GuessDataType(objectType BACnetObjectType) BACnetDataType {
 	// TODO: implement me
 	return BACnetDataType_BACNET_PROPERTY_IDENTIFIER
 }
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go
index 0cb2d7e..993d3bf 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go
@@ -53,8 +53,7 @@ func (m *DF1SymbolMessageFrame) SymbolType() uint8 {
 	return 0x02
 }
 
-func (m *DF1SymbolMessageFrame) InitializeParent(parent *DF1Symbol) {
-}
+func (m *DF1SymbolMessageFrame) InitializeParent(parent *DF1Symbol) {}
 
 func NewDF1SymbolMessageFrame(destinationAddress uint8, sourceAddress uint8, command *DF1Command) *DF1Symbol {
 	child := &DF1SymbolMessageFrame{
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go
index 6a54d41..34da746 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go
@@ -44,8 +44,7 @@ func (m *DF1SymbolMessageFrameACK) SymbolType() uint8 {
 	return 0x06
 }
 
-func (m *DF1SymbolMessageFrameACK) InitializeParent(parent *DF1Symbol) {
-}
+func (m *DF1SymbolMessageFrameACK) InitializeParent(parent *DF1Symbol) {}
 
 func NewDF1SymbolMessageFrameACK() *DF1Symbol {
 	child := &DF1SymbolMessageFrameACK{
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go
index 44ddfce..c8d4bbc 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go
@@ -44,8 +44,7 @@ func (m *DF1SymbolMessageFrameNAK) SymbolType() uint8 {
 	return 0x15
 }
 
-func (m *DF1SymbolMessageFrameNAK) InitializeParent(parent *DF1Symbol) {
-}
+func (m *DF1SymbolMessageFrameNAK) InitializeParent(parent *DF1Symbol) {}
 
 func NewDF1SymbolMessageFrameNAK() *DF1Symbol {
 	child := &DF1SymbolMessageFrameNAK{
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go
index 713e766..b7f7879 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go
@@ -48,8 +48,7 @@ func (m *CipReadRequest) Service() uint8 {
 	return 0x4C
 }
 
-func (m *CipReadRequest) InitializeParent(parent *CipService) {
-}
+func (m *CipReadRequest) InitializeParent(parent *CipService) {}
 
 func NewCipReadRequest(requestPathSize int8, tag []byte, elementNb uint16) *CipService {
 	child := &CipReadRequest{
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go b/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go
index 1509e80..fbf7751 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go
@@ -50,8 +50,7 @@ func (m *CipReadResponse) Service() uint8 {
 	return 0xCC
 }
 
-func (m *CipReadResponse) InitializeParent(parent *CipService) {
-}
+func (m *CipReadResponse) InitializeParent(parent *CipService) {}
 
 func NewCipReadResponse(status uint8, extStatus uint8, dataType CIPDataTypeCode, data []byte) *CipService {
 	child := &CipReadResponse{
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go
index e6902c2..fbef659 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go
@@ -53,8 +53,7 @@ func (m *CipUnconnectedRequest) Service() uint8 {
 	return 0x52
 }
 
-func (m *CipUnconnectedRequest) InitializeParent(parent *CipService) {
-}
+func (m *CipUnconnectedRequest) InitializeParent(parent *CipService) {}
 
 func NewCipUnconnectedRequest(unconnectedService *CipService, backPlane int8, slot int8) *CipService {
 	child := &CipUnconnectedRequest{
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go
index 4a82e63..79d1d76 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go
@@ -50,8 +50,7 @@ func (m *CipWriteRequest) Service() uint8 {
 	return 0x4D
 }
 
-func (m *CipWriteRequest) InitializeParent(parent *CipService) {
-}
+func (m *CipWriteRequest) InitializeParent(parent *CipService) {}
 
 func NewCipWriteRequest(requestPathSize int8, tag []byte, dataType CIPDataTypeCode, elementNb uint16, data []byte) *CipService {
 	child := &CipWriteRequest{
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go
index f88c6c7..9251184 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go
@@ -48,8 +48,7 @@ func (m *CipWriteResponse) Service() uint8 {
 	return 0xCD
 }
 
-func (m *CipWriteResponse) InitializeParent(parent *CipService) {
-}
+func (m *CipWriteResponse) InitializeParent(parent *CipService) {}
 
 func NewCipWriteResponse(status uint8, extStatus uint8) *CipService {
 	child := &CipWriteResponse{
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go
index ca37ed2..d522249 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go
@@ -51,8 +51,7 @@ func (m *MultipleServiceRequest) Service() uint8 {
 	return 0x0A
 }
 
-func (m *MultipleServiceRequest) InitializeParent(parent *CipService) {
-}
+func (m *MultipleServiceRequest) InitializeParent(parent *CipService) {}
 
 func NewMultipleServiceRequest(data *Services) *CipService {
 	child := &MultipleServiceRequest{
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go
index ba0984a..257943a 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go
@@ -51,8 +51,7 @@ func (m *MultipleServiceResponse) Service() uint8 {
 	return 0x8A
 }
 
-func (m *MultipleServiceResponse) InitializeParent(parent *CipService) {
-}
+func (m *MultipleServiceResponse) InitializeParent(parent *CipService) {}
 
 func NewMultipleServiceResponse(status uint8, extStatus uint8, serviceNb uint16, offsets []uint16, servicesData []byte) *CipService {
 	child := &MultipleServiceResponse{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go
index 36b0895..4f6dc78 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go
@@ -47,8 +47,7 @@ func (m *FirmataCommandProtocolVersion) CommandCode() uint8 {
 	return 0x9
 }
 
-func (m *FirmataCommandProtocolVersion) InitializeParent(parent *FirmataCommand) {
-}
+func (m *FirmataCommandProtocolVersion) InitializeParent(parent *FirmataCommand) {}
 
 func NewFirmataCommandProtocolVersion(majorVersion uint8, minorVersion uint8) *FirmataCommand {
 	child := &FirmataCommandProtocolVersion{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go
index 36ee26a..9bd8a6c 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go
@@ -48,8 +48,7 @@ func (m *FirmataCommandSetDigitalPinValue) CommandCode() uint8 {
 	return 0x5
 }
 
-func (m *FirmataCommandSetDigitalPinValue) InitializeParent(parent *FirmataCommand) {
-}
+func (m *FirmataCommandSetDigitalPinValue) InitializeParent(parent *FirmataCommand) {}
 
 func NewFirmataCommandSetDigitalPinValue(pin uint8, on bool) *FirmataCommand {
 	child := &FirmataCommandSetDigitalPinValue{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go
index 2bfd429..22d5ee1 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go
@@ -47,8 +47,7 @@ func (m *FirmataCommandSetPinMode) CommandCode() uint8 {
 	return 0x4
 }
 
-func (m *FirmataCommandSetPinMode) InitializeParent(parent *FirmataCommand) {
-}
+func (m *FirmataCommandSetPinMode) InitializeParent(parent *FirmataCommand) {}
 
 func NewFirmataCommandSetPinMode(pin uint8, mode PinMode) *FirmataCommand {
 	child := &FirmataCommandSetPinMode{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go
index 270eec9..6c6aa03 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go
@@ -47,8 +47,7 @@ func (m *FirmataCommandSysex) CommandCode() uint8 {
 	return 0x0
 }
 
-func (m *FirmataCommandSysex) InitializeParent(parent *FirmataCommand) {
-}
+func (m *FirmataCommandSysex) InitializeParent(parent *FirmataCommand) {}
 
 func NewFirmataCommandSysex(command *SysexCommand) *FirmataCommand {
 	child := &FirmataCommandSysex{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go
index b00508f..e3da793 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go
@@ -44,8 +44,7 @@ func (m *FirmataCommandSystemReset) CommandCode() uint8 {
 	return 0xF
 }
 
-func (m *FirmataCommandSystemReset) InitializeParent(parent *FirmataCommand) {
-}
+func (m *FirmataCommandSystemReset) InitializeParent(parent *FirmataCommand) {}
 
 func NewFirmataCommandSystemReset() *FirmataCommand {
 	child := &FirmataCommandSystemReset{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go
index 2039cc5..e5088f8 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go
@@ -47,8 +47,7 @@ func (m *FirmataMessageAnalogIO) MessageType() uint8 {
 	return 0xE
 }
 
-func (m *FirmataMessageAnalogIO) InitializeParent(parent *FirmataMessage) {
-}
+func (m *FirmataMessageAnalogIO) InitializeParent(parent *FirmataMessage) {}
 
 func NewFirmataMessageAnalogIO(pin uint8, data []int8) *FirmataMessage {
 	child := &FirmataMessageAnalogIO{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go
index 3e41fb5..f23eb1a 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go
@@ -46,8 +46,7 @@ func (m *FirmataMessageCommand) MessageType() uint8 {
 	return 0xF
 }
 
-func (m *FirmataMessageCommand) InitializeParent(parent *FirmataMessage) {
-}
+func (m *FirmataMessageCommand) InitializeParent(parent *FirmataMessage) {}
 
 func NewFirmataMessageCommand(command *FirmataCommand) *FirmataMessage {
 	child := &FirmataMessageCommand{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go
index d953c2e..2136690 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go
@@ -47,8 +47,7 @@ func (m *FirmataMessageDigitalIO) MessageType() uint8 {
 	return 0x9
 }
 
-func (m *FirmataMessageDigitalIO) InitializeParent(parent *FirmataMessage) {
-}
+func (m *FirmataMessageDigitalIO) InitializeParent(parent *FirmataMessage) {}
 
 func NewFirmataMessageDigitalIO(pinBlock uint8, data []int8) *FirmataMessage {
 	child := &FirmataMessageDigitalIO{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go
index a5c7a4d..36f813d 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go
@@ -48,8 +48,7 @@ func (m *FirmataMessageSubscribeAnalogPinValue) MessageType() uint8 {
 	return 0xC
 }
 
-func (m *FirmataMessageSubscribeAnalogPinValue) InitializeParent(parent *FirmataMessage) {
-}
+func (m *FirmataMessageSubscribeAnalogPinValue) InitializeParent(parent *FirmataMessage) {}
 
 func NewFirmataMessageSubscribeAnalogPinValue(pin uint8, enable bool) *FirmataMessage {
 	child := &FirmataMessageSubscribeAnalogPinValue{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go
index 4ec30ca..139caa5 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go
@@ -48,8 +48,7 @@ func (m *FirmataMessageSubscribeDigitalPinValue) MessageType() uint8 {
 	return 0xD
 }
 
-func (m *FirmataMessageSubscribeDigitalPinValue) InitializeParent(parent *FirmataMessage) {
-}
+func (m *FirmataMessageSubscribeDigitalPinValue) InitializeParent(parent *FirmataMessage) {}
 
 func NewFirmataMessageSubscribeDigitalPinValue(pin uint8, enable bool) *FirmataMessage {
 	child := &FirmataMessageSubscribeDigitalPinValue{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go
index fd9846c..348edcd 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go
@@ -48,8 +48,7 @@ func (m *SysexCommandAnalogMappingQueryRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *SysexCommandAnalogMappingQueryRequest) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandAnalogMappingQueryRequest) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandAnalogMappingQueryRequest() *SysexCommand {
 	child := &SysexCommandAnalogMappingQueryRequest{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go
index da29ce0..98dc195 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go
@@ -50,8 +50,7 @@ func (m *SysexCommandAnalogMappingQueryResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *SysexCommandAnalogMappingQueryResponse) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandAnalogMappingQueryResponse) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandAnalogMappingQueryResponse(pin uint8) *SysexCommand {
 	child := &SysexCommandAnalogMappingQueryResponse{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go
index 4a1d3cb..abd81c7 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go
@@ -48,8 +48,7 @@ func (m *SysexCommandAnalogMappingResponse) Response() bool {
 	return false
 }
 
-func (m *SysexCommandAnalogMappingResponse) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandAnalogMappingResponse) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandAnalogMappingResponse() *SysexCommand {
 	child := &SysexCommandAnalogMappingResponse{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go
index 6dcd5e3..9e3f5b1 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go
@@ -48,8 +48,7 @@ func (m *SysexCommandCapabilityQuery) Response() bool {
 	return false
 }
 
-func (m *SysexCommandCapabilityQuery) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandCapabilityQuery) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandCapabilityQuery() *SysexCommand {
 	child := &SysexCommandCapabilityQuery{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go
index 2a18063..f915f08 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go
@@ -48,8 +48,7 @@ func (m *SysexCommandCapabilityResponse) Response() bool {
 	return false
 }
 
-func (m *SysexCommandCapabilityResponse) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandCapabilityResponse) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandCapabilityResponse() *SysexCommand {
 	child := &SysexCommandCapabilityResponse{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go
index c3d1d08..be66bca 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go
@@ -48,8 +48,7 @@ func (m *SysexCommandExtendedAnalog) Response() bool {
 	return false
 }
 
-func (m *SysexCommandExtendedAnalog) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandExtendedAnalog) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandExtendedAnalog() *SysexCommand {
 	child := &SysexCommandExtendedAnalog{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go
index 6ecb83d..1286946 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go
@@ -50,8 +50,7 @@ func (m *SysexCommandExtendedId) Response() bool {
 	return false
 }
 
-func (m *SysexCommandExtendedId) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandExtendedId) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandExtendedId(id []int8) *SysexCommand {
 	child := &SysexCommandExtendedId{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go
index e4f3c71..d87d0a8 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go
@@ -50,8 +50,7 @@ func (m *SysexCommandPinStateQuery) Response() bool {
 	return false
 }
 
-func (m *SysexCommandPinStateQuery) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandPinStateQuery) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandPinStateQuery(pin uint8) *SysexCommand {
 	child := &SysexCommandPinStateQuery{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go
index e0a5252..84a9d01 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go
@@ -52,8 +52,7 @@ func (m *SysexCommandPinStateResponse) Response() bool {
 	return false
 }
 
-func (m *SysexCommandPinStateResponse) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandPinStateResponse) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandPinStateResponse(pin uint8, pinMode uint8, pinState uint8) *SysexCommand {
 	child := &SysexCommandPinStateResponse{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go
index 7dd8d82..3892488 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go
@@ -48,8 +48,7 @@ func (m *SysexCommandReportFirmwareRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *SysexCommandReportFirmwareRequest) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandReportFirmwareRequest) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandReportFirmwareRequest() *SysexCommand {
 	child := &SysexCommandReportFirmwareRequest{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go
index babdac5..22ab5f5 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go
@@ -52,8 +52,7 @@ func (m *SysexCommandReportFirmwareResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *SysexCommandReportFirmwareResponse) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandReportFirmwareResponse) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandReportFirmwareResponse(majorVersion uint8, minorVersion uint8, fileName []byte) *SysexCommand {
 	child := &SysexCommandReportFirmwareResponse{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go
index 77ec565..ed7b6eb 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go
@@ -48,8 +48,7 @@ func (m *SysexCommandSamplingInterval) Response() bool {
 	return false
 }
 
-func (m *SysexCommandSamplingInterval) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandSamplingInterval) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandSamplingInterval() *SysexCommand {
 	child := &SysexCommandSamplingInterval{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go
index cb8eab6..8ab123e 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go
@@ -48,8 +48,7 @@ func (m *SysexCommandStringData) Response() bool {
 	return false
 }
 
-func (m *SysexCommandStringData) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandStringData) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandStringData() *SysexCommand {
 	child := &SysexCommandStringData{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go
index 4666a6a..23120ff 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go
@@ -48,8 +48,7 @@ func (m *SysexCommandSysexNonRealtime) Response() bool {
 	return false
 }
 
-func (m *SysexCommandSysexNonRealtime) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandSysexNonRealtime) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandSysexNonRealtime() *SysexCommand {
 	child := &SysexCommandSysexNonRealtime{
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go
index db7a078..f92d75d 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go
@@ -48,8 +48,7 @@ func (m *SysexCommandSysexRealtime) Response() bool {
 	return false
 }
 
-func (m *SysexCommandSysexRealtime) InitializeParent(parent *SysexCommand) {
-}
+func (m *SysexCommandSysexRealtime) InitializeParent(parent *SysexCommand) {}
 
 func NewSysexCommandSysexRealtime() *SysexCommand {
 	child := &SysexCommandSysexRealtime{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
index a515c0a..9714f9f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
@@ -44,8 +44,7 @@ func (m *ApduControlAck) ControlType() uint8 {
 	return 0x2
 }
 
-func (m *ApduControlAck) InitializeParent(parent *ApduControl) {
-}
+func (m *ApduControlAck) InitializeParent(parent *ApduControl) {}
 
 func NewApduControlAck() *ApduControl {
 	child := &ApduControlAck{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
index a0e5fdd..a4274d2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
@@ -44,8 +44,7 @@ func (m *ApduControlConnect) ControlType() uint8 {
 	return 0x0
 }
 
-func (m *ApduControlConnect) InitializeParent(parent *ApduControl) {
-}
+func (m *ApduControlConnect) InitializeParent(parent *ApduControl) {}
 
 func NewApduControlConnect() *ApduControl {
 	child := &ApduControlConnect{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
index 3ca1099..65b12ac 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
@@ -44,8 +44,7 @@ func (m *ApduControlDisconnect) ControlType() uint8 {
 	return 0x1
 }
 
-func (m *ApduControlDisconnect) InitializeParent(parent *ApduControl) {
-}
+func (m *ApduControlDisconnect) InitializeParent(parent *ApduControl) {}
 
 func NewApduControlDisconnect() *ApduControl {
 	child := &ApduControlDisconnect{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
index bfc5ccb..c37975c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
@@ -44,8 +44,7 @@ func (m *ApduControlNack) ControlType() uint8 {
 	return 0x3
 }
 
-func (m *ApduControlNack) InitializeParent(parent *ApduControl) {
-}
+func (m *ApduControlNack) InitializeParent(parent *ApduControl) {}
 
 func NewApduControlNack() *ApduControl {
 	child := &ApduControlNack{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
index 42c4b57..84b2171 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataAdcRead) ApciType() uint8 {
 	return 0x6
 }
 
-func (m *ApduDataAdcRead) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataAdcRead) InitializeParent(parent *ApduData) {}
 
 func NewApduDataAdcRead() *ApduData {
 	child := &ApduDataAdcRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
index d0cc136..7947a01 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataAdcResponse) ApciType() uint8 {
 	return 0x7
 }
 
-func (m *ApduDataAdcResponse) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataAdcResponse) InitializeParent(parent *ApduData) {}
 
 func NewApduDataAdcResponse() *ApduData {
 	child := &ApduDataAdcResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
index bad574e..13d201c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
@@ -46,8 +46,7 @@ func (m *ApduDataDeviceDescriptorRead) ApciType() uint8 {
 	return 0xC
 }
 
-func (m *ApduDataDeviceDescriptorRead) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataDeviceDescriptorRead) InitializeParent(parent *ApduData) {}
 
 func NewApduDataDeviceDescriptorRead(descriptorType uint8) *ApduData {
 	child := &ApduDataDeviceDescriptorRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
index 5728fe6..51e9e56 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
@@ -47,8 +47,7 @@ func (m *ApduDataDeviceDescriptorResponse) ApciType() uint8 {
 	return 0xD
 }
 
-func (m *ApduDataDeviceDescriptorResponse) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataDeviceDescriptorResponse) InitializeParent(parent *ApduData) {}
 
 func NewApduDataDeviceDescriptorResponse(descriptorType uint8, data []byte) *ApduData {
 	child := &ApduDataDeviceDescriptorResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
index 8dea0a2..25bfd6a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
@@ -47,8 +47,7 @@ func (m *ApduDataExtAuthorizeRequest) ExtApciType() uint8 {
 	return 0x11
 }
 
-func (m *ApduDataExtAuthorizeRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtAuthorizeRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtAuthorizeRequest(level uint8, data []byte) *ApduDataExt {
 	child := &ApduDataExtAuthorizeRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
index e8ce319..dd5843d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
@@ -46,8 +46,7 @@ func (m *ApduDataExtAuthorizeResponse) ExtApciType() uint8 {
 	return 0x12
 }
 
-func (m *ApduDataExtAuthorizeResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtAuthorizeResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtAuthorizeResponse(level uint8) *ApduDataExt {
 	child := &ApduDataExtAuthorizeResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
index 3637557..977c6a5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtDomainAddressRead) ExtApciType() uint8 {
 	return 0x21
 }
 
-func (m *ApduDataExtDomainAddressRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtDomainAddressRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtDomainAddressRead() *ApduDataExt {
 	child := &ApduDataExtDomainAddressRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
index bec0625..80c769e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtDomainAddressResponse) ExtApciType() uint8 {
 	return 0x22
 }
 
-func (m *ApduDataExtDomainAddressResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtDomainAddressResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtDomainAddressResponse() *ApduDataExt {
 	child := &ApduDataExtDomainAddressResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
index dd0967a..3e7151e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtDomainAddressSelectiveRead) ExtApciType() uint8 {
 	return 0x23
 }
 
-func (m *ApduDataExtDomainAddressSelectiveRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtDomainAddressSelectiveRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtDomainAddressSelectiveRead() *ApduDataExt {
 	child := &ApduDataExtDomainAddressSelectiveRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
index 3c94b67..08a9609 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtDomainAddressSerialNumberRead) ExtApciType() uint8 {
 	return 0x2C
 }
 
-func (m *ApduDataExtDomainAddressSerialNumberRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtDomainAddressSerialNumberRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtDomainAddressSerialNumberRead() *ApduDataExt {
 	child := &ApduDataExtDomainAddressSerialNumberRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
index add4fe5..52aefde 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtDomainAddressSerialNumberResponse) ExtApciType() uint8 {
 	return 0x2D
 }
 
-func (m *ApduDataExtDomainAddressSerialNumberResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtDomainAddressSerialNumberResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtDomainAddressSerialNumberResponse() *ApduDataExt {
 	child := &ApduDataExtDomainAddressSerialNumberResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
index a8352cd..6c2a5e1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtDomainAddressSerialNumberWrite) ExtApciType() uint8 {
 	return 0x2E
 }
 
-func (m *ApduDataExtDomainAddressSerialNumberWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtDomainAddressSerialNumberWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtDomainAddressSerialNumberWrite() *ApduDataExt {
 	child := &ApduDataExtDomainAddressSerialNumberWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
index 0c91f9e..1d86eb8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtDomainAddressWrite) ExtApciType() uint8 {
 	return 0x20
 }
 
-func (m *ApduDataExtDomainAddressWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtDomainAddressWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtDomainAddressWrite() *ApduDataExt {
 	child := &ApduDataExtDomainAddressWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
index 1abdd2a..e801ea3 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtFileStreamInfoReport) ExtApciType() uint8 {
 	return 0x30
 }
 
-func (m *ApduDataExtFileStreamInfoReport) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtFileStreamInfoReport) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtFileStreamInfoReport() *ApduDataExt {
 	child := &ApduDataExtFileStreamInfoReport{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
index 5f59bef..98237a9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtGroupPropertyValueInfoReport) ExtApciType() uint8 {
 	return 0x2B
 }
 
-func (m *ApduDataExtGroupPropertyValueInfoReport) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtGroupPropertyValueInfoReport) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtGroupPropertyValueInfoReport() *ApduDataExt {
 	child := &ApduDataExtGroupPropertyValueInfoReport{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
index b5e969d..039f73c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtGroupPropertyValueRead) ExtApciType() uint8 {
 	return 0x28
 }
 
-func (m *ApduDataExtGroupPropertyValueRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtGroupPropertyValueRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtGroupPropertyValueRead() *ApduDataExt {
 	child := &ApduDataExtGroupPropertyValueRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
index eeca0d7..aabbb4d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtGroupPropertyValueResponse) ExtApciType() uint8 {
 	return 0x29
 }
 
-func (m *ApduDataExtGroupPropertyValueResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtGroupPropertyValueResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtGroupPropertyValueResponse() *ApduDataExt {
 	child := &ApduDataExtGroupPropertyValueResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
index 0797548..f3f56d8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtGroupPropertyValueWrite) ExtApciType() uint8 {
 	return 0x2A
 }
 
-func (m *ApduDataExtGroupPropertyValueWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtGroupPropertyValueWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtGroupPropertyValueWrite() *ApduDataExt {
 	child := &ApduDataExtGroupPropertyValueWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
index e425842..75b227a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtIndividualAddressSerialNumberRead) ExtApciType() uint8 {
 	return 0x1C
 }
 
-func (m *ApduDataExtIndividualAddressSerialNumberRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtIndividualAddressSerialNumberRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtIndividualAddressSerialNumberRead() *ApduDataExt {
 	child := &ApduDataExtIndividualAddressSerialNumberRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
index 2e07f1c..ff90fb5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtIndividualAddressSerialNumberResponse) ExtApciType() uint8 {
 	return 0x1D
 }
 
-func (m *ApduDataExtIndividualAddressSerialNumberResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtIndividualAddressSerialNumberResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtIndividualAddressSerialNumberResponse() *ApduDataExt {
 	child := &ApduDataExtIndividualAddressSerialNumberResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
index bde23ee..c35bc95 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtIndividualAddressSerialNumberWrite) ExtApciType() uint8 {
 	return 0x1E
 }
 
-func (m *ApduDataExtIndividualAddressSerialNumberWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtIndividualAddressSerialNumberWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtIndividualAddressSerialNumberWrite() *ApduDataExt {
 	child := &ApduDataExtIndividualAddressSerialNumberWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
index 08b9af9..b3e4837 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtKeyResponse) ExtApciType() uint8 {
 	return 0x14
 }
 
-func (m *ApduDataExtKeyResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtKeyResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtKeyResponse() *ApduDataExt {
 	child := &ApduDataExtKeyResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
index 1c520bb..44e0abd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtKeyWrite) ExtApciType() uint8 {
 	return 0x13
 }
 
-func (m *ApduDataExtKeyWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtKeyWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtKeyWrite() *ApduDataExt {
 	child := &ApduDataExtKeyWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
index 53c2cbd..58318f2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtLinkRead) ExtApciType() uint8 {
 	return 0x25
 }
 
-func (m *ApduDataExtLinkRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtLinkRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtLinkRead() *ApduDataExt {
 	child := &ApduDataExtLinkRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
index 6b2049b..e6a02b8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtLinkResponse) ExtApciType() uint8 {
 	return 0x26
 }
 
-func (m *ApduDataExtLinkResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtLinkResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtLinkResponse() *ApduDataExt {
 	child := &ApduDataExtLinkResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
index 59a27be..fd90a1c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtLinkWrite) ExtApciType() uint8 {
 	return 0x27
 }
 
-func (m *ApduDataExtLinkWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtLinkWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtLinkWrite() *ApduDataExt {
 	child := &ApduDataExtLinkWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
index 01796cc..2c49f35 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtMemoryBitWrite) ExtApciType() uint8 {
 	return 0x10
 }
 
-func (m *ApduDataExtMemoryBitWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtMemoryBitWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtMemoryBitWrite() *ApduDataExt {
 	child := &ApduDataExtMemoryBitWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
index 4ec390a..a9378f8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtNetworkParameterRead) ExtApciType() uint8 {
 	return 0x1A
 }
 
-func (m *ApduDataExtNetworkParameterRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtNetworkParameterRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtNetworkParameterRead() *ApduDataExt {
 	child := &ApduDataExtNetworkParameterRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
index dd932c8..2c6272e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtNetworkParameterResponse) ExtApciType() uint8 {
 	return 0x1B
 }
 
-func (m *ApduDataExtNetworkParameterResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtNetworkParameterResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtNetworkParameterResponse() *ApduDataExt {
 	child := &ApduDataExtNetworkParameterResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
index bf8137e..7b4bfe7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtNetworkParameterWrite) ExtApciType() uint8 {
 	return 0x24
 }
 
-func (m *ApduDataExtNetworkParameterWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtNetworkParameterWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtNetworkParameterWrite() *ApduDataExt {
 	child := &ApduDataExtNetworkParameterWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
index b9645cf..c0c86db 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtOpenRoutingTableRequest) ExtApciType() uint8 {
 	return 0x00
 }
 
-func (m *ApduDataExtOpenRoutingTableRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtOpenRoutingTableRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtOpenRoutingTableRequest() *ApduDataExt {
 	child := &ApduDataExtOpenRoutingTableRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
index c56d2e2..a04e5d7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
@@ -48,8 +48,7 @@ func (m *ApduDataExtPropertyDescriptionRead) ExtApciType() uint8 {
 	return 0x18
 }
 
-func (m *ApduDataExtPropertyDescriptionRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtPropertyDescriptionRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtPropertyDescriptionRead(objectIndex uint8, propertyId uint8, index uint8) *ApduDataExt {
 	child := &ApduDataExtPropertyDescriptionRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
index 084881a..a2965a5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
@@ -54,8 +54,7 @@ func (m *ApduDataExtPropertyDescriptionResponse) ExtApciType() uint8 {
 	return 0x19
 }
 
-func (m *ApduDataExtPropertyDescriptionResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtPropertyDescriptionResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtPropertyDescriptionResponse(objectIndex uint8, propertyId uint8, index uint8, writeEnabled bool, propertyDataType KnxPropertyDataType, maxNrOfElements uint16, readLevel AccessLevel, writeLevel AccessLevel) *ApduDataExt {
 	child := &ApduDataExtPropertyDescriptionResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
index 136f412..e3fea2d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
@@ -49,8 +49,7 @@ func (m *ApduDataExtPropertyValueRead) ExtApciType() uint8 {
 	return 0x15
 }
 
-func (m *ApduDataExtPropertyValueRead) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtPropertyValueRead) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtPropertyValueRead(objectIndex uint8, propertyId uint8, count uint8, index uint16) *ApduDataExt {
 	child := &ApduDataExtPropertyValueRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
index c6a5a5f..3cddc9b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
@@ -50,8 +50,7 @@ func (m *ApduDataExtPropertyValueResponse) ExtApciType() uint8 {
 	return 0x16
 }
 
-func (m *ApduDataExtPropertyValueResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtPropertyValueResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtPropertyValueResponse(objectIndex uint8, propertyId uint8, count uint8, index uint16, data []byte) *ApduDataExt {
 	child := &ApduDataExtPropertyValueResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
index 2d48a72..1d42e8d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
@@ -50,8 +50,7 @@ func (m *ApduDataExtPropertyValueWrite) ExtApciType() uint8 {
 	return 0x17
 }
 
-func (m *ApduDataExtPropertyValueWrite) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtPropertyValueWrite) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtPropertyValueWrite(objectIndex uint8, propertyId uint8, count uint8, index uint16, data []byte) *ApduDataExt {
 	child := &ApduDataExtPropertyValueWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
index bde5d10..fc98876 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtReadRouterMemoryRequest) ExtApciType() uint8 {
 	return 0x08
 }
 
-func (m *ApduDataExtReadRouterMemoryRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtReadRouterMemoryRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtReadRouterMemoryRequest() *ApduDataExt {
 	child := &ApduDataExtReadRouterMemoryRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
index 7f11554..b8e708e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtReadRouterMemoryResponse) ExtApciType() uint8 {
 	return 0x09
 }
 
-func (m *ApduDataExtReadRouterMemoryResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtReadRouterMemoryResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtReadRouterMemoryResponse() *ApduDataExt {
 	child := &ApduDataExtReadRouterMemoryResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
index 77cd8fb..439f793 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtReadRouterStatusRequest) ExtApciType() uint8 {
 	return 0x0D
 }
 
-func (m *ApduDataExtReadRouterStatusRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtReadRouterStatusRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtReadRouterStatusRequest() *ApduDataExt {
 	child := &ApduDataExtReadRouterStatusRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
index 667b995..efd523e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtReadRouterStatusResponse) ExtApciType() uint8 {
 	return 0x0E
 }
 
-func (m *ApduDataExtReadRouterStatusResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtReadRouterStatusResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtReadRouterStatusResponse() *ApduDataExt {
 	child := &ApduDataExtReadRouterStatusResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
index 47cd4a7..bab6583 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtReadRoutingTableRequest) ExtApciType() uint8 {
 	return 0x01
 }
 
-func (m *ApduDataExtReadRoutingTableRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtReadRoutingTableRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtReadRoutingTableRequest() *ApduDataExt {
 	child := &ApduDataExtReadRoutingTableRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
index 2449757..99e3124 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtReadRoutingTableResponse) ExtApciType() uint8 {
 	return 0x02
 }
 
-func (m *ApduDataExtReadRoutingTableResponse) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtReadRoutingTableResponse) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtReadRoutingTableResponse() *ApduDataExt {
 	child := &ApduDataExtReadRoutingTableResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
index 8157b34..49a3ae0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtWriteRouterMemoryRequest) ExtApciType() uint8 {
 	return 0x0A
 }
 
-func (m *ApduDataExtWriteRouterMemoryRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtWriteRouterMemoryRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtWriteRouterMemoryRequest() *ApduDataExt {
 	child := &ApduDataExtWriteRouterMemoryRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
index 1391042..f27e561 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtWriteRouterStatusRequest) ExtApciType() uint8 {
 	return 0x0F
 }
 
-func (m *ApduDataExtWriteRouterStatusRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtWriteRouterStatusRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtWriteRouterStatusRequest() *ApduDataExt {
 	child := &ApduDataExtWriteRouterStatusRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
index 272bdec..00beaa5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
@@ -44,8 +44,7 @@ func (m *ApduDataExtWriteRoutingTableRequest) ExtApciType() uint8 {
 	return 0x03
 }
 
-func (m *ApduDataExtWriteRoutingTableRequest) InitializeParent(parent *ApduDataExt) {
-}
+func (m *ApduDataExtWriteRoutingTableRequest) InitializeParent(parent *ApduDataExt) {}
 
 func NewApduDataExtWriteRoutingTableRequest() *ApduDataExt {
 	child := &ApduDataExtWriteRoutingTableRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
index d3371b2..be969c8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
@@ -46,8 +46,7 @@ func (m *ApduDataGroupValueRead) ApciType() uint8 {
 	return 0x0
 }
 
-func (m *ApduDataGroupValueRead) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataGroupValueRead) InitializeParent(parent *ApduData) {}
 
 func NewApduDataGroupValueRead() *ApduData {
 	child := &ApduDataGroupValueRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
index 1daf41b..357117a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
@@ -47,8 +47,7 @@ func (m *ApduDataGroupValueResponse) ApciType() uint8 {
 	return 0x1
 }
 
-func (m *ApduDataGroupValueResponse) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataGroupValueResponse) InitializeParent(parent *ApduData) {}
 
 func NewApduDataGroupValueResponse(dataFirstByte int8, data []byte) *ApduData {
 	child := &ApduDataGroupValueResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
index 824157f..2ff5120 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
@@ -47,8 +47,7 @@ func (m *ApduDataGroupValueWrite) ApciType() uint8 {
 	return 0x2
 }
 
-func (m *ApduDataGroupValueWrite) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataGroupValueWrite) InitializeParent(parent *ApduData) {}
 
 func NewApduDataGroupValueWrite(dataFirstByte int8, data []byte) *ApduData {
 	child := &ApduDataGroupValueWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
index 7f290fd..3a804ca 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
@@ -44,8 +44,7 @@ func (m *ApduDataIndividualAddressRead) ApciType() uint8 {
 	return 0x4
 }
 
-func (m *ApduDataIndividualAddressRead) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataIndividualAddressRead) InitializeParent(parent *ApduData) {}
 
 func NewApduDataIndividualAddressRead() *ApduData {
 	child := &ApduDataIndividualAddressRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
index 7b3ce09..71cc3bc 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
@@ -44,8 +44,7 @@ func (m *ApduDataIndividualAddressResponse) ApciType() uint8 {
 	return 0x5
 }
 
-func (m *ApduDataIndividualAddressResponse) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataIndividualAddressResponse) InitializeParent(parent *ApduData) {}
 
 func NewApduDataIndividualAddressResponse() *ApduData {
 	child := &ApduDataIndividualAddressResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
index 86e7446..04d4b46 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataIndividualAddressWrite) ApciType() uint8 {
 	return 0x3
 }
 
-func (m *ApduDataIndividualAddressWrite) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataIndividualAddressWrite) InitializeParent(parent *ApduData) {}
 
 func NewApduDataIndividualAddressWrite() *ApduData {
 	child := &ApduDataIndividualAddressWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
index f3a0789..5ab2e59 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
@@ -47,8 +47,7 @@ func (m *ApduDataMemoryRead) ApciType() uint8 {
 	return 0x8
 }
 
-func (m *ApduDataMemoryRead) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataMemoryRead) InitializeParent(parent *ApduData) {}
 
 func NewApduDataMemoryRead(numBytes uint8, address uint16) *ApduData {
 	child := &ApduDataMemoryRead{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
index ccb0d8d..eca808e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
@@ -47,8 +47,7 @@ func (m *ApduDataMemoryResponse) ApciType() uint8 {
 	return 0x9
 }
 
-func (m *ApduDataMemoryResponse) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataMemoryResponse) InitializeParent(parent *ApduData) {}
 
 func NewApduDataMemoryResponse(address uint16, data []byte) *ApduData {
 	child := &ApduDataMemoryResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
index 0582f67..d552bce 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
@@ -44,8 +44,7 @@ func (m *ApduDataMemoryWrite) ApciType() uint8 {
 	return 0xA
 }
 
-func (m *ApduDataMemoryWrite) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataMemoryWrite) InitializeParent(parent *ApduData) {}
 
 func NewApduDataMemoryWrite() *ApduData {
 	child := &ApduDataMemoryWrite{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
index e5a7534..544e897 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
@@ -46,8 +46,7 @@ func (m *ApduDataOther) ApciType() uint8 {
 	return 0xF
 }
 
-func (m *ApduDataOther) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataOther) InitializeParent(parent *ApduData) {}
 
 func NewApduDataOther(extendedApdu *ApduDataExt) *ApduData {
 	child := &ApduDataOther{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
index 5cb3c53..2d943ea 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
@@ -44,8 +44,7 @@ func (m *ApduDataRestart) ApciType() uint8 {
 	return 0xE
 }
 
-func (m *ApduDataRestart) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataRestart) InitializeParent(parent *ApduData) {}
 
 func NewApduDataRestart() *ApduData {
 	child := &ApduDataRestart{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
index 3c93e6f..cdea12b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
@@ -44,8 +44,7 @@ func (m *ApduDataUserMessage) ApciType() uint8 {
 	return 0xB
 }
 
-func (m *ApduDataUserMessage) InitializeParent(parent *ApduData) {
-}
+func (m *ApduDataUserMessage) InitializeParent(parent *ApduData) {}
 
 func NewApduDataUserMessage() *ApduData {
 	child := &ApduDataUserMessage{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
index e0985cd..eb7aeb2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
@@ -48,8 +48,7 @@ func (m *ComObjectTableRealisationType1) FirmwareType() FirmwareType {
 	return FirmwareType_SYSTEM_1
 }
 
-func (m *ComObjectTableRealisationType1) InitializeParent(parent *ComObjectTable) {
-}
+func (m *ComObjectTableRealisationType1) InitializeParent(parent *ComObjectTable) {}
 
 func NewComObjectTableRealisationType1(numEntries uint8, ramFlagsTablePointer uint8, comObjectDescriptors []*GroupObjectDescriptorRealisationType1) *ComObjectTable {
 	child := &ComObjectTableRealisationType1{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
index d058e01..7a0b136 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
@@ -48,8 +48,7 @@ func (m *ComObjectTableRealisationType2) FirmwareType() FirmwareType {
 	return FirmwareType_SYSTEM_2
 }
 
-func (m *ComObjectTableRealisationType2) InitializeParent(parent *ComObjectTable) {
-}
+func (m *ComObjectTableRealisationType2) InitializeParent(parent *ComObjectTable) {}
 
 func NewComObjectTableRealisationType2(numEntries uint8, ramFlagsTablePointer uint8, comObjectDescriptors []*GroupObjectDescriptorRealisationType2) *ComObjectTable {
 	child := &ComObjectTableRealisationType2{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
index 4b6ed8b..1e6e894 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
@@ -46,8 +46,7 @@ func (m *ComObjectTableRealisationType6) FirmwareType() FirmwareType {
 	return FirmwareType_SYSTEM_300
 }
 
-func (m *ComObjectTableRealisationType6) InitializeParent(parent *ComObjectTable) {
-}
+func (m *ComObjectTableRealisationType6) InitializeParent(parent *ComObjectTable) {}
 
 func NewComObjectTableRealisationType6(comObjectDescriptors *GroupObjectDescriptorRealisationType6) *ComObjectTable {
 	child := &ComObjectTableRealisationType6{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
index a8dc392..81ae2b9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
@@ -48,8 +48,7 @@ func (m *ConnectionRequest) MsgType() uint16 {
 	return 0x0205
 }
 
-func (m *ConnectionRequest) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *ConnectionRequest) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewConnectionRequest(hpaiDiscoveryEndpoint *HPAIDiscoveryEndpoint, hpaiDataEndpoint *HPAIDataEndpoint, connectionRequestInformation *ConnectionRequestInformation) *KnxNetIpMessage {
 	child := &ConnectionRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
index e25cca3..b1ca072 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
@@ -49,8 +49,7 @@ func (m *ConnectionResponse) MsgType() uint16 {
 	return 0x0206
 }
 
-func (m *ConnectionResponse) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *ConnectionResponse) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewConnectionResponse(communicationChannelId uint8, status Status, hpaiDataEndpoint *HPAIDataEndpoint, connectionResponseDataBlock *ConnectionResponseDataBlock) *KnxNetIpMessage {
 	child := &ConnectionResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
index 68ff656..b892862 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
@@ -48,8 +48,7 @@ func (m *ConnectionStateRequest) MsgType() uint16 {
 	return 0x0207
 }
 
-func (m *ConnectionStateRequest) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *ConnectionStateRequest) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewConnectionStateRequest(communicationChannelId uint8, hpaiControlEndpoint *HPAIControlEndpoint) *KnxNetIpMessage {
 	child := &ConnectionStateRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
index 91982b5..056cad2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
@@ -47,8 +47,7 @@ func (m *ConnectionStateResponse) MsgType() uint16 {
 	return 0x0208
 }
 
-func (m *ConnectionStateResponse) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *ConnectionStateResponse) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewConnectionStateResponse(communicationChannelId uint8, status Status) *KnxNetIpMessage {
 	child := &ConnectionStateResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
index aa0b1d6..a7a54b1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
@@ -46,8 +46,7 @@ func (m *DescriptionRequest) MsgType() uint16 {
 	return 0x0203
 }
 
-func (m *DescriptionRequest) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *DescriptionRequest) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewDescriptionRequest(hpaiControlEndpoint *HPAIControlEndpoint) *KnxNetIpMessage {
 	child := &DescriptionRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
index 387734d..8138607 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
@@ -47,8 +47,7 @@ func (m *DescriptionResponse) MsgType() uint16 {
 	return 0x0204
 }
 
-func (m *DescriptionResponse) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *DescriptionResponse) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewDescriptionResponse(dibDeviceInfo *DIBDeviceInfo, dibSuppSvcFamilies *DIBSuppSvcFamilies) *KnxNetIpMessage {
 	child := &DescriptionResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
index 76ce9e9..50e52a7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
@@ -46,8 +46,7 @@ func (m *DeviceConfigurationAck) MsgType() uint16 {
 	return 0x0311
 }
 
-func (m *DeviceConfigurationAck) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *DeviceConfigurationAck) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewDeviceConfigurationAck(deviceConfigurationAckDataBlock *DeviceConfigurationAckDataBlock) *KnxNetIpMessage {
 	child := &DeviceConfigurationAck{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
index a93e5c0..de075ce 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
@@ -47,8 +47,7 @@ func (m *DeviceConfigurationRequest) MsgType() uint16 {
 	return 0x0310
 }
 
-func (m *DeviceConfigurationRequest) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *DeviceConfigurationRequest) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewDeviceConfigurationRequest(deviceConfigurationRequestDataBlock *DeviceConfigurationRequestDataBlock, cemi *CEMI) *KnxNetIpMessage {
 	child := &DeviceConfigurationRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
index 44a7d45..2637651 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
@@ -48,8 +48,7 @@ func (m *DisconnectRequest) MsgType() uint16 {
 	return 0x0209
 }
 
-func (m *DisconnectRequest) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *DisconnectRequest) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewDisconnectRequest(communicationChannelId uint8, hpaiControlEndpoint *HPAIControlEndpoint) *KnxNetIpMessage {
 	child := &DisconnectRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
index 780f9dc..9e544cd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
@@ -47,8 +47,7 @@ func (m *DisconnectResponse) MsgType() uint16 {
 	return 0x020A
 }
 
-func (m *DisconnectResponse) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *DisconnectResponse) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewDisconnectResponse(communicationChannelId uint8, status Status) *KnxNetIpMessage {
 	child := &DisconnectResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
index abb97e1..146918b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
@@ -47,8 +47,7 @@ func (m *KnxGroupAddress2Level) NumLevels() uint8 {
 	return uint8(2)
 }
 
-func (m *KnxGroupAddress2Level) InitializeParent(parent *KnxGroupAddress) {
-}
+func (m *KnxGroupAddress2Level) InitializeParent(parent *KnxGroupAddress) {}
 
 func NewKnxGroupAddress2Level(mainGroup uint8, subGroup uint16) *KnxGroupAddress {
 	child := &KnxGroupAddress2Level{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
index 992b12d..fb5aea5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
@@ -48,8 +48,7 @@ func (m *KnxGroupAddress3Level) NumLevels() uint8 {
 	return uint8(3)
 }
 
-func (m *KnxGroupAddress3Level) InitializeParent(parent *KnxGroupAddress) {
-}
+func (m *KnxGroupAddress3Level) InitializeParent(parent *KnxGroupAddress) {}
 
 func NewKnxGroupAddress3Level(mainGroup uint8, middleGroup uint8, subGroup uint8) *KnxGroupAddress {
 	child := &KnxGroupAddress3Level{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
index f5f49b0..30a55c8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
@@ -46,8 +46,7 @@ func (m *KnxGroupAddressFreeLevel) NumLevels() uint8 {
 	return uint8(1)
 }
 
-func (m *KnxGroupAddressFreeLevel) InitializeParent(parent *KnxGroupAddress) {
-}
+func (m *KnxGroupAddressFreeLevel) InitializeParent(parent *KnxGroupAddress) {}
 
 func NewKnxGroupAddressFreeLevel(subGroup uint16) *KnxGroupAddress {
 	child := &KnxGroupAddressFreeLevel{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
index dd1c01b..f8d6807 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
@@ -46,8 +46,7 @@ func (m *KnxNetIpCore) ServiceType() uint8 {
 	return 0x02
 }
 
-func (m *KnxNetIpCore) InitializeParent(parent *ServiceId) {
-}
+func (m *KnxNetIpCore) InitializeParent(parent *ServiceId) {}
 
 func NewKnxNetIpCore(version uint8) *ServiceId {
 	child := &KnxNetIpCore{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
index d9ae053..1f5b3f3 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
@@ -46,8 +46,7 @@ func (m *KnxNetIpDeviceManagement) ServiceType() uint8 {
 	return 0x03
 }
 
-func (m *KnxNetIpDeviceManagement) InitializeParent(parent *ServiceId) {
-}
+func (m *KnxNetIpDeviceManagement) InitializeParent(parent *ServiceId) {}
 
 func NewKnxNetIpDeviceManagement(version uint8) *ServiceId {
 	child := &KnxNetIpDeviceManagement{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
index d576202..354dba2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
@@ -46,8 +46,7 @@ func (m *KnxNetIpRouting) ServiceType() uint8 {
 	return 0x05
 }
 
-func (m *KnxNetIpRouting) InitializeParent(parent *ServiceId) {
-}
+func (m *KnxNetIpRouting) InitializeParent(parent *ServiceId) {}
 
 func NewKnxNetIpRouting(version uint8) *ServiceId {
 	child := &KnxNetIpRouting{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
index 934391a..f10c9a3 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
@@ -46,8 +46,7 @@ func (m *KnxNetIpTunneling) ServiceType() uint8 {
 	return 0x04
 }
 
-func (m *KnxNetIpTunneling) InitializeParent(parent *ServiceId) {
-}
+func (m *KnxNetIpTunneling) InitializeParent(parent *ServiceId) {}
 
 func NewKnxNetIpTunneling(version uint8) *ServiceId {
 	child := &KnxNetIpTunneling{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
index 49d7a33..8d34b60 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
@@ -46,8 +46,7 @@ func (m *KnxNetObjectServer) ServiceType() uint8 {
 	return 0x08
 }
 
-func (m *KnxNetObjectServer) InitializeParent(parent *ServiceId) {
-}
+func (m *KnxNetObjectServer) InitializeParent(parent *ServiceId) {}
 
 func NewKnxNetObjectServer(version uint8) *ServiceId {
 	child := &KnxNetObjectServer{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
index f046e94..0576c76 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
@@ -46,8 +46,7 @@ func (m *KnxNetRemoteConfigurationAndDiagnosis) ServiceType() uint8 {
 	return 0x07
 }
 
-func (m *KnxNetRemoteConfigurationAndDiagnosis) InitializeParent(parent *ServiceId) {
-}
+func (m *KnxNetRemoteConfigurationAndDiagnosis) InitializeParent(parent *ServiceId) {}
 
 func NewKnxNetRemoteConfigurationAndDiagnosis(version uint8) *ServiceId {
 	child := &KnxNetRemoteConfigurationAndDiagnosis{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
index cb5368c..2811ead 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
@@ -46,8 +46,7 @@ func (m *KnxNetRemoteLogging) ServiceType() uint8 {
 	return 0x06
 }
 
-func (m *KnxNetRemoteLogging) InitializeParent(parent *ServiceId) {
-}
+func (m *KnxNetRemoteLogging) InitializeParent(parent *ServiceId) {}
 
 func NewKnxNetRemoteLogging(version uint8) *ServiceId {
 	child := &KnxNetRemoteLogging{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
index 271742e..e6069e4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
@@ -49,8 +49,7 @@ func (m *LBusmonInd) MessageCode() uint8 {
 	return 0x2B
 }
 
-func (m *LBusmonInd) InitializeParent(parent *CEMI) {
-}
+func (m *LBusmonInd) InitializeParent(parent *CEMI) {}
 
 func NewLBusmonInd(additionalInformationLength uint8, additionalInformation []*CEMIAdditionalInformation, dataFrame *LDataFrame, crc *uint8) *CEMI {
 	child := &LBusmonInd{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
index c5dbfaa..6311199 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
@@ -48,8 +48,7 @@ func (m *LDataCon) MessageCode() uint8 {
 	return 0x2E
 }
 
-func (m *LDataCon) InitializeParent(parent *CEMI) {
-}
+func (m *LDataCon) InitializeParent(parent *CEMI) {}
 
 func NewLDataCon(additionalInformationLength uint8, additionalInformation []*CEMIAdditionalInformation, dataFrame *LDataFrame) *CEMI {
 	child := &LDataCon{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
index 3a72a80..2e51335 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
@@ -48,8 +48,7 @@ func (m *LDataInd) MessageCode() uint8 {
 	return 0x29
 }
 
-func (m *LDataInd) InitializeParent(parent *CEMI) {
-}
+func (m *LDataInd) InitializeParent(parent *CEMI) {}
 
 func NewLDataInd(additionalInformationLength uint8, additionalInformation []*CEMIAdditionalInformation, dataFrame *LDataFrame) *CEMI {
 	child := &LDataInd{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
index 27b37e3..f429db6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
@@ -48,8 +48,7 @@ func (m *LDataReq) MessageCode() uint8 {
 	return 0x11
 }
 
-func (m *LDataReq) InitializeParent(parent *CEMI) {
-}
+func (m *LDataReq) InitializeParent(parent *CEMI) {}
 
 func NewLDataReq(additionalInformationLength uint8, additionalInformation []*CEMIAdditionalInformation, dataFrame *LDataFrame) *CEMI {
 	child := &LDataReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
index 2d100de..8715cb1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
@@ -44,8 +44,7 @@ func (m *LPollDataCon) MessageCode() uint8 {
 	return 0x25
 }
 
-func (m *LPollDataCon) InitializeParent(parent *CEMI) {
-}
+func (m *LPollDataCon) InitializeParent(parent *CEMI) {}
 
 func NewLPollDataCon() *CEMI {
 	child := &LPollDataCon{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
index 719acee..0c8bb7a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
@@ -44,8 +44,7 @@ func (m *LPollDataReq) MessageCode() uint8 {
 	return 0x13
 }
 
-func (m *LPollDataReq) InitializeParent(parent *CEMI) {
-}
+func (m *LPollDataReq) InitializeParent(parent *CEMI) {}
 
 func NewLPollDataReq() *CEMI {
 	child := &LPollDataReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
index 1c051fa..db3c35c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
@@ -44,8 +44,7 @@ func (m *LRawCon) MessageCode() uint8 {
 	return 0x2F
 }
 
-func (m *LRawCon) InitializeParent(parent *CEMI) {
-}
+func (m *LRawCon) InitializeParent(parent *CEMI) {}
 
 func NewLRawCon() *CEMI {
 	child := &LRawCon{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
index b807a78..0b513ec 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
@@ -44,8 +44,7 @@ func (m *LRawInd) MessageCode() uint8 {
 	return 0x2D
 }
 
-func (m *LRawInd) InitializeParent(parent *CEMI) {
-}
+func (m *LRawInd) InitializeParent(parent *CEMI) {}
 
 func NewLRawInd() *CEMI {
 	child := &LRawInd{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
index 4131ab0..b1cd318 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
@@ -44,8 +44,7 @@ func (m *LRawReq) MessageCode() uint8 {
 	return 0x10
 }
 
-func (m *LRawReq) InitializeParent(parent *CEMI) {
-}
+func (m *LRawReq) InitializeParent(parent *CEMI) {}
 
 func NewLRawReq() *CEMI {
 	child := &LRawReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
index 3a6bace..b13aecb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
@@ -44,8 +44,7 @@ func (m *MFuncPropCommandReq) MessageCode() uint8 {
 	return 0xF8
 }
 
-func (m *MFuncPropCommandReq) InitializeParent(parent *CEMI) {
-}
+func (m *MFuncPropCommandReq) InitializeParent(parent *CEMI) {}
 
 func NewMFuncPropCommandReq() *CEMI {
 	child := &MFuncPropCommandReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
index 87bbaa5..7337a7c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
@@ -44,8 +44,7 @@ func (m *MFuncPropCon) MessageCode() uint8 {
 	return 0xFA
 }
 
-func (m *MFuncPropCon) InitializeParent(parent *CEMI) {
-}
+func (m *MFuncPropCon) InitializeParent(parent *CEMI) {}
 
 func NewMFuncPropCon() *CEMI {
 	child := &MFuncPropCon{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
index 0b2444d..e8bd093 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
@@ -44,8 +44,7 @@ func (m *MFuncPropStateReadReq) MessageCode() uint8 {
 	return 0xF9
 }
 
-func (m *MFuncPropStateReadReq) InitializeParent(parent *CEMI) {
-}
+func (m *MFuncPropStateReadReq) InitializeParent(parent *CEMI) {}
 
 func NewMFuncPropStateReadReq() *CEMI {
 	child := &MFuncPropStateReadReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
index 9899daf..d883601 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
@@ -44,8 +44,7 @@ func (m *MPropInfoInd) MessageCode() uint8 {
 	return 0xF7
 }
 
-func (m *MPropInfoInd) InitializeParent(parent *CEMI) {
-}
+func (m *MPropInfoInd) InitializeParent(parent *CEMI) {}
 
 func NewMPropInfoInd() *CEMI {
 	child := &MPropInfoInd{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
index bf485f2..1acf77d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
@@ -51,8 +51,7 @@ func (m *MPropReadCon) MessageCode() uint8 {
 	return 0xFB
 }
 
-func (m *MPropReadCon) InitializeParent(parent *CEMI) {
-}
+func (m *MPropReadCon) InitializeParent(parent *CEMI) {}
 
 func NewMPropReadCon(interfaceObjectType uint16, objectInstance uint8, propertyId uint8, numberOfElements uint8, startIndex uint16, data uint16) *CEMI {
 	child := &MPropReadCon{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
index 37c6d2c..cfde73c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
@@ -50,8 +50,7 @@ func (m *MPropReadReq) MessageCode() uint8 {
 	return 0xFC
 }
 
-func (m *MPropReadReq) InitializeParent(parent *CEMI) {
-}
+func (m *MPropReadReq) InitializeParent(parent *CEMI) {}
 
 func NewMPropReadReq(interfaceObjectType uint16, objectInstance uint8, propertyId uint8, numberOfElements uint8, startIndex uint16) *CEMI {
 	child := &MPropReadReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
index b23d915..c3d5e85 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
@@ -44,8 +44,7 @@ func (m *MPropWriteCon) MessageCode() uint8 {
 	return 0xF5
 }
 
-func (m *MPropWriteCon) InitializeParent(parent *CEMI) {
-}
+func (m *MPropWriteCon) InitializeParent(parent *CEMI) {}
 
 func NewMPropWriteCon() *CEMI {
 	child := &MPropWriteCon{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
index c4935b3..29a477e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
@@ -44,8 +44,7 @@ func (m *MPropWriteReq) MessageCode() uint8 {
 	return 0xF6
 }
 
-func (m *MPropWriteReq) InitializeParent(parent *CEMI) {
-}
+func (m *MPropWriteReq) InitializeParent(parent *CEMI) {}
 
 func NewMPropWriteReq() *CEMI {
 	child := &MPropWriteReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
index ec84372..443fc1a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
@@ -44,8 +44,7 @@ func (m *MResetInd) MessageCode() uint8 {
 	return 0xF0
 }
 
-func (m *MResetInd) InitializeParent(parent *CEMI) {
-}
+func (m *MResetInd) InitializeParent(parent *CEMI) {}
 
 func NewMResetInd() *CEMI {
 	child := &MResetInd{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
index c62b12b..55d3ad0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
@@ -44,8 +44,7 @@ func (m *MResetReq) MessageCode() uint8 {
 	return 0xF1
 }
 
-func (m *MResetReq) InitializeParent(parent *CEMI) {
-}
+func (m *MResetReq) InitializeParent(parent *CEMI) {}
 
 func NewMResetReq() *CEMI {
 	child := &MResetReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
index 77bbc185..8e39b18 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
@@ -44,8 +44,7 @@ func (m *RoutingIndication) MsgType() uint16 {
 	return 0x0530
 }
 
-func (m *RoutingIndication) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *RoutingIndication) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewRoutingIndication() *KnxNetIpMessage {
 	child := &RoutingIndication{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
index c19c100..8ceb510 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
@@ -46,8 +46,7 @@ func (m *SearchRequest) MsgType() uint16 {
 	return 0x0201
 }
 
-func (m *SearchRequest) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *SearchRequest) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewSearchRequest(hpaiIDiscoveryEndpoint *HPAIDiscoveryEndpoint) *KnxNetIpMessage {
 	child := &SearchRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
index 187aebe..008859b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
@@ -48,8 +48,7 @@ func (m *SearchResponse) MsgType() uint16 {
 	return 0x0202
 }
 
-func (m *SearchResponse) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *SearchResponse) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewSearchResponse(hpaiControlEndpoint *HPAIControlEndpoint, dibDeviceInfo *DIBDeviceInfo, dibSuppSvcFamilies *DIBSuppSvcFamilies) *KnxNetIpMessage {
 	child := &SearchResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
index fb1b372..864b76e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
@@ -44,8 +44,7 @@ func (m *TDataConnectedInd) MessageCode() uint8 {
 	return 0x89
 }
 
-func (m *TDataConnectedInd) InitializeParent(parent *CEMI) {
-}
+func (m *TDataConnectedInd) InitializeParent(parent *CEMI) {}
 
 func NewTDataConnectedInd() *CEMI {
 	child := &TDataConnectedInd{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
index de2ddf8..ccb3d61 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
@@ -44,8 +44,7 @@ func (m *TDataConnectedReq) MessageCode() uint8 {
 	return 0x41
 }
 
-func (m *TDataConnectedReq) InitializeParent(parent *CEMI) {
-}
+func (m *TDataConnectedReq) InitializeParent(parent *CEMI) {}
 
 func NewTDataConnectedReq() *CEMI {
 	child := &TDataConnectedReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
index cae2376..a8c8116 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
@@ -44,8 +44,7 @@ func (m *TDataIndividualInd) MessageCode() uint8 {
 	return 0x94
 }
 
-func (m *TDataIndividualInd) InitializeParent(parent *CEMI) {
-}
+func (m *TDataIndividualInd) InitializeParent(parent *CEMI) {}
 
 func NewTDataIndividualInd() *CEMI {
 	child := &TDataIndividualInd{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
index fd728c3..1f4ce3c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
@@ -44,8 +44,7 @@ func (m *TDataIndividualReq) MessageCode() uint8 {
 	return 0x4A
 }
 
-func (m *TDataIndividualReq) InitializeParent(parent *CEMI) {
-}
+func (m *TDataIndividualReq) InitializeParent(parent *CEMI) {}
 
 func NewTDataIndividualReq() *CEMI {
 	child := &TDataIndividualReq{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
index 191d4ca..2771942 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
@@ -47,8 +47,7 @@ func (m *TunnelingRequest) MsgType() uint16 {
 	return 0x0420
 }
 
-func (m *TunnelingRequest) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *TunnelingRequest) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewTunnelingRequest(tunnelingRequestDataBlock *TunnelingRequestDataBlock, cemi *CEMI) *KnxNetIpMessage {
 	child := &TunnelingRequest{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
index 2c1f4d6..cac72ac 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
@@ -46,8 +46,7 @@ func (m *TunnelingResponse) MsgType() uint16 {
 	return 0x0421
 }
 
-func (m *TunnelingResponse) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *TunnelingResponse) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewTunnelingResponse(tunnelingResponseDataBlock *TunnelingResponseDataBlock) *KnxNetIpMessage {
 	child := &TunnelingResponse{
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
index 7c61135..c3d5eb2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
@@ -46,8 +46,7 @@ func (m *UnknownMessage) MsgType() uint16 {
 	return 0x020B
 }
 
-func (m *UnknownMessage) InitializeParent(parent *KnxNetIpMessage) {
-}
+func (m *UnknownMessage) InitializeParent(parent *KnxNetIpMessage) {}
 
 func NewUnknownMessage(unknownData []byte) *KnxNetIpMessage {
 	child := &UnknownMessage{
diff --git a/plc4go/internal/plc4go/modbus/fieldtype_string.go b/plc4go/internal/plc4go/modbus/fieldtype_string.go
index 4ef728b..ec3ec50 100644
--- a/plc4go/internal/plc4go/modbus/fieldtype_string.go
+++ b/plc4go/internal/plc4go/modbus/fieldtype_string.go
@@ -1,3 +1,20 @@
+// Licensed to 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. Apache Software Foundation (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.
+
 // Code generated by "stringer -type FieldType"; DO NOT EDIT.
 
 package modbus
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
index cd3fcec..1f988a2 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUDiagnosticRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUDiagnosticRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUDiagnosticRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUDiagnosticRequest(subFunction uint16, data uint16) *ModbusPDU {
 	child := &ModbusPDUDiagnosticRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
index 7ac73f8..d86d239 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUDiagnosticResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUDiagnosticResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUDiagnosticResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUDiagnosticResponse(subFunction uint16, data uint16) *ModbusPDU {
 	child := &ModbusPDUDiagnosticResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
index de87dbc..39033b4 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUError) Response() bool {
 	return false
 }
 
-func (m *ModbusPDUError) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUError) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUError(exceptionCode ModbusErrorCode) *ModbusPDU {
 	child := &ModbusPDUError{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
index ccde2a6..ccbc517 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
@@ -52,8 +52,7 @@ func (m *ModbusPDUGetComEventCounterRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUGetComEventCounterRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUGetComEventCounterRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUGetComEventCounterRequest() *ModbusPDU {
 	child := &ModbusPDUGetComEventCounterRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
index 1c7d93a..3bac2c6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUGetComEventCounterResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUGetComEventCounterResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUGetComEventCounterResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUGetComEventCounterResponse(status uint16, eventCount uint16) *ModbusPDU {
 	child := &ModbusPDUGetComEventCounterResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
index 0316ab5..5d5dc8c 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
@@ -52,8 +52,7 @@ func (m *ModbusPDUGetComEventLogRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUGetComEventLogRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUGetComEventLogRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUGetComEventLogRequest() *ModbusPDU {
 	child := &ModbusPDUGetComEventLogRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
index 9da28ee..7ccd0e0 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
@@ -57,8 +57,7 @@ func (m *ModbusPDUGetComEventLogResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUGetComEventLogResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUGetComEventLogResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUGetComEventLogResponse(status uint16, eventCount uint16, messageCount uint16, events []byte) *ModbusPDU {
 	child := &ModbusPDUGetComEventLogResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
index db637a0..c1d9869 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
@@ -56,8 +56,7 @@ func (m *ModbusPDUMaskWriteHoldingRegisterRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUMaskWriteHoldingRegisterRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUMaskWriteHoldingRegisterRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUMaskWriteHoldingRegisterRequest(referenceAddress uint16, andMask uint16, orMask uint16) *ModbusPDU {
 	child := &ModbusPDUMaskWriteHoldingRegisterRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
index 9847b13..643aa24 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
@@ -56,8 +56,7 @@ func (m *ModbusPDUMaskWriteHoldingRegisterResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUMaskWriteHoldingRegisterResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUMaskWriteHoldingRegisterResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUMaskWriteHoldingRegisterResponse(referenceAddress uint16, andMask uint16, orMask uint16) *ModbusPDU {
 	child := &ModbusPDUMaskWriteHoldingRegisterResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
index cc0daf2..364d0ca 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUReadCoilsRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadCoilsRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadCoilsRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadCoilsRequest(startingAddress uint16, quantity uint16) *ModbusPDU {
 	child := &ModbusPDUReadCoilsRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
index a8ae45f..1416c8e 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadCoilsResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadCoilsResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadCoilsResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadCoilsResponse(value []byte) *ModbusPDU {
 	child := &ModbusPDUReadCoilsResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
index fda588e..8d4ce3b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
@@ -52,8 +52,7 @@ func (m *ModbusPDUReadDeviceIdentificationRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadDeviceIdentificationRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadDeviceIdentificationRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadDeviceIdentificationRequest() *ModbusPDU {
 	child := &ModbusPDUReadDeviceIdentificationRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
index d352a53..a8d6d85 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
@@ -52,8 +52,7 @@ func (m *ModbusPDUReadDeviceIdentificationResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadDeviceIdentificationResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadDeviceIdentificationResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadDeviceIdentificationResponse() *ModbusPDU {
 	child := &ModbusPDUReadDeviceIdentificationResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
index ddee0f2..bf4acfc 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUReadDiscreteInputsRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadDiscreteInputsRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadDiscreteInputsRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadDiscreteInputsRequest(startingAddress uint16, quantity uint16) *ModbusPDU {
 	child := &ModbusPDUReadDiscreteInputsRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
index eaeea4a..61389b1 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadDiscreteInputsResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadDiscreteInputsResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadDiscreteInputsResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadDiscreteInputsResponse(value []byte) *ModbusPDU {
 	child := &ModbusPDUReadDiscreteInputsResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
index b12e9a1..8030f4b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
@@ -52,8 +52,7 @@ func (m *ModbusPDUReadExceptionStatusRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadExceptionStatusRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadExceptionStatusRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadExceptionStatusRequest() *ModbusPDU {
 	child := &ModbusPDUReadExceptionStatusRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
index 4703826..86655f8 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadExceptionStatusResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadExceptionStatusResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadExceptionStatusResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadExceptionStatusResponse(value uint8) *ModbusPDU {
 	child := &ModbusPDUReadExceptionStatusResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
index 521600d..f2f220f 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadFifoQueueRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadFifoQueueRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadFifoQueueRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadFifoQueueRequest(fifoPointerAddress uint16) *ModbusPDU {
 	child := &ModbusPDUReadFifoQueueRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
index 4fe71f2..f15ceb0 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadFifoQueueResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadFifoQueueResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadFifoQueueResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadFifoQueueResponse(fifoValue []uint16) *ModbusPDU {
 	child := &ModbusPDUReadFifoQueueResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
index 2864fdb..5eb6ece 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadFileRecordRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadFileRecordRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadFileRecordRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadFileRecordRequest(items []*ModbusPDUReadFileRecordRequestItem) *ModbusPDU {
 	child := &ModbusPDUReadFileRecordRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
index aa4c833..2b2b826 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadFileRecordResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadFileRecordResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadFileRecordResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadFileRecordResponse(items []*ModbusPDUReadFileRecordResponseItem) *ModbusPDU {
 	child := &ModbusPDUReadFileRecordResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
index d105720..1fa8c3b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUReadHoldingRegistersRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadHoldingRegistersRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadHoldingRegistersRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadHoldingRegistersRequest(startingAddress uint16, quantity uint16) *ModbusPDU {
 	child := &ModbusPDUReadHoldingRegistersRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
index f8a4c62..7a514e0 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadHoldingRegistersResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadHoldingRegistersResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadHoldingRegistersResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadHoldingRegistersResponse(value []byte) *ModbusPDU {
 	child := &ModbusPDUReadHoldingRegistersResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
index fe77393..d9d1172 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUReadInputRegistersRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadInputRegistersRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadInputRegistersRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadInputRegistersRequest(startingAddress uint16, quantity uint16) *ModbusPDU {
 	child := &ModbusPDUReadInputRegistersRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
index 8f2cde2..ca89ae5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadInputRegistersResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadInputRegistersResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadInputRegistersResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadInputRegistersResponse(value []byte) *ModbusPDU {
 	child := &ModbusPDUReadInputRegistersResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
index 9f12789..498c674 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
@@ -58,8 +58,7 @@ func (m *ModbusPDUReadWriteMultipleHoldingRegistersRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReadWriteMultipleHoldingRegistersRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadWriteMultipleHoldingRegistersRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadWriteMultipleHoldingRegistersRequest(readStartingAddress uint16, readQuantity uint16, writeStartingAddress uint16, writeQuantity uint16, value []byte) *ModbusPDU {
 	child := &ModbusPDUReadWriteMultipleHoldingRegistersRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
index f920eb4..33d6ce7 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReadWriteMultipleHoldingRegistersResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReadWriteMultipleHoldingRegistersResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReadWriteMultipleHoldingRegistersResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReadWriteMultipleHoldingRegistersResponse(value []byte) *ModbusPDU {
 	child := &ModbusPDUReadWriteMultipleHoldingRegistersResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
index 8b8ea6b..48b8ce6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
@@ -52,8 +52,7 @@ func (m *ModbusPDUReportServerIdRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUReportServerIdRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReportServerIdRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReportServerIdRequest() *ModbusPDU {
 	child := &ModbusPDUReportServerIdRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
index 3ccda3c..78a2be9 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUReportServerIdResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUReportServerIdResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUReportServerIdResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUReportServerIdResponse(value []byte) *ModbusPDU {
 	child := &ModbusPDUReportServerIdResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
index 11377e5..6084465 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUWriteFileRecordRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUWriteFileRecordRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteFileRecordRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteFileRecordRequest(items []*ModbusPDUWriteFileRecordRequestItem) *ModbusPDU {
 	child := &ModbusPDUWriteFileRecordRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
index 9b74b16..d27ce5b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
@@ -54,8 +54,7 @@ func (m *ModbusPDUWriteFileRecordResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUWriteFileRecordResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteFileRecordResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteFileRecordResponse(items []*ModbusPDUWriteFileRecordResponseItem) *ModbusPDU {
 	child := &ModbusPDUWriteFileRecordResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
index 0e06ac2..fd99723 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
@@ -56,8 +56,7 @@ func (m *ModbusPDUWriteMultipleCoilsRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUWriteMultipleCoilsRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteMultipleCoilsRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteMultipleCoilsRequest(startingAddress uint16, quantity uint16, value []byte) *ModbusPDU {
 	child := &ModbusPDUWriteMultipleCoilsRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
index cbe74a2..cdb7ad6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUWriteMultipleCoilsResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUWriteMultipleCoilsResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteMultipleCoilsResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteMultipleCoilsResponse(startingAddress uint16, quantity uint16) *ModbusPDU {
 	child := &ModbusPDUWriteMultipleCoilsResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
index 1a821b9..aacec56 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
@@ -56,8 +56,7 @@ func (m *ModbusPDUWriteMultipleHoldingRegistersRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUWriteMultipleHoldingRegistersRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteMultipleHoldingRegistersRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteMultipleHoldingRegistersRequest(startingAddress uint16, quantity uint16, value []byte) *ModbusPDU {
 	child := &ModbusPDUWriteMultipleHoldingRegistersRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
index 9d7f99c..9e86bfb 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUWriteMultipleHoldingRegistersResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUWriteMultipleHoldingRegistersResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteMultipleHoldingRegistersResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteMultipleHoldingRegistersResponse(startingAddress uint16, quantity uint16) *ModbusPDU {
 	child := &ModbusPDUWriteMultipleHoldingRegistersResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
index 60b55cf..304ecfd 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUWriteSingleCoilRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUWriteSingleCoilRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteSingleCoilRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteSingleCoilRequest(address uint16, value uint16) *ModbusPDU {
 	child := &ModbusPDUWriteSingleCoilRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
index 8066fd8..fb5d952 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUWriteSingleCoilResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUWriteSingleCoilResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteSingleCoilResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteSingleCoilResponse(address uint16, value uint16) *ModbusPDU {
 	child := &ModbusPDUWriteSingleCoilResponse{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
index 0f8e9ce..d3537b6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUWriteSingleRegisterRequest) Response() bool {
 	return bool(false)
 }
 
-func (m *ModbusPDUWriteSingleRegisterRequest) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteSingleRegisterRequest) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteSingleRegisterRequest(address uint16, value uint16) *ModbusPDU {
 	child := &ModbusPDUWriteSingleRegisterRequest{
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
index 1064802..97bc4f8 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
@@ -55,8 +55,7 @@ func (m *ModbusPDUWriteSingleRegisterResponse) Response() bool {
 	return bool(true)
 }
 
-func (m *ModbusPDUWriteSingleRegisterResponse) InitializeParent(parent *ModbusPDU) {
-}
+func (m *ModbusPDUWriteSingleRegisterResponse) InitializeParent(parent *ModbusPDU) {}
 
 func NewModbusPDUWriteSingleRegisterResponse(address uint16, value uint16) *ModbusPDU {
 	child := &ModbusPDUWriteSingleRegisterResponse{
diff --git a/plc4go/internal/plc4go/s7/fieldtype_string.go b/plc4go/internal/plc4go/s7/fieldtype_string.go
index 02ae83f..3045fc1 100644
--- a/plc4go/internal/plc4go/s7/fieldtype_string.go
+++ b/plc4go/internal/plc4go/s7/fieldtype_string.go
@@ -1,3 +1,20 @@
+// Licensed to 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. Apache Software Foundation (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.
+
 // Code generated by "stringer -type FieldType"; DO NOT EDIT.
 
 package s7
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
index 2bd8f39..c3fa5f1 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
@@ -46,8 +46,7 @@ func (m *COTPParameterCalledTsap) ParameterType() uint8 {
 	return 0xC2
 }
 
-func (m *COTPParameterCalledTsap) InitializeParent(parent *COTPParameter) {
-}
+func (m *COTPParameterCalledTsap) InitializeParent(parent *COTPParameter) {}
 
 func NewCOTPParameterCalledTsap(tsapId uint16) *COTPParameter {
 	child := &COTPParameterCalledTsap{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
index 837eea1..e23c3f4 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
@@ -46,8 +46,7 @@ func (m *COTPParameterCallingTsap) ParameterType() uint8 {
 	return 0xC1
 }
 
-func (m *COTPParameterCallingTsap) InitializeParent(parent *COTPParameter) {
-}
+func (m *COTPParameterCallingTsap) InitializeParent(parent *COTPParameter) {}
 
 func NewCOTPParameterCallingTsap(tsapId uint16) *COTPParameter {
 	child := &COTPParameterCallingTsap{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
index d8f16ec..ca1b907 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
@@ -46,8 +46,7 @@ func (m *COTPParameterChecksum) ParameterType() uint8 {
 	return 0xC3
 }
 
-func (m *COTPParameterChecksum) InitializeParent(parent *COTPParameter) {
-}
+func (m *COTPParameterChecksum) InitializeParent(parent *COTPParameter) {}
 
 func NewCOTPParameterChecksum(crc uint8) *COTPParameter {
 	child := &COTPParameterChecksum{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
index b8fe7c5..a1ab0cf 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
@@ -46,8 +46,7 @@ func (m *COTPParameterDisconnectAdditionalInformation) ParameterType() uint8 {
 	return 0xE0
 }
 
-func (m *COTPParameterDisconnectAdditionalInformation) InitializeParent(parent *COTPParameter) {
-}
+func (m *COTPParameterDisconnectAdditionalInformation) InitializeParent(parent *COTPParameter) {}
 
 func NewCOTPParameterDisconnectAdditionalInformation(data []byte) *COTPParameter {
 	child := &COTPParameterDisconnectAdditionalInformation{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
index f9882fb..ff87f13 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
@@ -46,8 +46,7 @@ func (m *COTPParameterTpduSize) ParameterType() uint8 {
 	return 0xC0
 }
 
-func (m *COTPParameterTpduSize) InitializeParent(parent *COTPParameter) {
-}
+func (m *COTPParameterTpduSize) InitializeParent(parent *COTPParameter) {}
 
 func NewCOTPParameterTpduSize(tpduSize COTPTpduSize) *COTPParameter {
 	child := &COTPParameterTpduSize{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go b/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
index 42e73de..04a63ae 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
@@ -52,8 +52,7 @@ func (m *S7AddressAny) AddressType() uint8 {
 	return 0x10
 }
 
-func (m *S7AddressAny) InitializeParent(parent *S7Address) {
-}
+func (m *S7AddressAny) InitializeParent(parent *S7Address) {}
 
 func NewS7AddressAny(transportSize TransportSize, numberOfElements uint16, dbNumber uint16, area MemoryArea, byteAddress uint16, bitAddress uint8) *S7Address {
 	child := &S7AddressAny{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go
index 5765504..fa3cda1 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go
@@ -54,8 +54,7 @@ func (m *S7MessageObjectRequest) CpuFunctionType() uint8 {
 	return 0x04
 }
 
-func (m *S7MessageObjectRequest) InitializeParent(parent *S7DataAlarmMessage) {
-}
+func (m *S7MessageObjectRequest) InitializeParent(parent *S7DataAlarmMessage) {}
 
 func NewS7MessageObjectRequest(syntaxId SyntaxIdType, queryType QueryType, alarmType AlarmType) *S7DataAlarmMessage {
 	child := &S7MessageObjectRequest{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go
index 1e31e10..b08f7bc 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go
@@ -48,8 +48,7 @@ func (m *S7MessageObjectResponse) CpuFunctionType() uint8 {
 	return 0x08
 }
 
-func (m *S7MessageObjectResponse) InitializeParent(parent *S7DataAlarmMessage) {
-}
+func (m *S7MessageObjectResponse) InitializeParent(parent *S7DataAlarmMessage) {}
 
 func NewS7MessageObjectResponse(returnCode DataTransportErrorCode, transportSize DataTransportSize) *S7DataAlarmMessage {
 	child := &S7MessageObjectResponse{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go
index b85e3bd..b1790b3 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go
@@ -55,8 +55,7 @@ func (m *S7ParameterModeTransition) MessageType() uint8 {
 	return 0x07
 }
 
-func (m *S7ParameterModeTransition) InitializeParent(parent *S7Parameter) {
-}
+func (m *S7ParameterModeTransition) InitializeParent(parent *S7Parameter) {}
 
 func NewS7ParameterModeTransition(method uint8, cpuFunctionType uint8, cpuFunctionGroup uint8, currentMode uint8, sequenceNumber uint8) *S7Parameter {
 	child := &S7ParameterModeTransition{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
index a4efa89..dba7f61 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
@@ -50,8 +50,7 @@ func (m *S7ParameterReadVarRequest) MessageType() uint8 {
 	return 0x01
 }
 
-func (m *S7ParameterReadVarRequest) InitializeParent(parent *S7Parameter) {
-}
+func (m *S7ParameterReadVarRequest) InitializeParent(parent *S7Parameter) {}
 
 func NewS7ParameterReadVarRequest(items []*S7VarRequestParameterItem) *S7Parameter {
 	child := &S7ParameterReadVarRequest{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
index ee0ccf4..fae8e5e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
@@ -50,8 +50,7 @@ func (m *S7ParameterReadVarResponse) MessageType() uint8 {
 	return 0x03
 }
 
-func (m *S7ParameterReadVarResponse) InitializeParent(parent *S7Parameter) {
-}
+func (m *S7ParameterReadVarResponse) InitializeParent(parent *S7Parameter) {}
 
 func NewS7ParameterReadVarResponse(numItems uint8) *S7Parameter {
 	child := &S7ParameterReadVarResponse{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
index ebc9daa..6d2bcd8 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
@@ -53,8 +53,7 @@ func (m *S7ParameterSetupCommunication) MessageType() uint8 {
 	return 0
 }
 
-func (m *S7ParameterSetupCommunication) InitializeParent(parent *S7Parameter) {
-}
+func (m *S7ParameterSetupCommunication) InitializeParent(parent *S7Parameter) {}
 
 func NewS7ParameterSetupCommunication(maxAmqCaller uint16, maxAmqCallee uint16, pduLength uint16) *S7Parameter {
 	child := &S7ParameterSetupCommunication{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
index 00927f7..15aec84 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
@@ -50,8 +50,7 @@ func (m *S7ParameterUserData) MessageType() uint8 {
 	return 0x07
 }
 
-func (m *S7ParameterUserData) InitializeParent(parent *S7Parameter) {
-}
+func (m *S7ParameterUserData) InitializeParent(parent *S7Parameter) {}
 
 func NewS7ParameterUserData(items []*S7ParameterUserDataItem) *S7Parameter {
 	child := &S7ParameterUserData{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
index 7ec7261..805528f 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
@@ -53,8 +53,7 @@ func (m *S7ParameterUserDataItemCPUFunctions) ItemType() uint8 {
 	return 0x12
 }
 
-func (m *S7ParameterUserDataItemCPUFunctions) InitializeParent(parent *S7ParameterUserDataItem) {
-}
+func (m *S7ParameterUserDataItemCPUFunctions) InitializeParent(parent *S7ParameterUserDataItem) {}
 
 func NewS7ParameterUserDataItemCPUFunctions(method uint8, cpuFunctionType uint8, cpuFunctionGroup uint8, cpuSubfunction uint8, sequenceNumber uint8, dataUnitReferenceNumber *uint8, lastDataUnit *uint8, errorCode *uint16) *S7ParameterUserDataItem {
 	child := &S7ParameterUserDataItemCPUFunctions{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
index 7fcd3fc..75d8ef8 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
@@ -50,8 +50,7 @@ func (m *S7ParameterWriteVarRequest) MessageType() uint8 {
 	return 0x01
 }
 
-func (m *S7ParameterWriteVarRequest) InitializeParent(parent *S7Parameter) {
-}
+func (m *S7ParameterWriteVarRequest) InitializeParent(parent *S7Parameter) {}
 
 func NewS7ParameterWriteVarRequest(items []*S7VarRequestParameterItem) *S7Parameter {
 	child := &S7ParameterWriteVarRequest{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
index 92cbce1..780f6ce 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
@@ -50,8 +50,7 @@ func (m *S7ParameterWriteVarResponse) MessageType() uint8 {
 	return 0x03
 }
 
-func (m *S7ParameterWriteVarResponse) InitializeParent(parent *S7Parameter) {
-}
+func (m *S7ParameterWriteVarResponse) InitializeParent(parent *S7Parameter) {}
 
 func NewS7ParameterWriteVarResponse(numItems uint8) *S7Parameter {
 	child := &S7ParameterWriteVarResponse{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
index bf2d1a3..4888930 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
@@ -50,8 +50,7 @@ func (m *S7PayloadReadVarResponse) MessageType() uint8 {
 	return 0x03
 }
 
-func (m *S7PayloadReadVarResponse) InitializeParent(parent *S7Payload) {
-}
+func (m *S7PayloadReadVarResponse) InitializeParent(parent *S7Payload) {}
 
 func NewS7PayloadReadVarResponse(items []*S7VarPayloadDataItem) *S7Payload {
 	child := &S7PayloadReadVarResponse{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
index e7666c9..31f2d0e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
@@ -50,8 +50,7 @@ func (m *S7PayloadUserData) MessageType() uint8 {
 	return 0x07
 }
 
-func (m *S7PayloadUserData) InitializeParent(parent *S7Payload) {
-}
+func (m *S7PayloadUserData) InitializeParent(parent *S7Payload) {}
 
 func NewS7PayloadUserData(items []*S7PayloadUserDataItem) *S7Payload {
 	child := &S7PayloadUserData{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
index dbaa59d..e817926 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
@@ -50,8 +50,7 @@ func (m *S7PayloadWriteVarRequest) MessageType() uint8 {
 	return 0x01
 }
 
-func (m *S7PayloadWriteVarRequest) InitializeParent(parent *S7Payload) {
-}
+func (m *S7PayloadWriteVarRequest) InitializeParent(parent *S7Payload) {}
 
 func NewS7PayloadWriteVarRequest(items []*S7VarPayloadDataItem) *S7Payload {
 	child := &S7PayloadWriteVarRequest{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
index 66e86d7..4ae1c1f 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
@@ -50,8 +50,7 @@ func (m *S7PayloadWriteVarResponse) MessageType() uint8 {
 	return 0x03
 }
 
-func (m *S7PayloadWriteVarResponse) InitializeParent(parent *S7Payload) {
-}
+func (m *S7PayloadWriteVarResponse) InitializeParent(parent *S7Payload) {}
 
 func NewS7PayloadWriteVarResponse(items []*S7VarPayloadStatusItem) *S7Payload {
 	child := &S7PayloadWriteVarResponse{
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go b/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
index 4476173..6b967ef 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
@@ -46,8 +46,7 @@ func (m *S7VarRequestParameterItemAddress) ItemType() uint8 {
 	return 0x12
 }
 
-func (m *S7VarRequestParameterItemAddress) InitializeParent(parent *S7VarRequestParameterItem) {
-}
+func (m *S7VarRequestParameterItemAddress) InitializeParent(parent *S7VarRequestParameterItem) {}
 
 func NewS7VarRequestParameterItemAddress(address *S7Address) *S7VarRequestParameterItem {
 	child := &S7VarRequestParameterItemAddress{
diff --git a/plc4go/internal/plc4go/spi/testutils/steptype_string.go b/plc4go/internal/plc4go/spi/testutils/steptype_string.go
index 8506728..c99ce3e 100644
--- a/plc4go/internal/plc4go/spi/testutils/steptype_string.go
+++ b/plc4go/internal/plc4go/spi/testutils/steptype_string.go
@@ -1,3 +1,20 @@
+// Licensed to 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. Apache Software Foundation (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.
+
 // Code generated by "stringer -type StepType"; DO NOT EDIT.
 
 package testutils
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 a09f6aa..9b98317 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
@@ -18,10 +18,7 @@
  */
 package org.apache.plc4x.java.bacnetip.readwrite.utils;
 
-import org.apache.plc4x.java.bacnetip.readwrite.BACnetDataType;
-import org.apache.plc4x.java.bacnetip.readwrite.BACnetEventState;
-import org.apache.plc4x.java.bacnetip.readwrite.BACnetEventType;
-import org.apache.plc4x.java.bacnetip.readwrite.BACnetPropertyIdentifier;
+import org.apache.plc4x.java.bacnetip.readwrite.*;
 import org.apache.plc4x.java.spi.generation.ParseException;
 import org.apache.plc4x.java.spi.generation.ReadBuffer;
 import org.apache.plc4x.java.spi.generation.SerializationException;
@@ -198,7 +195,10 @@ public class StaticHelper {
         writeBuffer.writeUnsignedLong("proprietaryEventState", bitsToWrite, value, WithAdditionalStringRepresentation(BACnetEventState.VENDOR_PROPRIETARY_VALUE.name()));
     }
 
-    public static boolean isBACnetConstructedDataClosingTag(ReadBuffer readBuffer, int expectedTagNumber) {
+    public static boolean isBACnetConstructedDataClosingTag(ReadBuffer readBuffer, boolean instantTerminate, int expectedTagNumber) {
+        if (instantTerminate) {
+            return true;
+        }
         int oldPos = readBuffer.getPos();
         try {
             // TODO: add graceful exit if we know already that we are at the end (we might need to add available bytes to reader)
@@ -258,8 +258,83 @@ public class StaticHelper {
         }
     }
 
-    public static BACnetDataType guessDataType() {
-        // TODO: implement me
+    public static BACnetDataType guessDataType(BACnetObjectType objectType) {
+        switch (objectType) {
+            case ACCESS_CREDENTIAL:
+            case ACCESS_DOOR:
+            case ACCESS_POINT:
+            case ACCESS_RIGHTS:
+            case ACCESS_USER:
+            case ACCESS_ZONE:
+            case ACCUMULATOR:
+            case ALERT_ENROLLMENT:
+                // TODO: temporary
+                return BACnetDataType.BACNET_PROPERTY_IDENTIFIER;
+            case ANALOG_INPUT:
+            case ANALOG_OUTPUT:
+                return BACnetDataType.REAL;
+            case ANALOG_VALUE:
+            case AVERAGING:
+            case BINARY_INPUT:
+            case BINARY_LIGHTING_OUTPUT:
+            case BINARY_OUTPUT:
+            case BINARY_VALUE:
+                // TODO: temporary
+                return BACnetDataType.BACNET_PROPERTY_IDENTIFIER;
+            case BITSTRING_VALUE:
+                return BACnetDataType.BIT_STRING;
+            case CALENDAR:
+            case CHANNEL:
+            case CHARACTERSTRING_VALUE:
+            case COMMAND:
+            case CREDENTIAL_DATA_INPUT:
+            case DATEPATTERN_VALUE:
+            case DATE_VALUE:
+            case DATETIMEPATTERN_VALUE:
+            case DATETIME_VALUE:
+            case DEVICE:
+            case ELEVATOR_GROUP:
+            case ESCALATOR:
+            case EVENT_ENROLLMENT:
+            case EVENT_LOG:
+            case FILE:
+            case GLOBAL_GROUP:
+            case GROUP:
+                // TODO: temporary
+                return BACnetDataType.BACNET_PROPERTY_IDENTIFIER;
+            case INTEGER_VALUE:
+                return BACnetDataType.SIGNED_INTEGER;
+            case LARGE_ANALOG_VALUE:
+            case LIFE_SAFETY_POINT:
+                // TODO: temporary
+                return BACnetDataType.BACNET_PROPERTY_IDENTIFIER;
+            case LIFE_SAFETY_ZONE:
+                return BACnetDataType.BACNET_OBJECT_IDENTIFIER;
+            case LIFT:
+            case LIGHTING_OUTPUT:
+            case LOAD_CONTROL:
+            case LOOP:
+            case MULTI_STATE_INPUT:
+            case MULTI_STATE_OUTPUT:
+            case MULTI_STATE_VALUE:
+            case NETWORK_PORT:
+            case NETWORK_SECURITY:
+            case NOTIFICATION_CLASS:
+            case NOTIFICATION_FORWARDER:
+            case OCTETSTRING_VALUE:
+            case POSITIVE_INTEGER_VALUE:
+            case PROGRAM:
+            case PULSE_CONVERTER:
+            case SCHEDULE:
+            case STRUCTURED_VIEW:
+            case TIMEPATTERN_VALUE:
+            case TIME_VALUE:
+            case TIMER:
+            case TREND_LOG:
+            case TREND_LOG_MULTIPLE:
+                return BACnetDataType.ENUMERATED;
+        }
+        // TODO: temporary
         return BACnetDataType.BACNET_PROPERTY_IDENTIFIER;
     }
 }
diff --git a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java
index 73de546..6fed851 100644
--- a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java
+++ b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java
@@ -31,6 +31,7 @@ import org.apache.plc4x.java.spi.generation.SerializationException;
 import org.apache.plc4x.java.spi.generation.WriteBufferBoxBased;
 import org.apache.plc4x.java.spi.utils.Serializable;
 import org.apache.plc4x.java.spi.utils.hex.Hex;
+import org.assertj.core.api.Condition;
 import org.junit.jupiter.api.*;
 import org.pcap4j.core.*;
 import org.pcap4j.packet.Packet;
@@ -51,6 +52,8 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.tuple;
 import static org.junit.jupiter.api.Assertions.*;
 import static org.junit.jupiter.api.Assumptions.assumeTrue;
 
@@ -63,7 +66,7 @@ public class RandomPackagesTest {
 
     @BeforeAll
     static void setUp() {
-        // TODO: for mac only don't commit
+        // Note: for mac only don't commit
         //System.getProperties().setProperty("jna.library.path", "/usr/local/Cellar/libpcap//1.10.1/lib");
         assumeTrue(() -> {
             try {
@@ -279,9 +282,9 @@ public class RandomPackagesTest {
     @TestFactory
     @DisplayName("BACnetDeviceObjectReference")
     Collection<DynamicNode> BACnetDeviceObjectReference() throws Exception {
-        TestPcapEvaluator pcapEvaluator = pcapEvaluator("BACnetDeviceObjectReference.pcap");
+        TestPcapEvaluator pcapEvaluator = pcapEvaluator("BACnetDeviceObjectReference.pcap", BACNET_BPF_FILTER_UDP);
         return Arrays.asList(
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[  0] life-safety-zone,1 zone-members",
+            DynamicTest.dynamicTest("No. 1 - Confirmed-REQ   readProperty[  0] life-safety-zone,1 zone-members",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -294,7 +297,7 @@ public class RandomPackagesTest {
                     assertEquals(1, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.ZONE_MEMBERS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[  0] life-safety-zone,1 zone-members life-safety-zone,3 life-safety-zone,4 life-safety-zone,5 life-safety-zone,6 life-safety-zone,7 life-safety-zone,8 life-safety-zone,9 life-safety-zone,16 life-safety-zone,494 life-safety-zone,255 life-safety-zone,231 life-safety-zone,4193620 life-safety-zone,222 life-safety-zone,300 life-safety-zone,166",
+            DynamicTest.dynamicTest("No. 2 - Complex-ACK     readProperty[  0] life-safety-zone,1 zone-members life-safety-zone,3 life-safety-zone,4 life-safety-zone,5 life-safety-zone,6 life-safety-zone,7 life-safety-zone,8 life-safety-zone,9 life-safety-zone,16 life-safety-zone,494 life-safety-zone,255 life-safety-zone,231 life-safety-zone,4193620 life-safety-zone,222 life-safety-zone,300 life-safety-zone,166",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -306,7 +309,56 @@ public class RandomPackagesTest {
                     assertEquals(BACnetObjectType.LIFE_SAFETY_ZONE, baCnetServiceAckReadProperty.getObjectIdentifier().getObjectType());
                     assertEquals(1, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.ZONE_MEMBERS, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
-                    // TODO: assert object identifiers
+                    BACnetConstructedDataLifeSafetyZone baCnetConstructedDataLifeSafetyZone = (BACnetConstructedDataLifeSafetyZone) baCnetServiceAckReadProperty.getValues();
+
+                    Condition<BACnetObjectType> isLifeSafetyZone = new Condition<>(baCnetObjectType -> BACnetObjectType.LIFE_SAFETY_ZONE == baCnetObjectType, "life safety zone");
+                    List<BACnetContextTagObjectIdentifier> zones = baCnetConstructedDataLifeSafetyZone.getZones();
+                    assertThat(zones.get(0)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 3L);
+                    assertThat(zones.get(1)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 4L);
+                    assertThat(zones.get(2)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 5L);
+                    assertThat(zones.get(3)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 6L);
+                    assertThat(zones.get(4)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 7L);
+                    assertThat(zones.get(5)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 8L);
+                    assertThat(zones.get(6)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 9L);
+                    assertThat(zones.get(7)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 16L);
+                    assertThat(zones.get(8)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 494L);
+                    assertThat(zones.get(9)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 255L);
+                    assertThat(zones.get(10)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 231L);
+                    assertThat(zones.get(11)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 4193620L);
+                    assertThat(zones.get(12)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 222L);
+                    assertThat(zones.get(13)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 300L);
+                    assertThat(zones.get(14)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 166L);
+                }),
+            DynamicTest.dynamicTest("No. 3 - Confirmed-REQ   readProperty[  0] life-safety-zone,1 member-of",
+                () -> {
+                    BVLC bvlc = pcapEvaluator.nextBVLC();
+                    dump(bvlc);
+                    BVLCOriginalUnicastNPDU bvlcOriginalUnicastNPDU = (BVLCOriginalUnicastNPDU) bvlc;
+                    APDUConfirmedRequest apduConfirmedRequest = (APDUConfirmedRequest) bvlcOriginalUnicastNPDU.getNpdu().getApdu();
+                    BACnetConfirmedServiceRequest serviceRequest = apduConfirmedRequest.getServiceRequest();
+                    assertNotNull(serviceRequest);
+                    BACnetConfirmedServiceRequestReadProperty baCnetConfirmedServiceRequestReadProperty = (BACnetConfirmedServiceRequestReadProperty) serviceRequest;
+                    assertEquals(BACnetObjectType.LIFE_SAFETY_ZONE, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getObjectType());
+                    assertEquals(1, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
+                    assertEquals(BACnetPropertyIdentifier.MEMBER_OF, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
+                }),
+            DynamicTest.dynamicTest("No. 4 - Complex-ACK     readProperty[  0] life-safety-zone,1 member-of life-safety-zone,1",
+                () -> {
+                    BVLC bvlc = pcapEvaluator.nextBVLC();
+                    dump(bvlc);
+                    BVLCOriginalUnicastNPDU bvlcOriginalUnicastNPDU = (BVLCOriginalUnicastNPDU) bvlc;
+                    APDUComplexAck apduComplexAck = (APDUComplexAck) bvlcOriginalUnicastNPDU.getNpdu().getApdu();
+                    BACnetServiceAck baCnetServiceAck = apduComplexAck.getServiceAck();
+                    assertNotNull(baCnetServiceAck);
+                    BACnetServiceAckReadProperty baCnetServiceAckReadProperty = (BACnetServiceAckReadProperty) baCnetServiceAck;
+                    assertEquals(BACnetObjectType.LIFE_SAFETY_ZONE, baCnetServiceAckReadProperty.getObjectIdentifier().getObjectType());
+                    assertEquals(1, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
+                    assertEquals(BACnetPropertyIdentifier.MEMBER_OF, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
+                    BACnetConstructedDataLifeSafetyZone baCnetConstructedDataLifeSafetyZone = (BACnetConstructedDataLifeSafetyZone) baCnetServiceAckReadProperty.getValues();
+
+                    Condition<BACnetObjectType> isLifeSafetyZone = new Condition<>(baCnetObjectType -> BACnetObjectType.LIFE_SAFETY_ZONE == baCnetObjectType, "life safety zone");
+                    List<BACnetContextTagObjectIdentifier> zones = baCnetConstructedDataLifeSafetyZone.getZones();
+                    assertThat(zones.get(0)).extracting("objectType", "instanceNumber").contains(BACnetObjectType.LIFE_SAFETY_ZONE, 1L);
                 })
         );
     }
@@ -2322,7 +2374,7 @@ public class RandomPackagesTest {
     Collection<DynamicNode> plugfest_2011_trane_1() throws Exception {
         TestPcapEvaluator pcapEvaluator = pcapEvaluator("plugfest-2011-trane-1.pcap", BACNET_BPF_FILTER_UDP);
         return Arrays.asList(
-            DynamicTest.dynamicTest("Unconfirmed REQ who-Is",
+            DynamicTest.dynamicTest("No.1 - Unconfirmed REQ who-Is",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2332,7 +2384,7 @@ public class RandomPackagesTest {
                     assertNotNull(serviceRequest);
                     assertTrue(serviceRequest instanceof BACnetUnconfirmedServiceRequestWhoIs);
                 }),
-            pcapEvaluator.parseEmAll()
+            pcapEvaluator.parseFrom(2)
         );
     }
 
@@ -2395,9 +2447,9 @@ public class RandomPackagesTest {
     @TestFactory
     @DisplayName("read-properties")
     Collection<DynamicNode> read_properties() throws Exception {
-        TestPcapEvaluator pcapEvaluator = pcapEvaluator("read-properties.cap");
+        TestPcapEvaluator pcapEvaluator = pcapEvaluator("read-properties.cap", BACNET_BPF_FILTER_UDP);
         return Arrays.asList(
-            DynamicTest.dynamicTest("Unconfirmed-REQ i-Am device,111",
+            DynamicTest.dynamicTest("No. 1 - Unconfirmed-REQ i-Am device,111",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2410,7 +2462,7 @@ public class RandomPackagesTest {
                     assertEquals(true, baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedReceive());
                     assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getActualValue());
                 }),
-            DynamicTest.dynamicTest("Unconfirmed-REQ who-Is",
+            DynamicTest.dynamicTest("No. 2 - Unconfirmed-REQ who-Is",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2418,12 +2470,20 @@ public class RandomPackagesTest {
                     APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) bvlcOriginalBroadcastNPDU.getNpdu().getApdu();
                     BACnetUnconfirmedServiceRequestWhoIs baCnetUnconfirmedServiceRequestWhoIs = (BACnetUnconfirmedServiceRequestWhoIs) apduUnconfirmedRequest.getServiceRequest();
                 }),
-            DynamicTest.dynamicTest("skip 5 packages",
+            DynamicTest.dynamicTest("No. 3 - Unconfirmed-REQ i-Am device,111",
                 () -> {
-                    pcapEvaluator.skipPackages(5);
-                }
-            ),
-            DynamicTest.dynamicTest("Unconfirmed-REQ i-Am device,201",
+                    BVLC bvlc = pcapEvaluator.nextBVLC();
+                    dump(bvlc);
+                    BVLCOriginalBroadcastNPDU bvlcOriginalBroadcastNPDU = (BVLCOriginalBroadcastNPDU) bvlc;
+                    APDUUnconfirmedRequest apduUnconfirmedRequest = (APDUUnconfirmedRequest) bvlcOriginalBroadcastNPDU.getNpdu().getApdu();
+                    BACnetUnconfirmedServiceRequestIAm baCnetUnconfirmedServiceRequestIAm = (BACnetUnconfirmedServiceRequestIAm) apduUnconfirmedRequest.getServiceRequest();
+                    assertEquals(BACnetObjectType.DEVICE, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getObjectType());
+                    assertEquals(111, baCnetUnconfirmedServiceRequestIAm.getDeviceIdentifier().getInstanceNumber());
+                    assertEquals(50, baCnetUnconfirmedServiceRequestIAm.getMaximumApduLengthAcceptedLength().getActualValue());
+                    assertEquals(false, baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedBoth());
+                    assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getActualValue());
+                }),
+            DynamicTest.dynamicTest("No. 8 - Unconfirmed-REQ i-Am device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2436,12 +2496,7 @@ public class RandomPackagesTest {
                     assertEquals(true, baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedBoth());
                     assertEquals(18, baCnetUnconfirmedServiceRequestIAm.getVendorId().getActualValue());
                 }),
-            DynamicTest.dynamicTest("skip 1 packages",
-                () -> {
-                    pcapEvaluator.skipPackages(1);
-                }
-            ),
-            DynamicTest.dynamicTest("Unconfirmed-REQ i-Am device,201",
+            DynamicTest.dynamicTest("No. 8 - Unconfirmed-REQ i-Am device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2454,7 +2509,7 @@ public class RandomPackagesTest {
                     assertEquals(true, baCnetUnconfirmedServiceRequestIAm.getSegmentationSupported().getIsSegmentedBoth());
                     assertEquals(42, baCnetUnconfirmedServiceRequestIAm.getVendorId().getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 29] device,201 object-identifier",
+            DynamicTest.dynamicTest("No. 11 - Confirmed-REQ   readProperty[ 29] device,201 object-identifier",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2467,7 +2522,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_IDENTIFIER, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 29] device,201 object-identifier device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 29] device,201 object-identifier device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2480,7 +2535,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_IDENTIFIER, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 30] device,201 object-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 30] device,201 object-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2493,7 +2548,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_NAME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 30] device,201 object-name device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 30] device,201 object-name device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2509,7 +2564,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString baCnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("Lithonia Router", baCnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 31] device,201 object-type",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 31] device,201 object-type",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2522,7 +2577,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_TYPE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 31] device,201 object-type device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 31] device,201 object-type device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2535,7 +2590,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_TYPE, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 32] device,201 system-status",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 32] device,201 system-status",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2548,7 +2603,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.SYSTEM_STATUS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 32] device,201 system-status device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 32] device,201 system-status device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2564,7 +2619,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagEnumerated baCnetApplicationTagEnumerated = (BACnetApplicationTagEnumerated) value;
                     assertEquals(List.of((byte) 0x0), baCnetApplicationTagEnumerated.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 33] device,201 vendor-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 33] device,201 vendor-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2577,7 +2632,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_NAME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 33] device,201 vendor-name device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 33] device,201 vendor-name device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2593,7 +2648,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("Alerton Technologies, Inc.", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 34] device,201 vendor-identifier",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 34] device,201 vendor-identifier",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2606,7 +2661,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_IDENTIFIER, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 34] device,201 vendor-identifier device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 34] device,201 vendor-identifier device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2619,7 +2674,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_IDENTIFIER, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 35] device,201 model-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 35] device,201 model-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2632,7 +2687,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MODEL_NAME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 35] device,201 model-name device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 35] device,201 model-name device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2648,7 +2703,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("LSi Controller", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 36] device,201 model-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 36] device,201 model-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2661,7 +2716,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.FIRMWARE_REVISION, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 36] device,201 model-name device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 36] device,201 model-name device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2677,7 +2732,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("BACtalk LSi   v3.10 A         ", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 37] device,201 application-software-version",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 37] device,201 application-software-version",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2690,7 +2745,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.APPLICATION_SOFTWARE_VERSION, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 37] device,201 application-software-version device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 37] device,201 application-software-version device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2706,7 +2761,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("LSi Controller v3.11 E", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 38] device,201 protocol-version",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 38] device,201 protocol-version",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2719,7 +2774,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_VERSION, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 38] device,201 protocol-version device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 38] device,201 protocol-version device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2735,7 +2790,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(1, BACnetApplicationTagUnsignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 39] device,201 protocol-conformance-class",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 39] device,201 protocol-conformance-class",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2748,7 +2803,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_CONFORMANCE_CLASS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 39] device,201 protocol-conformance-class device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 39] device,201 protocol-conformance-class device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2764,7 +2819,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(3, BACnetApplicationTagUnsignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 40] device,201 protocol-services-supported",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 40] device,201 protocol-services-supported",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2777,7 +2832,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 40] device,201 protocol-services-supported device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 40] device,201 protocol-services-supported device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2793,7 +2848,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagBitString BACnetApplicationTagBitString = (BACnetApplicationTagBitString) value;
                     assertEquals(Arrays.asList(true, false, true, true, false, true, true, true, false, false, true, true, true, false, true, true, true, true, true, false, true, false, false, false, false, false, true, true, false, false, true, false, true, true, true), BACnetApplicationTagBitString.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 41] device,201 protocol-object-types-supported",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 41] device,201 protocol-object-types-supported",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2806,7 +2861,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 41] device,201 protocol-object-types-supported device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 41] device,201 protocol-object-types-supported device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2822,7 +2877,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagBitString BACnetApplicationTagBitString = (BACnetApplicationTagBitString) value;
                     assertEquals(Arrays.asList(false, false, true, false, false, true, true, false, true, true, true, false, false, false, false, true, true, true), BACnetApplicationTagBitString.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 42] device,201 max-apdu-length-accepted",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 42] device,201 max-apdu-length-accepted",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2835,7 +2890,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 42] device,201 max-apdu-length-accepted device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 42] device,201 max-apdu-length-accepted device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2851,7 +2906,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(1476, BACnetApplicationTagUnsignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 43] device,201 segmentation-supported",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 43] device,201 segmentation-supported",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2864,7 +2919,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.SEGMENTATION_SUPPORTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 43] device,201 segmentation-supported device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 43] device,201 segmentation-supported device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2880,7 +2935,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagEnumerated BACnetApplicationTagEnumerated = (BACnetApplicationTagEnumerated) value;
                     assertEquals(List.of((byte) 0), BACnetApplicationTagEnumerated.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 44] device,201 local-time",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 44] device,201 local-time",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2893,7 +2948,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.LOCAL_TIME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 44] device,201 local-time device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 44] device,201 local-time device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2911,7 +2966,7 @@ public class RandomPackagesTest {
                     assertEquals(28, BACnetApplicationTagTime.getMinute());
                     assertEquals(41, BACnetApplicationTagTime.getSecond());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 45] device,201 local-date",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 45] device,201 local-date",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2924,7 +2979,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.LOCAL_DATE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 45] device,201 local-date device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 45] device,201 local-date device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2943,7 +2998,7 @@ public class RandomPackagesTest {
                     assertEquals(1, BACnetApplicationTagDate.getDayOfMonth());
                     assertEquals(4, BACnetApplicationTagDate.getDayOfWeek());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 46] device,201 utc-offset",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 46] device,201 utc-offset",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2956,7 +3011,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.UTC_OFFSET, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 46] device,201 utc-offset device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 46] device,201 utc-offset device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2972,7 +3027,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagSignedInteger BACnetApplicationTagSignedInteger = (BACnetApplicationTagSignedInteger) value;
                     assertEquals(BigInteger.ZERO, BACnetApplicationTagSignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 47] device,201 daylights-savings-status",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 47] device,201 daylights-savings-status",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -2985,7 +3040,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.DAYLIGHT_SAVINGS_STATUS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 47] device,201 daylights-savings-status device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 47] device,201 daylights-savings-status device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3001,7 +3056,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagBoolean BACnetApplicationTagBoolean = (BACnetApplicationTagBoolean) value;
                     assertTrue(BACnetApplicationTagBoolean.getIsFalse());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 48] device,201 apdu-segment-timeout",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 48] device,201 apdu-segment-timeout",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3014,7 +3069,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.APDU_SEGMENT_TIMEOUT, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 48] device,201 apdu-segment-timeout device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 48] device,201 apdu-segment-timeout device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3030,7 +3085,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(6000, BACnetApplicationTagUnsignedInteger.getValueUint16());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 49] device,201 apdu-timeout",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 49] device,201 apdu-timeout",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3043,7 +3098,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.APDU_TIMEOUT, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 49] device,201 apdu-timeout device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 49] device,201 apdu-timeout device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3059,7 +3114,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(6000, BACnetApplicationTagUnsignedInteger.getValueUint16());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 50] device,201 number-of-APDU-retries",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 50] device,201 number-of-APDU-retries",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3072,7 +3127,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.NUMBER_OF_APDU_RETRIES, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 50] device,201 number-of-APDU-retries device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 50] device,201 number-of-APDU-retries device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3088,7 +3143,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals((short) 3, BACnetApplicationTagUnsignedInteger.getValueUint8());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 51] device,201 time-synchronization-recipients",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 51] device,201 time-synchronization-recipients",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3101,7 +3156,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.TIME_SYNCHRONIZATION_RECIPIENTS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("ERROR           readProperty[ 51] device,201",
+            DynamicTest.dynamicTest("No. TODO - ERROR           readProperty[ 51] device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3111,7 +3166,7 @@ public class RandomPackagesTest {
                     // TODO: use proper enums
                     assertEquals(List.of((byte) 32), baCnetErrorReadProperty.getErrorCode().getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 52] device,201 max-master",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 52] device,201 max-master",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3124,7 +3179,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MAX_MASTER, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 52] device,201 max-master device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 52] device,201 max-master device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3140,7 +3195,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals((short) 127, BACnetApplicationTagUnsignedInteger.getValueUint8());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 53] device,201 max-info-frames",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 53] device,201 max-info-frames",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3153,7 +3208,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MAX_INFO_FRAMES, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 53] device,201 max-info-frames device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 53] device,201 max-info-frames device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3169,7 +3224,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals((short) 40, BACnetApplicationTagUnsignedInteger.getValueUint8());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 54] device,201 device-address-binding",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 54] device,201 device-address-binding",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3182,7 +3237,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.DEVICE_ADDRESS_BINDING, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 54] device,201 device-address-binding device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 54] device,201 device-address-binding device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3195,7 +3250,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.DEVICE_ADDRESS_BINDING, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 55] device,201 (514) Vendor Proprietary Value",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 55] device,201 (514) Vendor Proprietary Value",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3208,7 +3263,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_PROPRIETARY_VALUE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 55] device,201 (514) Vendor Proprietary Value device,201",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 55] device,201 (514) Vendor Proprietary Value device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3224,7 +3279,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagBoolean BACnetApplicationTagBoolean = (BACnetApplicationTagBoolean) value;
                     assertTrue(BACnetApplicationTagBoolean.getIsFalse());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 56] device,201 (515) Vendor Proprietary Value device,201",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 56] device,201 (515) Vendor Proprietary Value device,201",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3237,7 +3292,7 @@ public class RandomPackagesTest {
                     assertEquals(201, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_PROPRIETARY_VALUE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 56] device,201 Error",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 56] device,201 Error",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3247,7 +3302,7 @@ public class RandomPackagesTest {
                     // TODO: use proper enums
                     assertEquals(List.of((byte) 32), baCnetErrorReadProperty.getErrorCode().getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 57] device,61 object-identifier",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 57] device,61 object-identifier",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3260,7 +3315,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_IDENTIFIER, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 57] object-identifier device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 57] object-identifier device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3277,7 +3332,7 @@ public class RandomPackagesTest {
                     assertEquals(BACnetObjectType.DEVICE, BACnetApplicationTagObjectIdentifier.getObjectType());
                     assertEquals(61, BACnetApplicationTagObjectIdentifier.getInstanceNumber());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 58] device,61 object-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 58] device,61 object-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3290,7 +3345,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_NAME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 58] object-name device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 58] object-name device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3306,7 +3361,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagObjectIdentifier = (BACnetApplicationTagCharacterString) value;
                     assertEquals("SYNERGY", BACnetApplicationTagObjectIdentifier.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 59] device,61 object-type",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 59] device,61 object-type",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3319,7 +3374,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.OBJECT_TYPE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 59] object-type device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 59] object-type device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3335,7 +3390,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagEnumerated baCnetApplicationTagEnumerated = (BACnetApplicationTagEnumerated) value;
                     assertEquals(List.of((byte) 8), baCnetApplicationTagEnumerated.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 60] device,61 system-status",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 60] device,61 system-status",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3348,7 +3403,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.SYSTEM_STATUS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 60] device,61 system-status device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 60] device,61 system-status device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3364,7 +3419,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagEnumerated baCnetApplicationTagEnumerated = (BACnetApplicationTagEnumerated) value;
                     assertEquals(List.of((byte) 0x0), baCnetApplicationTagEnumerated.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 61] device,61 vendor-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 61] device,61 vendor-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3377,7 +3432,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_NAME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 61] device,61 vendor-name device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 61] device,61 vendor-name device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3393,7 +3448,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("Lithonia Lighting, Inc.", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 62] device,61 vendor-identifier",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 62] device,61 vendor-identifier",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3406,7 +3461,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_IDENTIFIER, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 62] device,61 vendor-identifier device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 62] device,61 vendor-identifier device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3419,7 +3474,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_IDENTIFIER, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 63] device,61 model-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 63] device,61 model-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3432,7 +3487,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MODEL_NAME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 63] device,61 model-name device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 63] device,61 model-name device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3448,7 +3503,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("SYSC MLX", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 64] device,61 model-name",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 64] device,61 model-name",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3461,7 +3516,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.FIRMWARE_REVISION, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 64] device,61 model-name device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 64] device,61 model-name device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3477,7 +3532,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("2x62i", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 65] device,61 application-software-version",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 65] device,61 application-software-version",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3490,7 +3545,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.APPLICATION_SOFTWARE_VERSION, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 65] device,61 application-software-version device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 65] device,61 application-software-version device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3506,7 +3561,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagCharacterString BACnetApplicationTagCharacterString = (BACnetApplicationTagCharacterString) value;
                     assertEquals("10-Nov-2004", BACnetApplicationTagCharacterString.getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 66] device,61 protocol-version",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 66] device,61 protocol-version",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3519,7 +3574,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_VERSION, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 66] device,61 protocol-version device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 66] device,61 protocol-version device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3535,7 +3590,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(1, BACnetApplicationTagUnsignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 67] device,61 protocol-conformance-class",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 67] device,61 protocol-conformance-class",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3548,7 +3603,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_CONFORMANCE_CLASS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 67] device,61 protocol-conformance-class device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 67] device,61 protocol-conformance-class device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3564,7 +3619,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(2, BACnetApplicationTagUnsignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 68] device,61 protocol-services-supported",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 68] device,61 protocol-services-supported",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3577,7 +3632,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_SERVICES_SUPPORTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 68] device,61 protocol-services-supported device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 68] device,61 protocol-services-supported device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3593,7 +3648,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagBitString BACnetApplicationTagBitString = (BACnetApplicationTagBitString) value;
                     assertEquals(Arrays.asList(false, false, false, false, false, false, true, true, false, false, false, false, true, false, true, true, false, true, false, false, true, false, false, false, false, false, true, true, false, false, false, false, true, true, true), BACnetApplicationTagBitString.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 69] device,61 protocol-object-types-supported",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 69] device,61 protocol-object-types-supported",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3606,7 +3661,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.PROTOCOL_OBJECT_TYPES_SUPPORTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 69] device,61 protocol-object-types-supported device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 69] device,61 protocol-object-types-supported device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3622,7 +3677,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagBitString BACnetApplicationTagBitString = (BACnetApplicationTagBitString) value;
                     assertEquals(Arrays.asList(true, true, true, true, true, true, false, false, true, false, true, false, false, false, false, false, false, false, false, false, false), BACnetApplicationTagBitString.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 70] device,61 max-apdu-length-accepted",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 70] device,61 max-apdu-length-accepted",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3635,7 +3690,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MAX_APDU_LENGTH_ACCEPTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 70] device,61 max-apdu-length-accepted device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 70] device,61 max-apdu-length-accepted device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3651,7 +3706,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(480, BACnetApplicationTagUnsignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 71] device,61 segmentation-supported",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 71] device,61 segmentation-supported",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3664,7 +3719,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.SEGMENTATION_SUPPORTED, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 71] device,61 segmentation-supported device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 71] device,61 segmentation-supported device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3680,7 +3735,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagEnumerated BACnetApplicationTagEnumerated = (BACnetApplicationTagEnumerated) value;
                     assertEquals(List.of((byte) 0), BACnetApplicationTagEnumerated.getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 72] device,61 local-time",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 72] device,61 local-time",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3693,7 +3748,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.LOCAL_TIME, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 72] device,61 local-time device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 72] device,61 local-time device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3711,7 +3766,7 @@ public class RandomPackagesTest {
                     assertEquals(26, BACnetApplicationTagTime.getMinute());
                     assertEquals(40, BACnetApplicationTagTime.getSecond());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 73] device,61 local-date",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 73] device,61 local-date",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3724,7 +3779,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.LOCAL_DATE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 73] device,61 local-date device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 73] device,61 local-date device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3743,7 +3798,7 @@ public class RandomPackagesTest {
                     assertEquals(1, BACnetApplicationTagDate.getDayOfMonth());
                     assertEquals(-1, BACnetApplicationTagDate.getDayOfWeek());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 74] device,61 utc-offset",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 74] device,61 utc-offset",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3756,7 +3811,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.UTC_OFFSET, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 74] device,61 utc-offset device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 74] device,61 utc-offset device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3772,7 +3827,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagSignedInteger BACnetApplicationTagSignedInteger = (BACnetApplicationTagSignedInteger) value;
                     assertEquals(BigInteger.valueOf(-300), BACnetApplicationTagSignedInteger.getActualValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 75] device,61 daylights-savings-status",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 75] device,61 daylights-savings-status",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3785,7 +3840,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.DAYLIGHT_SAVINGS_STATUS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 75] device,61 daylights-savings-status device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 75] device,61 daylights-savings-status device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3801,7 +3856,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagBoolean BACnetApplicationTagBoolean = (BACnetApplicationTagBoolean) value;
                     assertTrue(BACnetApplicationTagBoolean.getIsTrue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 76] device,61 apdu-segment-timeout",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 76] device,61 apdu-segment-timeout",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3814,7 +3869,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.APDU_SEGMENT_TIMEOUT, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 76] device,61 apdu-segment-timeout device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 76] device,61 apdu-segment-timeout device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3830,7 +3885,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(8000, BACnetApplicationTagUnsignedInteger.getValueUint16());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 77] device,61 apdu-timeout",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 77] device,61 apdu-timeout",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3843,7 +3898,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.APDU_TIMEOUT, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 77] device,61 apdu-timeout device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 77] device,61 apdu-timeout device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3859,7 +3914,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals(8000, BACnetApplicationTagUnsignedInteger.getValueUint16());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 78] device,61 number-of-APDU-retries",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 78] device,61 number-of-APDU-retries",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3872,7 +3927,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.NUMBER_OF_APDU_RETRIES, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 78] device,61 number-of-APDU-retries device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 78] device,61 number-of-APDU-retries device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3888,7 +3943,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals((short) 3, BACnetApplicationTagUnsignedInteger.getValueUint8());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 79] device,61 time-synchronization-recipients",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 79] device,61 time-synchronization-recipients",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3901,7 +3956,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.TIME_SYNCHRONIZATION_RECIPIENTS, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("ERROR           readProperty[ 79] device,61",
+            DynamicTest.dynamicTest("No. TODO - ERROR           readProperty[ 79] device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3911,7 +3966,7 @@ public class RandomPackagesTest {
                     // TODO: use proper enums
                     assertEquals(List.of((byte) 32), baCnetErrorReadProperty.getErrorCode().getData());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 80] device,61 max-master",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 80] device,61 max-master",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3924,7 +3979,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MAX_MASTER, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 80] device,61 max-master device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 80] device,61 max-master device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3940,7 +3995,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals((short) 127, BACnetApplicationTagUnsignedInteger.getValueUint8());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 81] device,61 max-info-frames",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 81] device,61 max-info-frames",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3953,7 +4008,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.MAX_INFO_FRAMES, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 81] device,61 max-info-frames device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 81] device,61 max-info-frames device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3969,7 +4024,7 @@ public class RandomPackagesTest {
                     BACnetApplicationTagUnsignedInteger BACnetApplicationTagUnsignedInteger = (BACnetApplicationTagUnsignedInteger) value;
                     assertEquals((short) 1, BACnetApplicationTagUnsignedInteger.getValueUint8());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 82] device,61 device-address-binding",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 82] device,61 device-address-binding",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3982,7 +4037,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.DEVICE_ADDRESS_BINDING, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 82] device,61 device-address-binding device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 82] device,61 device-address-binding device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -3995,7 +4050,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.DEVICE_ADDRESS_BINDING, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 83] device,61 (514) Vendor Proprietary Value",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 83] device,61 (514) Vendor Proprietary Value",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -4008,7 +4063,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_PROPRIETARY_VALUE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 83] device,61 (514) Vendor Proprietary Value device,61",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 83] device,61 (514) Vendor Proprietary Value device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -4026,7 +4081,7 @@ public class RandomPackagesTest {
                     assertEquals(11, baCnetApplicationTagTime.getMinute());
                     assertEquals(38, baCnetApplicationTagTime.getSecond());
                 }),
-            DynamicTest.dynamicTest("Confirmed-REQ   readProperty[ 84] device,61 (515) Vendor Proprietary Value device,61",
+            DynamicTest.dynamicTest("No. TODO - Confirmed-REQ   readProperty[ 84] device,61 (515) Vendor Proprietary Value device,61",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
@@ -4039,7 +4094,7 @@ public class RandomPackagesTest {
                     assertEquals(61, baCnetConfirmedServiceRequestReadProperty.getObjectIdentifier().getInstanceNumber());
                     assertEquals(BACnetPropertyIdentifier.VENDOR_PROPRIETARY_VALUE, baCnetConfirmedServiceRequestReadProperty.getPropertyIdentifier().getValue());
                 }),
-            DynamicTest.dynamicTest("Complex-ACK     readProperty[ 84] device,61 Error",
+            DynamicTest.dynamicTest("No. TODO - Complex-ACK     readProperty[ 84] device,61 Error",
                 () -> {
                     BVLC bvlc = pcapEvaluator.nextBVLC();
                     dump(bvlc);
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index 63a7827..108387d 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -237,7 +237,7 @@
             [simple   BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') monitoredObjectIdentifier   ]
             [simple   BACnetContextTagBoolean('2', 'BACnetDataType.BOOLEAN')                           issueConfirmed              ]
             [simple   BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER')          lifetimeInSeconds           ]
-            [simple   BACnetPropertyValues('4')                                                        listOfValues                ]
+            [simple   BACnetPropertyValues('4', 'monitoredObjectIdentifier.objectType')                     listOfValues                ]
         ]
         ['0x02' BACnetConfirmedServiceRequestConfirmedEventNotification // Spec complete
             [simple   BACnetContextTagUnsignedInteger('0', 'BACnetDataType.UNSIGNED_INTEGER')          processIdentifier            ]
@@ -252,7 +252,7 @@
             [optional BACnetContextTagBoolean('9', 'BACnetDataType.BOOLEAN')                           ackRequired                  ]
             [optional BACnetContextTagEventState('10', 'BACnetDataType.EVENT_STATE')                   fromState                    ]
             [simple   BACnetContextTagEventState('11', 'BACnetDataType.EVENT_STATE')                   toState                      ]
-            [optional BACnetNotificationParameters('12')                                               eventValues                  ]
+            [optional BACnetNotificationParameters('12', 'eventObjectIdentifier.objectType')                eventValues                  ]
         ]
 
         ['0x04' BACnetConfirmedServiceRequestGetEnrollmentSummary
@@ -293,7 +293,7 @@
             [simple   BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')     objectIdentifier    ]
             [simple   BACnetContextTagPropertyIdentifier('1', 'BACnetDataType.BACNET_PROPERTY_IDENTIFIER') propertyIdentifier  ]
             [optional BACnetContextTagUnsignedInteger('2', 'BACnetDataType.UNSIGNED_INTEGER')              arrayIndex          ]
-            [simple   BACnetConstructedData('3')                                                           propertyValue       ]
+            [simple   BACnetConstructedData('3', 'objectIdentifier.objectType', 'propertyIdentifier')           propertyValue       ]
             [optional BACnetContextTagUnsignedInteger('4', 'BACnetDataType.UNSIGNED_INTEGER')              priority            ]
         ]
         ['0x10' BACnetConfirmedServiceRequestWritePropertyMultiple
@@ -363,14 +363,14 @@
             [simple     BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') monitoredDeviceIdentifier   ]
             [simple     BACnetContextTagObjectIdentifier('2', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER') monitoredObjectIdentifier   ]
             [simple     BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER')          lifetimeInSeconds           ]
-            [simple     BACnetPropertyValues('4')                                                        listOfValues                ]
+            [simple     BACnetPropertyValues('4', 'monitoredObjectIdentifier.objectType')                     listOfValues                ]
         ]
         ['0x03' BACnetUnconfirmedServiceRequestUnconfirmedEventNotification
         ]
         ['0x04' BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer
             [simple     BACnetContextTagUnsignedInteger('1', 'BACnetDataType.UNSIGNED_INTEGER')          vendorId                    ]// TODO: vendor list?
             [simple     BACnetContextTagUnsignedInteger('2', 'BACnetDataType.UNSIGNED_INTEGER')          serviceNumber               ]
-            [optional   BACnetPropertyValues('2')                                                        serviceParameters           ]
+            [optional   BACnetPropertyValues('2', 'BACnetObjectType.UNKNOWN')                              serviceParameters           ] //TODO: what should we use as object identifier here?
         ]
         ['0x05' BACnetUnconfirmedServiceRequestUnconfirmedTextMessage
         ]
@@ -433,7 +433,7 @@
             [simple BACnetContextTagObjectIdentifier('0', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')     objectIdentifier   ]
             [simple BACnetContextTagPropertyIdentifier('1', 'BACnetDataType.BACNET_PROPERTY_IDENTIFIER') propertyIdentifier ]
             [optional BACnetContextTagUnsignedInteger('2', 'BACnetDataType.UNSIGNED_INTEGER')            arrayIndex         ]
-            [optional BACnetConstructedData('3')                                                         values             ]
+            [optional BACnetConstructedData('3', 'objectIdentifier.objectType', 'propertyIdentifier')         values             ]
         ]
         ['0x0E' BACnetServiceAckReadPropertyMultiple
 
@@ -552,7 +552,7 @@
     [simple BACnetApplicationTagEnumerated errorCode]
 ]
 
-[type BACnetNotificationParameters(uint 8 tagNumber)
+[type BACnetNotificationParameters(uint 8 tagNumber, BACnetObjectType objectType)
     [simple     BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
                             openingTag
     ]
@@ -605,7 +605,7 @@
         ]
         // TODO: implement other cases
         ['6' BACnetNotificationParametersComplexEventType(uint 8 peekedTagNumber)
-            [simple     BACnetPropertyValues('peekedTagNumber')
+            [simple     BACnetPropertyValues('peekedTagNumber', 'objectType')
                         listOfValues
             ]
         ]
@@ -732,24 +732,24 @@
     ]
 ]
 
-[type BACnetPropertyValues(uint 8 tagNumber)
+[type BACnetPropertyValues(uint 8 tagNumber, BACnetObjectType objectType)
     [simple BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
             innerOpeningTag
     ]
-    [array  BACnetPropertyValue
+    [array  BACnetPropertyValue('objectType')
             data
             terminated
-            'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, tagNumber)'
+            'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'
     ]
     [simple BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
             innerClosingTag
     ]
 ]
 
-[type BACnetPropertyValue
+[type BACnetPropertyValue(BACnetObjectType objectType)
     [simple   BACnetContextTagPropertyIdentifier('0', 'BACnetDataType.BACNET_PROPERTY_IDENTIFIER') propertyIdentifier  ]
     [optional BACnetContextTagUnsignedInteger('1', 'BACnetDataType.UNSIGNED_INTEGER')              propertyArrayIndex  ]
-    [optional BACnetConstructedDataElement                                                         propertyValue       ]
+    [optional BACnetConstructedDataElement('objectType', 'propertyIdentifier')                     propertyValue       ]
     [optional BACnetContextTagUnsignedInteger('3', 'BACnetDataType.UNSIGNED_INTEGER')              priority            ]
 ]
 
@@ -1137,29 +1137,43 @@
     ]
 ]
 
-[type BACnetConstructedData(uint 8 tagNumber)
+[type BACnetConstructedData(uint 8 tagNumber, BACnetObjectType objectType, BACnetContextTagPropertyIdentifier propertyIdentifierArgument)
     [optional       BACnetOpeningTag('tagNumber', 'BACnetDataType.OPENING_TAG')
-                    openingTag
+                        openingTag
     ]
-    [array          BACnetConstructedDataElement
-                    data
+    //TODO: maybe more array into sub types later
+    [array          BACnetConstructedDataElement('objectType', 'propertyIdentifierArgument')
+                        data
                     terminated
-                    'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, tagNumber)'
+                    'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, objectType == BACnetObjectType.LIFE_SAFETY_ZONE, tagNumber)'
     ]
-    [optional       BACnetContextTagPropertyIdentifier('0', 'BACnetDataType.BACNET_PROPERTY_IDENTIFIER')
-                    propertyIdentifier
+    [virtual    bit     hasData 'COUNT(data) == 0']
+    // TODO: maybe its better to typeswitch the elements
+    [typeSwitch objectType, propertyIdentifierArgument
+        ['LIFE_SAFETY_ZONE' BACnetConstructedDataLifeSafetyZone
+            [array  BACnetContextTagObjectIdentifier('1', 'BACnetDataType.BACNET_OBJECT_IDENTIFIER')
+                        zones
+                    terminated
+                    'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'
+            ]
+        ]
+        [BACnetConstructedDataUnspecified(bit hasData)
+            [optional       BACnetContextTagPropertyIdentifier('0', 'BACnetDataType.BACNET_PROPERTY_IDENTIFIER')
+                            propertyIdentifier
 
-                    'COUNT(data) == 0'
-    ]
-    [optional       BACnetApplicationTag
-                    content 'COUNT(data) == 0'
+                            'hasData'
+            ]
+            [optional       BACnetApplicationTag
+                            content 'hasData'
+            ]
+        ]
     ]
     [optional       BACnetClosingTag('tagNumber', 'BACnetDataType.CLOSING_TAG')
-                    closingTag
+                        closingTag
     ]
 ]
 
-[type BACnetConstructedDataElement
+[type BACnetConstructedDataElement(BACnetObjectType objectType, BACnetContextTagPropertyIdentifier propertyIdentifier)
     [peek       BACnetTagHeader
                             peekedTagHeader
     ]
@@ -1169,9 +1183,9 @@
     [virtual    bit    isContextTag        '!isConstructedData && !isApplicationTag'                       ]
     [optional   BACnetApplicationTag
                        applicationTag      'isApplicationTag'                                              ]
-    [optional   BACnetContextTag('peekedTagNumber', 'STATIC_CALL("guessDataType")')
+    [optional   BACnetContextTag('peekedTagNumber', 'STATIC_CALL("guessDataType", objectType)')
                        contextTag          'isContextTag'                                                  ]
-    [optional   BACnetConstructedData('peekedTagNumber')
+    [optional   BACnetConstructedData('peekedTagNumber', 'objectType', 'propertyIdentifier')
                        constructedData     'isConstructedData'                                             ]
 ]
 
@@ -1385,6 +1399,9 @@
     ['31' TIMER]
     ['20' TREND_LOG]
     ['27' TREND_LOG_MULTIPLE]
+
+    // plc4x Value
+    ['0x3FF' UNKNOWN]
 ]
 
 [enum uint 32 BACnetPropertyIdentifier