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/03/07 13:01:19 UTC

[plc4x] branch develop updated: refactor(plc4go/codegen): add parent interface to child interface

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 42b529f  refactor(plc4go/codegen): add parent interface to child interface
42b529f is described below

commit 42b529f5bee9126b9035f48e149f30c3fb80dd56
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Mon Mar 7 14:01:09 2022 +0100

    refactor(plc4go/codegen): add parent interface to child interface
---
 .../language-go/src/main/resources/templates/go/model-template.go.ftlh | 3 +++
 .../plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go  | 1 +
 .../plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go | 1 +
 .../plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go        | 1 +
 .../plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go       | 1 +
 .../internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go  | 1 +
 .../model/DF1CommandResponseMessageProtectedTypedLogicalRead.go        | 1 +
 .../abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go       | 1 +
 .../plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go      | 1 +
 .../plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go     | 1 +
 .../plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go   | 1 +
 .../plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go  | 1 +
 .../plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go         | 1 +
 .../plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go        | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go        | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go       | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go  | 1 +
 .../plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go         | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go | 1 +
 .../internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go   | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go           | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go          | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go      | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go     | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go      | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go     | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go   | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go  | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go          | 1 +
 plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go         | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go           | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go      | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go   | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go           | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go          | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go      | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go       | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go         | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagBitString.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go     | 1 +
 .../bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go    | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagDate.go        | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagDouble.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go  | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagNull.go        | 1 +
 .../bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagReal.go        | 1 +
 .../bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetApplicationTagTime.go        | 1 +
 .../bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go    | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go    | 1 +
 .../readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go         | 1 +
 .../readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go        | 1 +
 .../model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go         | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go  | 1 +
 .../readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go        | 1 +
 .../readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go   | 1 +
 .../readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go    | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go  | 1 +
 .../readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go   | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go     | 1 +
 .../readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go    | 1 +
 .../model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go   | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go   | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestAddListElement.go     | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go     | 1 +
 .../model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go         | 1 +
 .../model/BACnetConfirmedServiceRequestAtomicReadFileStream.go         | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go    | 1 +
 .../model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go     | 1 +
 .../BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go   | 1 +
 .../model/BACnetConfirmedServiceRequestConfirmedEventNotification.go   | 1 +
 .../model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go     | 1 +
 .../model/BACnetConfirmedServiceRequestConfirmedTextMessage.go         | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestConfirmedUnknown.go   | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestCreateObject.go       | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go       | 1 +
 .../model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go   | 1 +
 .../model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go         | 1 +
 .../model/BACnetConfirmedServiceRequestGetEventInformation.go          | 1 +
 .../model/BACnetConfirmedServiceRequestLifeSafetyOperation.go          | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestReadProperty.go       | 1 +
 .../model/BACnetConfirmedServiceRequestReadPropertyMultiple.go         | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go  | 1 +
 .../model/BACnetConfirmedServiceRequestRemovedAuthenticate.go          | 1 +
 .../BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go     | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go  | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go       | 1 +
 .../model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go         | 1 +
 .../model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go   | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go    | 1 +
 .../bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go    | 1 +
 .../readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go      | 1 +
 .../model/BACnetConfirmedServiceRequestWritePropertyMultiple.go        | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetConstructedDataCommand.go    | 1 +
 .../bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go   | 1 +
 .../bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go    | 1 +
 .../bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go       | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go       | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go         | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go     | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEmpty.go  | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go       | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go      | 1 +
 .../bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go       | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go     | 1 +
 .../bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go     | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go   | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorAcknowledgeAlarm.go     | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go       | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go      | 1 +
 .../bacnetip/readwrite/model/BACnetErrorConfirmedEventNotification.go  | 1 +
 .../bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go    | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go         | 1 +
 .../bacnetip/readwrite/model/BACnetErrorDeviceCommunicationProtocol.go | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go  | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorPasswordFailure.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go         | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go  | 1 +
 .../readwrite/model/BACnetErrorRemovedReadPropertyConditional.go       | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorUnknown.go  | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go   | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetErrorWriteProperty.go        | 1 +
 .../readwrite/model/BACnetNotificationParametersBufferReady.go         | 1 +
 .../readwrite/model/BACnetNotificationParametersChangeOfBitString.go   | 1 +
 .../readwrite/model/BACnetNotificationParametersChangeOfState.go       | 1 +
 .../readwrite/model/BACnetNotificationParametersChangeOfValue.go       | 1 +
 .../BACnetNotificationParametersChangeOfValueNewValueChangedBits.go    | 1 +
 .../BACnetNotificationParametersChangeOfValueNewValueChangedValue.go   | 1 +
 .../readwrite/model/BACnetNotificationParametersComplexEventType.go    | 1 +
 .../bacnetip/readwrite/model/BACnetNotificationParametersExtended.go   | 1 +
 .../readwrite/model/BACnetNotificationParametersFloatingLimit.go       | 1 +
 .../bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go | 1 +
 .../readwrite/model/BACnetNotificationParametersUnsignedRange.go       | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go    | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetPropertyStatesAction.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBinaryValue.go | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBoolean.go     | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go  | 1 +
 .../bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileRecord.go   | 1 +
 .../bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStream.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go | 1 +
 .../readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go        | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go    | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go | 1 +
 .../bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go   | 1 +
 .../bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go    | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go    | 1 +
 .../bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go       | 1 +
 .../bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go    | 1 +
 .../readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go  | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetTimeStampDateTime.go         | 1 +
 .../plc4go/bacnetip/readwrite/model/BACnetTimeStampSequence.go         | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampTime.go | 1 +
 .../bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go     | 1 +
 .../bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go   | 1 +
 .../model/BACnetUnconfirmedServiceRequestTimeSynchronization.go        | 1 +
 .../model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go     | 1 +
 .../model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go | 1 +
 ...ACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go | 1 +
 .../BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go     | 1 +
 .../model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go | 1 +
 .../model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go     | 1 +
 .../model/BACnetUnconfirmedServiceRequestUnconfirmedUnknown.go         | 1 +
 .../bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go  | 1 +
 .../bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go   | 1 +
 .../readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go       | 1 +
 .../bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go      | 1 +
 .../bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go       | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go       | 1 +
 .../plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go         | 1 +
 .../bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go     | 1 +
 .../bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go  | 1 +
 .../plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go   | 1 +
 .../plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go       | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go          | 1 +
 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go      | 1 +
 .../bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go    | 1 +
 .../bacnetip/readwrite/model/NLMDisconnectConnectionToNetwork.go       | 1 +
 .../plc4go/bacnetip/readwrite/model/NLMEstablishConnectionToNetwork.go | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go  | 1 +
 .../plc4go/bacnetip/readwrite/model/NLMICouldBeRouterToNetwork.go      | 1 +
 .../plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTable.go        | 1 +
 .../plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTableAck.go     | 1 +
 .../plc4go/bacnetip/readwrite/model/NLMRejectRouterToNetwork.go        | 1 +
 .../plc4go/bacnetip/readwrite/model/NLMRouterAvailableToNetwork.go     | 1 +
 .../internal/plc4go/bacnetip/readwrite/model/NLMRouterBusyToNetwork.go | 1 +
 .../plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go         | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyAcknowledge.go | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyReply.go       | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatus.go      | 1 +
 .../internal/plc4go/cbus/readwrite/model/CALDataReplyStatusExtended.go | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestGetStatus.go | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestIdentify.go  | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestRecall.go    | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestReset.go     | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALReplyLong.go            | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALReplyReply.go           | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CALReplyShort.go           | 1 +
 .../plc4go/cbus/readwrite/model/CBusCommandPointToMultiPoint.go        | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPoint.go | 1 +
 .../plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPoint.go | 1 +
 .../cbus/readwrite/model/CBusCommandPointToPointToMultiPointNormal.go  | 1 +
 .../cbus/readwrite/model/CBusCommandPointToPointToMultiPointStatus.go  | 1 +
 .../plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandNormal.go  | 1 +
 .../plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandStatus.go  | 1 +
 .../plc4go/cbus/readwrite/model/CBusPointToPointCommandDirect.go       | 1 +
 .../plc4go/cbus/readwrite/model/CBusPointToPointCommandIndirect.go     | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationReply.go       | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationSuccessful.go  | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/ExclamationMarkReply.go    | 1 +
 .../cbus/readwrite/model/IdentifyReplyCommandCurrentSenseLevels.go     | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandDSIStatus.go       | 1 +
 .../internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDelays.go | 1 +
 .../readwrite/model/IdentifyReplyCommandExtendedDiagnosticSummary.go   | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareSummary.go | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareVersion.go | 1 +
 .../cbus/readwrite/model/IdentifyReplyCommandGAVPhysicalAddresses.go   | 1 +
 .../cbus/readwrite/model/IdentifyReplyCommandGAVValuesCurrent.go       | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesStored.go | 1 +
 .../cbus/readwrite/model/IdentifyReplyCommandLogicalAssignment.go      | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandManufacturer.go    | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandMaximumLevels.go   | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandMinimumLevels.go   | 1 +
 .../cbus/readwrite/model/IdentifyReplyCommandNetworkTerminalLevels.go  | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkVoltage.go  | 1 +
 .../cbus/readwrite/model/IdentifyReplyCommandOutputUnitSummary.go      | 1 +
 .../plc4go/cbus/readwrite/model/IdentifyReplyCommandTerminalLevels.go  | 1 +
 .../internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandType.go   | 1 +
 .../plc4go/cbus/readwrite/model/MonitoredSALLongFormSmartMode.go       | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALReply.go       | 1 +
 .../plc4go/cbus/readwrite/model/MonitoredSALShortFormBasicMode.go      | 1 +
 .../internal/plc4go/cbus/readwrite/model/NotTransmittedCorruption.go   | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedSyncLoss.go  | 1 +
 .../plc4go/cbus/readwrite/model/NotTransmittedToManyReTransmissions.go | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedTooLong.go   | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/ParameterChangeReply.go    | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/PowerUpReply.go            | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/SALDataOff.go              | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/SALDataOn.go               | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/SALDataRampToLevel.go      | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/SALDataTerminateRamp.go    | 1 +
 .../internal/plc4go/cbus/readwrite/model/StatusRequestBinaryState.go   | 1 +
 plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestLevel.go      | 1 +
 plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go    | 1 +
 plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go | 1 +
 plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go | 1 +
 .../internal/plc4go/df1/readwrite/model/DF1UnprotectedReadRequest.go   | 1 +
 .../internal/plc4go/df1/readwrite/model/DF1UnprotectedReadResponse.go  | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/CipRRData.go                | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go           | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go          | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go    | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go          | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go         | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/EipConnectionRequest.go     | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/EipDisconnectRequest.go     | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go   | 1 +
 plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go  | 1 +
 .../plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go    | 1 +
 .../plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go | 1 +
 .../plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go         | 1 +
 plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go  | 1 +
 .../plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go        | 1 +
 .../internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go  | 1 +
 .../internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go   | 1 +
 .../internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go | 1 +
 .../firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go   | 1 +
 .../firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go  | 1 +
 .../firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go   | 1 +
 .../firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go  | 1 +
 .../firmata/readwrite/model/SysexCommandAnalogMappingResponse.go       | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go      | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go   | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go       | 1 +
 .../internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go  | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go        | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go     | 1 +
 .../firmata/readwrite/model/SysexCommandReportFirmwareRequest.go       | 1 +
 .../firmata/readwrite/model/SysexCommandReportFirmwareResponse.go      | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go     | 1 +
 .../internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go  | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go     | 1 +
 .../plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go      | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go  | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go   | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go     | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go     | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go   | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go       | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go     | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go    | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go       | 1 +
 .../knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go  | 1 +
 .../readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go        | 1 +
 .../readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go    | 1 +
 .../readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go       | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go   | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go | 1 +
 .../readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go         | 1 +
 .../knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go      | 1 +
 .../knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go  | 1 +
 .../knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go     | 1 +
 .../readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go    | 1 +
 .../model/ApduDataExtIndividualAddressSerialNumberResponse.go          | 1 +
 .../readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go   | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go         | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go   | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go       | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go | 1 +
 .../knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go       | 1 +
 .../knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go     | 1 +
 .../knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go     | 1 +
 .../knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go       | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go   | 1 +
 .../knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go     | 1 +
 .../knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go     | 1 +
 .../knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go     | 1 +
 .../knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go    | 1 +
 .../knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go    | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go      | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go         | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go   | 1 +
 .../knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go      | 1 +
 .../plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go  | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go       | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go     | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go | 1 +
 .../readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go         | 1 +
 .../readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go      | 1 +
 .../plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go  | 1 +
 .../plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go  | 1 +
 .../plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go   | 1 +
 .../readwrite/model/ConnectionRequestInformationDeviceManagement.go    | 1 +
 .../readwrite/model/ConnectionRequestInformationTunnelConnection.go    | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go  | 1 +
 .../readwrite/model/ConnectionResponseDataBlockDeviceManagement.go     | 1 +
 .../readwrite/model/ConnectionResponseDataBlockTunnelConnection.go     | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go | 1 +
 .../plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go         | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go | 1 +
 .../plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go      | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go   | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go  | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go  | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go  | 1 +
 .../plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go        | 1 +
 .../plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go     | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go   | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go  | 1 +
 .../knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go          | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go            | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go       | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go       | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go            | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go            | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go           | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go             | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go             | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go             | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go        | 1 +
 .../internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go        | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go       | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go       | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go           | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go           | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go   | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go       | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go      | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go   | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go   | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go  | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go    | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go   | 1 +
 plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go      | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go        | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go       | 1 +
 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go        | 1 +
 .../modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go       | 1 +
 .../modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go      | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go    | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go   | 1 +
 .../modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go | 1 +
 .../readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go       | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go         | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go        | 1 +
 .../modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go | 1 +
 .../readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go       | 1 +
 .../modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go       | 1 +
 .../modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go      | 1 +
 .../modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go      | 1 +
 .../modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go     | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go     | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go    | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go    | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go   | 1 +
 .../modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go     | 1 +
 .../modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go    | 1 +
 .../modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go       | 1 +
 .../modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go      | 1 +
 .../model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go         | 1 +
 .../model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go        | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go    | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go   | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go   | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go  | 1 +
 .../modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go       | 1 +
 .../modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go      | 1 +
 .../readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go   | 1 +
 .../readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go  | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go   | 1 +
 .../plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go  | 1 +
 .../modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go      | 1 +
 .../modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go     | 1 +
 .../internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go  | 1 +
 .../internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go            | 1 +
 .../internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go  | 1 +
 .../internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go       | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go   | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go  | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go     | 1 +
 .../s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go     | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go              | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go    | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go   | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go          | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go         | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go     | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go         | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go | 1 +
 .../internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go   | 1 +
 .../plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go         | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go       | 1 +
 .../plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go   | 1 +
 .../internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go   | 1 +
 .../internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go  | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarm8.go           | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmAckInd.go      | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmS.go           | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSC.go          | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSQ.go          | 1 +
 .../internal/plc4go/s7/readwrite/model/S7PayloadDiagnosticMessage.go   | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify.go           | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify8.go          | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go  | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go         | 1 +
 .../s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAck.go     | 1 +
 .../model/S7PayloadUserDataItemCpuFunctionAlarmAckResponse.go          | 1 +
 .../s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQuery.go   | 1 +
 .../model/S7PayloadUserDataItemCpuFunctionAlarmQueryResponse.go        | 1 +
 .../readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscription.go | 1 +
 .../S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse.go    | 1 +
 .../model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse.go   | 1 +
 .../S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse.go      | 1 +
 .../readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go  | 1 +
 .../readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go  | 1 +
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go | 1 +
 .../plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go      | 1 +
 523 files changed, 525 insertions(+)

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 2f2318b..93bb390 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
@@ -108,6 +108,9 @@ type ${type.name} struct {
 
 // The corresponding interface
 type I${type.name} interface {
+<#if type.isDiscriminatedChildTypeDefinition()>
+	I${type.parentType.orElseThrow().name?cap_first}
+</#if>
 <#if type.isDiscriminatedParentTypeDefinition()>
 	<#list helper.getDiscriminatorTypes() as discriminatorName, discriminatorType>
 	<#-- If the discriminator name matches that of another field, suppress the methods generation -->
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
index 4a170c1..fa9ca0c 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionRequest.go
@@ -32,6 +32,7 @@ type CIPEncapsulationConnectionRequest struct {
 
 // The corresponding interface
 type ICIPEncapsulationConnectionRequest interface {
+	ICIPEncapsulationPacket
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
index c1539b4..dca6ee9 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationConnectionResponse.go
@@ -32,6 +32,7 @@ type CIPEncapsulationConnectionResponse struct {
 
 // The corresponding interface
 type ICIPEncapsulationConnectionResponse interface {
+	ICIPEncapsulationPacket
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go
index f316aa8..0bdf6f4 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadRequest.go
@@ -34,6 +34,7 @@ type CIPEncapsulationReadRequest struct {
 
 // The corresponding interface
 type ICIPEncapsulationReadRequest interface {
+	ICIPEncapsulationPacket
 	// GetRequest returns Request
 	GetRequest() *DF1RequestMessage
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go
index 3bfe901..26479c4 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/CIPEncapsulationReadResponse.go
@@ -37,6 +37,7 @@ type CIPEncapsulationReadResponse struct {
 
 // The corresponding interface
 type ICIPEncapsulationReadResponse interface {
+	ICIPEncapsulationPacket
 	// GetResponse returns Response
 	GetResponse() *DF1ResponseMessage
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go
index 9cfd479..96e9ec4 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandRequestMessage.go
@@ -34,6 +34,7 @@ type DF1CommandRequestMessage struct {
 
 // The corresponding interface
 type IDF1CommandRequestMessage interface {
+	IDF1RequestMessage
 	// GetCommand returns Command
 	GetCommand() *DF1RequestCommand
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
index c0cf18a..78ecad8 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1CommandResponseMessageProtectedTypedLogicalRead.go
@@ -37,6 +37,7 @@ type DF1CommandResponseMessageProtectedTypedLogicalRead struct {
 
 // The corresponding interface
 type IDF1CommandResponseMessageProtectedTypedLogicalRead interface {
+	IDF1ResponseMessage
 	// GetData returns Data
 	GetData() []uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
index 1265b3c..a456950 100644
--- a/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
+++ b/plc4go/internal/plc4go/abeth/readwrite/model/DF1RequestProtectedTypedLogicalRead.go
@@ -38,6 +38,7 @@ type DF1RequestProtectedTypedLogicalRead struct {
 
 // The corresponding interface
 type IDF1RequestProtectedTypedLogicalRead interface {
+	IDF1RequestCommand
 	// GetByteSize returns ByteSize
 	GetByteSize() uint8
 	// GetFileNumber returns FileNumber
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
index a055bfa..4d11e4f 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
@@ -40,6 +40,7 @@ type AdsAddDeviceNotificationRequest struct {
 
 // The corresponding interface
 type IAdsAddDeviceNotificationRequest interface {
+	IAdsData
 	// GetIndexGroup returns IndexGroup
 	GetIndexGroup() uint32
 	// GetIndexOffset returns IndexOffset
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
index 28b3d85..a60991b 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
@@ -35,6 +35,7 @@ type AdsAddDeviceNotificationResponse struct {
 
 // The corresponding interface
 type IAdsAddDeviceNotificationResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetNotificationHandle returns NotificationHandle
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
index b3dad83..1021dec 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
@@ -34,6 +34,7 @@ type AdsDeleteDeviceNotificationRequest struct {
 
 // The corresponding interface
 type IAdsDeleteDeviceNotificationRequest interface {
+	IAdsData
 	// GetNotificationHandle returns NotificationHandle
 	GetNotificationHandle() uint32
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
index 1dfb61e..0c1b529 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
@@ -34,6 +34,7 @@ type AdsDeleteDeviceNotificationResponse struct {
 
 // The corresponding interface
 type IAdsDeleteDeviceNotificationResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
index a914a1c..82508d8 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
@@ -36,6 +36,7 @@ type AdsDeviceNotificationRequest struct {
 
 // The corresponding interface
 type IAdsDeviceNotificationRequest interface {
+	IAdsData
 	// GetLength returns Length
 	GetLength() uint32
 	// GetStamps returns Stamps
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
index 4861158..e667d23 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
@@ -32,6 +32,7 @@ type AdsDeviceNotificationResponse struct {
 
 // The corresponding interface
 type IAdsDeviceNotificationResponse interface {
+	IAdsData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
index 797900f..f332169 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
@@ -32,6 +32,7 @@ type AdsInvalidRequest struct {
 
 // The corresponding interface
 type IAdsInvalidRequest interface {
+	IAdsData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
index a8e1d00..65ab232 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
@@ -32,6 +32,7 @@ type AdsInvalidResponse struct {
 
 // The corresponding interface
 type IAdsInvalidResponse interface {
+	IAdsData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
index 20c5731..96ec604 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
@@ -36,6 +36,7 @@ type AdsMultiRequestItemRead struct {
 
 // The corresponding interface
 type IAdsMultiRequestItemRead interface {
+	IAdsMultiRequestItem
 	// GetItemIndexGroup returns ItemIndexGroup
 	GetItemIndexGroup() uint32
 	// GetItemIndexOffset returns ItemIndexOffset
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
index bf743ab..866d40d 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
@@ -37,6 +37,7 @@ type AdsMultiRequestItemReadWrite struct {
 
 // The corresponding interface
 type IAdsMultiRequestItemReadWrite interface {
+	IAdsMultiRequestItem
 	// GetItemIndexGroup returns ItemIndexGroup
 	GetItemIndexGroup() uint32
 	// GetItemIndexOffset returns ItemIndexOffset
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
index b437b61..ec6ce0a 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
@@ -36,6 +36,7 @@ type AdsMultiRequestItemWrite struct {
 
 // The corresponding interface
 type IAdsMultiRequestItemWrite interface {
+	IAdsMultiRequestItem
 	// GetItemIndexGroup returns ItemIndexGroup
 	GetItemIndexGroup() uint32
 	// GetItemIndexOffset returns ItemIndexOffset
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
index 61c0510..f198de7 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
@@ -32,6 +32,7 @@ type AdsReadDeviceInfoRequest struct {
 
 // The corresponding interface
 type IAdsReadDeviceInfoRequest interface {
+	IAdsData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
index d6dd57c..7b00e83 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
@@ -38,6 +38,7 @@ type AdsReadDeviceInfoResponse struct {
 
 // The corresponding interface
 type IAdsReadDeviceInfoResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetMajorVersion returns MajorVersion
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
index e6669d9..a6e62fe 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
@@ -36,6 +36,7 @@ type AdsReadRequest struct {
 
 // The corresponding interface
 type IAdsReadRequest interface {
+	IAdsData
 	// GetIndexGroup returns IndexGroup
 	GetIndexGroup() uint32
 	// GetIndexOffset returns IndexOffset
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
index cbac443..91d16aa 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
@@ -35,6 +35,7 @@ type AdsReadResponse struct {
 
 // The corresponding interface
 type IAdsReadResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
index 45d91b7..1e45481 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
@@ -32,6 +32,7 @@ type AdsReadStateRequest struct {
 
 // The corresponding interface
 type IAdsReadStateRequest interface {
+	IAdsData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
index 1061314..d7d9939 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
@@ -36,6 +36,7 @@ type AdsReadStateResponse struct {
 
 // The corresponding interface
 type IAdsReadStateResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetAdsState returns AdsState
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
index a174637..a55306c 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
@@ -38,6 +38,7 @@ type AdsReadWriteRequest struct {
 
 // The corresponding interface
 type IAdsReadWriteRequest interface {
+	IAdsData
 	// GetIndexGroup returns IndexGroup
 	GetIndexGroup() uint32
 	// GetIndexOffset returns IndexOffset
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
index b7424ba..00fd996 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
@@ -35,6 +35,7 @@ type AdsReadWriteResponse struct {
 
 // The corresponding interface
 type IAdsReadWriteResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
index ab938a3..63448b5 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
@@ -36,6 +36,7 @@ type AdsWriteControlRequest struct {
 
 // The corresponding interface
 type IAdsWriteControlRequest interface {
+	IAdsData
 	// GetAdsState returns AdsState
 	GetAdsState() uint16
 	// GetDeviceState returns DeviceState
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
index e37bbac..b9de2e5 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
@@ -34,6 +34,7 @@ type AdsWriteControlResponse struct {
 
 // The corresponding interface
 type IAdsWriteControlResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
index c698c25..9c48e8f 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
@@ -36,6 +36,7 @@ type AdsWriteRequest struct {
 
 // The corresponding interface
 type IAdsWriteRequest interface {
+	IAdsData
 	// GetIndexGroup returns IndexGroup
 	GetIndexGroup() uint32
 	// GetIndexOffset returns IndexOffset
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
index b55e433..7ad5437 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
@@ -34,6 +34,7 @@ type AdsWriteResponse struct {
 
 // The corresponding interface
 type IAdsWriteResponse interface {
+	IAdsData
 	// GetResult returns Result
 	GetResult() ReturnCode
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
index 0062535..1976545 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
@@ -40,6 +40,7 @@ type APDUAbort struct {
 
 // The corresponding interface
 type IAPDUAbort interface {
+	IAPDU
 	// GetServer returns Server
 	GetServer() bool
 	// GetOriginalInvokeId returns OriginalInvokeId
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
index 82df28d..fc478b9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
@@ -46,6 +46,7 @@ type APDUComplexAck struct {
 
 // The corresponding interface
 type IAPDUComplexAck interface {
+	IAPDU
 	// GetSegmentedMessage returns SegmentedMessage
 	GetSegmentedMessage() bool
 	// GetMoreFollows returns MoreFollows
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
index 69ea853..bb4d91b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -46,6 +46,7 @@ type APDUConfirmedRequest struct {
 
 // The corresponding interface
 type IAPDUConfirmedRequest interface {
+	IAPDU
 	// GetSegmentedMessage returns SegmentedMessage
 	GetSegmentedMessage() bool
 	// GetMoreFollows returns MoreFollows
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
index d3330b1..816f28b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
@@ -39,6 +39,7 @@ type APDUError struct {
 
 // The corresponding interface
 type IAPDUError interface {
+	IAPDU
 	// GetOriginalInvokeId returns OriginalInvokeId
 	GetOriginalInvokeId() uint8
 	// GetError returns Error
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
index 25d2347..4aeea82 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
@@ -39,6 +39,7 @@ type APDUReject struct {
 
 // The corresponding interface
 type IAPDUReject interface {
+	IAPDU
 	// GetOriginalInvokeId returns OriginalInvokeId
 	GetOriginalInvokeId() uint8
 	// GetRejectReason returns RejectReason
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
index 582d82f..9fe5e2e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
@@ -42,6 +42,7 @@ type APDUSegmentAck struct {
 
 // The corresponding interface
 type IAPDUSegmentAck interface {
+	IAPDU
 	// GetNegativeAck returns NegativeAck
 	GetNegativeAck() bool
 	// GetServer returns Server
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
index 45c6014..df096ca 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
@@ -39,6 +39,7 @@ type APDUSimpleAck struct {
 
 // The corresponding interface
 type IAPDUSimpleAck interface {
+	IAPDU
 	// GetOriginalInvokeId returns OriginalInvokeId
 	GetOriginalInvokeId() uint8
 	// GetServiceChoice returns ServiceChoice
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
index 6d5ca95..b9ac4c3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
@@ -38,6 +38,7 @@ type APDUUnconfirmedRequest struct {
 
 // The corresponding interface
 type IAPDUUnconfirmedRequest interface {
+	IAPDU
 	// GetServiceRequest returns ServiceRequest
 	GetServiceRequest() *BACnetUnconfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go
index b6f386e..4bdd81d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnknown.go
@@ -37,6 +37,7 @@ type APDUUnknown struct {
 
 // The corresponding interface
 type IAPDUUnknown interface {
+	IAPDU
 	// GetUnknownBytes returns UnknownBytes
 	GetUnknownBytes() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
index fc278f6..697809b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagBitString struct {
 
 // The corresponding interface
 type IBACnetApplicationTagBitString interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadBitString
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
index d9c537f..47ec10d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagBoolean struct {
 
 // The corresponding interface
 type IBACnetApplicationTagBoolean interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadBoolean
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
index eaafc9b..59d8faf 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagCharacterString struct {
 
 // The corresponding interface
 type IBACnetApplicationTagCharacterString interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadCharacterString
 	// GetValue returns Value
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDate.go
index 709275f..e6b091a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDate.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagDate struct {
 
 // The corresponding interface
 type IBACnetApplicationTagDate interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadDate
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDouble.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
index 74ad91e..f3abaa6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagDouble struct {
 
 // The corresponding interface
 type IBACnetApplicationTagDouble interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadDouble
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
index 1000ae4..e48d674 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagEnumerated struct {
 
 // The corresponding interface
 type IBACnetApplicationTagEnumerated interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadEnumerated
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagNull.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagNull.go
index a5d08be..8055857 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagNull.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagNull.go
@@ -32,6 +32,7 @@ type BACnetApplicationTagNull struct {
 
 // The corresponding interface
 type IBACnetApplicationTagNull interface {
+	IBACnetApplicationTag
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
index 45fb7a2..01396d9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagObjectIdentifier struct {
 
 // The corresponding interface
 type IBACnetApplicationTagObjectIdentifier interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadObjectIdentifier
 	// GetObjectType returns ObjectType
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
index 54d196b..3d3ecf7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagOctetString struct {
 
 // The corresponding interface
 type IBACnetApplicationTagOctetString interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadOctetString
 	// GetValue returns Value
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagReal.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagReal.go
index cec8144..98b9d1c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagReal.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagReal.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagReal struct {
 
 // The corresponding interface
 type IBACnetApplicationTagReal interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadReal
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
index a5c0e98..4476b17 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagSignedInteger struct {
 
 // The corresponding interface
 type IBACnetApplicationTagSignedInteger interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadSignedInteger
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagTime.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagTime.go
index f53cadd..8e8690c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagTime.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagTime.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagTime struct {
 
 // The corresponding interface
 type IBACnetApplicationTagTime interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadTime
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
index b445d65..baf8ffd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
@@ -34,6 +34,7 @@ type BACnetApplicationTagUnsignedInteger struct {
 
 // The corresponding interface
 type IBACnetApplicationTagUnsignedInteger interface {
+	IBACnetApplicationTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadUnsignedInteger
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go
index 9065f73..529f772 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetClosingTag.go
@@ -36,6 +36,7 @@ type BACnetClosingTag struct {
 
 // The corresponding interface
 type IBACnetClosingTag interface {
+	IBACnetContextTag
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
index 16eb850..e9e4855 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKAtomicReadFile struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKAtomicReadFile interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
index 47be67d..6045a4d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKAtomicWriteFile struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKAtomicWriteFile interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
index a42120a..259df4f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKConfirmedPrivateTransfer struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKConfirmedPrivateTransfer interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
index 9ec15a7..b322300 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKCreateObject struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKCreateObject interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
index 4aab677..507ae14 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKGetAlarmSummary struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKGetAlarmSummary interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
index ba88717..6ad4a4e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKGetEnrollmentSummary struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKGetEnrollmentSummary interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
index bef6c37..0bd557d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKGetEventInformation struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKGetEventInformation interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
index 360515f..8ab1041 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKReadProperty struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKReadProperty interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
index 833facd..c7ca0b6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKReadPropertyMultiple struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKReadPropertyMultiple interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
index c463d7a..f06da5d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKReadRange struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKReadRange interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
index 89800fe..928860c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKRemovedAuthenticate struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKRemovedAuthenticate interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
index 4243214..406c221 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKRemovedReadPropertyConditional struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKRemovedReadPropertyConditional interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
index ed3516a..95e4757 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKVTData struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKVTData interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
index 1c71ec1..f4d68f4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceACKVTOpen struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceACKVTOpen interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go
index ead066e..705280a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceAddListElement.go
@@ -32,6 +32,7 @@ type BACnetConfirmedServiceAddListElement struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceAddListElement interface {
+	IBACnetConfirmedServiceACK
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
index c317f17..42fa3c8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestAcknowledgeAlarm struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestAcknowledgeAlarm interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
index 476ab11..b952ef9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestAddListElement struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestAddListElement interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
index e083286..39ff5ef 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
@@ -38,6 +38,7 @@ type BACnetConfirmedServiceRequestAtomicReadFile struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestAtomicReadFile interface {
+	IBACnetConfirmedServiceRequest
 	// GetFileIdentifier returns FileIdentifier
 	GetFileIdentifier() *BACnetApplicationTagObjectIdentifier
 	// GetAccessMethod returns AccessMethod
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
index 06401e4..24da8dd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestAtomicReadFileRecord struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestAtomicReadFileRecord interface {
+	IBACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord
 	// GetFileStartRecord returns FileStartRecord
 	GetFileStartRecord() *BACnetApplicationTagSignedInteger
 	// GetRequestRecordCount returns RequestRecordCount
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
index 0ed42d5..9e16918 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestAtomicReadFileStream struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestAtomicReadFileStream interface {
+	IBACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord
 	// GetFileStartPosition returns FileStartPosition
 	GetFileStartPosition() *BACnetApplicationTagSignedInteger
 	// GetRequestOctetCount returns RequestOctetCount
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
index 41e03a7..c201297 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
@@ -42,6 +42,7 @@ type BACnetConfirmedServiceRequestAtomicWriteFile struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestAtomicWriteFile interface {
+	IBACnetConfirmedServiceRequest
 	// GetDeviceIdentifier returns DeviceIdentifier
 	GetDeviceIdentifier() *BACnetApplicationTagObjectIdentifier
 	// GetOpeningTag returns OpeningTag
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index 46e5e26..9f87353 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -41,6 +41,7 @@ type BACnetConfirmedServiceRequestConfirmedCOVNotification struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestConfirmedCOVNotification interface {
+	IBACnetConfirmedServiceRequest
 	// GetSubscriberProcessIdentifier returns SubscriberProcessIdentifier
 	GetSubscriberProcessIdentifier() *BACnetContextTagUnsignedInteger
 	// GetInitiatingDeviceIdentifier returns InitiatingDeviceIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
index 53bdf5f..3bf1968 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
index ce94328..470f15f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -50,6 +50,7 @@ type BACnetConfirmedServiceRequestConfirmedEventNotification struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestConfirmedEventNotification interface {
+	IBACnetConfirmedServiceRequest
 	// GetProcessIdentifier returns ProcessIdentifier
 	GetProcessIdentifier() *BACnetContextTagUnsignedInteger
 	// GetInitiatingDeviceIdentifier returns InitiatingDeviceIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
index fd8a5ef..aecba66 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestConfirmedPrivateTransfer struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestConfirmedPrivateTransfer interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
index 1e73c82..5c839dc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestConfirmedTextMessage struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestConfirmedTextMessage interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedUnknown.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedUnknown.go
index 1ac8077..6994a55 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedUnknown.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedUnknown.go
@@ -37,6 +37,7 @@ type BACnetConfirmedServiceRequestConfirmedUnknown struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestConfirmedUnknown interface {
+	IBACnetConfirmedServiceRequest
 	// GetUnknownBytes returns UnknownBytes
 	GetUnknownBytes() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
index 913a2db..7d1e20a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestCreateObject struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestCreateObject interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
index 6df38fd..bc67e88 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestDeleteObject struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestDeleteObject interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
index c4aa17d..bde35bc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
@@ -40,6 +40,7 @@ type BACnetConfirmedServiceRequestDeviceCommunicationControl struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestDeviceCommunicationControl interface {
+	IBACnetConfirmedServiceRequest
 	// GetTimeDuration returns TimeDuration
 	GetTimeDuration() *BACnetContextTagUnsignedInteger
 	// GetEnableDisable returns EnableDisable
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
index 9f771ca..2a5c5c0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestGetEnrollmentSummary struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestGetEnrollmentSummary interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
index cc66131..e0d659d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestGetEventInformation struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestGetEventInformation interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
index 39e4361..8dfeac7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestLifeSafetyOperation struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestLifeSafetyOperation interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index 5afb6f3..413e91d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -40,6 +40,7 @@ type BACnetConfirmedServiceRequestReadProperty struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestReadProperty interface {
+	IBACnetConfirmedServiceRequest
 	// GetObjectIdentifier returns ObjectIdentifier
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
index 5126dd8..db138dd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
@@ -37,6 +37,7 @@ type BACnetConfirmedServiceRequestReadPropertyMultiple struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestReadPropertyMultiple interface {
+	IBACnetConfirmedServiceRequest
 	// GetData returns Data
 	GetData() []*BACnetReadAccessSpecification
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
index ae356b9..a0d1f1b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestReadRange struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestReadRange interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
index 7ade92b..0ebd882 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
@@ -39,6 +39,7 @@ type BACnetConfirmedServiceRequestReinitializeDevice struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestReinitializeDevice interface {
+	IBACnetConfirmedServiceRequest
 	// GetReinitializedStateOfDevice returns ReinitializedStateOfDevice
 	GetReinitializedStateOfDevice() *BACnetContextTagDeviceState
 	// GetPassword returns Password
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
index 6b4f331..2d3d270 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestRemoveListElement struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestRemoveListElement interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
index 99d39a7..15c0923 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestRemovedAuthenticate struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestRemovedAuthenticate interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
index d38940f..2bd5eee 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestRemovedReadPropertyConditional struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestRemovedReadPropertyConditional interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
index 88b8ce9..37b96f1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestRemovedRequestKey struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestRemovedRequestKey interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
index 2e94181..bdd031d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -40,6 +40,7 @@ type BACnetConfirmedServiceRequestSubscribeCOV struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestSubscribeCOV interface {
+	IBACnetConfirmedServiceRequest
 	// GetSubscriberProcessIdentifier returns SubscriberProcessIdentifier
 	GetSubscriberProcessIdentifier() *BACnetContextTagUnsignedInteger
 	// GetMonitoredObjectIdentifier returns MonitoredObjectIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
index f2705a6..ed6b853 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestSubscribeCOVProperty struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestSubscribeCOVProperty interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
index 184bbf7..0075656 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
index 3193c9e..3b39fca 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestVTClose struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestVTClose interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
index c3c22e7..832b86e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestVTData struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestVTData interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
index d95156c..550af38 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestVTOpen struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestVTOpen interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 6354ce6..654ade6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -42,6 +42,7 @@ type BACnetConfirmedServiceRequestWriteProperty struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestWriteProperty interface {
+	IBACnetConfirmedServiceRequest
 	// GetObjectIdentifier returns ObjectIdentifier
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
index e9c9ae0..c639779 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
@@ -35,6 +35,7 @@ type BACnetConfirmedServiceRequestWritePropertyMultiple struct {
 
 // The corresponding interface
 type IBACnetConfirmedServiceRequestWritePropertyMultiple interface {
+	IBACnetConfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataCommand.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataCommand.go
index 193cc07..1f85102 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataCommand.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataCommand.go
@@ -40,6 +40,7 @@ type BACnetConstructedDataCommand struct {
 
 // The corresponding interface
 type IBACnetConstructedDataCommand interface {
+	IBACnetConstructedData
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetAction returns Action
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go
index 350f62c..c3162c4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go
@@ -40,6 +40,7 @@ type BACnetConstructedDataEventTimestamps struct {
 
 // The corresponding interface
 type IBACnetConstructedDataEventTimestamps interface {
+	IBACnetConstructedData
 	// GetToOffnormal returns ToOffnormal
 	GetToOffnormal() *BACnetContextTagTime
 	// GetToFault returns ToFault
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go
index b9aa906..e0e8d1a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZone.go
@@ -38,6 +38,7 @@ type BACnetConstructedDataLifeSafetyZone struct {
 
 // The corresponding interface
 type IBACnetConstructedDataLifeSafetyZone interface {
+	IBACnetConstructedData
 	// GetZones returns Zones
 	GetZones() []*BACnetContextTagObjectIdentifier
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
index 17a65ba..8fdb5fb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
@@ -41,6 +41,7 @@ type BACnetConstructedDataUnspecified struct {
 
 // The corresponding interface
 type IBACnetConstructedDataUnspecified interface {
+	IBACnetConstructedData
 	// GetData returns Data
 	GetData() []*BACnetConstructedDataElement
 	// GetPropertyIdentifier returns PropertyIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go
index 1d8d9ce..2f52b31 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBitString.go
@@ -38,6 +38,7 @@ type BACnetContextTagBitString struct {
 
 // The corresponding interface
 type IBACnetContextTagBitString interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadBitString
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go
index 3579b02..5db0e54 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagBoolean.go
@@ -39,6 +39,7 @@ type BACnetContextTagBoolean struct {
 
 // The corresponding interface
 type IBACnetContextTagBoolean interface {
+	IBACnetContextTag
 	// GetValue returns Value
 	GetValue() uint8
 	// GetPayload returns Payload
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go
index d9c6f04..24f5293 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagCharacterString.go
@@ -38,6 +38,7 @@ type BACnetContextTagCharacterString struct {
 
 // The corresponding interface
 type IBACnetContextTagCharacterString interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadCharacterString
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go
index 646fe08..ecbd9da 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDate.go
@@ -38,6 +38,7 @@ type BACnetContextTagDate struct {
 
 // The corresponding interface
 type IBACnetContextTagDate interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadDate
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go
index 6dc3b1c..3b0622b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go
@@ -38,6 +38,7 @@ type BACnetContextTagDeviceState struct {
 
 // The corresponding interface
 type IBACnetContextTagDeviceState interface {
+	IBACnetContextTag
 	// GetState returns State
 	GetState() BACnetDeviceState
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go
index 379b716..0b38927 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDouble.go
@@ -38,6 +38,7 @@ type BACnetContextTagDouble struct {
 
 // The corresponding interface
 type IBACnetContextTagDouble interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadDouble
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEmpty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEmpty.go
index 10e7755..fbaefba 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEmpty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEmpty.go
@@ -35,6 +35,7 @@ type BACnetContextTagEmpty struct {
 
 // The corresponding interface
 type IBACnetContextTagEmpty interface {
+	IBACnetContextTag
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go
index a441af8..8e0f823 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEnumerated.go
@@ -38,6 +38,7 @@ type BACnetContextTagEnumerated struct {
 
 // The corresponding interface
 type IBACnetContextTagEnumerated interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadEnumerated
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go
index 864cdfe..a44f92c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go
@@ -40,6 +40,7 @@ type BACnetContextTagEventState struct {
 
 // The corresponding interface
 type IBACnetContextTagEventState interface {
+	IBACnetContextTag
 	// GetEventState returns EventState
 	GetEventState() BACnetEventState
 	// GetProprietaryValue returns ProprietaryValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go
index 4a932d4..ed9eb61 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go
@@ -40,6 +40,7 @@ type BACnetContextTagEventType struct {
 
 // The corresponding interface
 type IBACnetContextTagEventType interface {
+	IBACnetContextTag
 	// GetEventType returns EventType
 	GetEventType() BACnetEventType
 	// GetProprietaryValue returns ProprietaryValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go
index d753939..38da2ef 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go
@@ -39,6 +39,7 @@ type BACnetContextTagNotifyType struct {
 
 // The corresponding interface
 type IBACnetContextTagNotifyType interface {
+	IBACnetContextTag
 	// GetValue returns Value
 	GetValue() BACnetNotifyType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go
index e763134..4c5175f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagObjectIdentifier.go
@@ -38,6 +38,7 @@ type BACnetContextTagObjectIdentifier struct {
 
 // The corresponding interface
 type IBACnetContextTagObjectIdentifier interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadObjectIdentifier
 	// GetObjectType returns ObjectType
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go
index e49a910..9c6aee2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagOctetString.go
@@ -38,6 +38,7 @@ type BACnetContextTagOctetString struct {
 
 // The corresponding interface
 type IBACnetContextTagOctetString interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadOctetString
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go
index e84d225..57fddae 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go
@@ -40,6 +40,7 @@ type BACnetContextTagPropertyIdentifier struct {
 
 // The corresponding interface
 type IBACnetContextTagPropertyIdentifier interface {
+	IBACnetContextTag
 	// GetPropertyIdentifier returns PropertyIdentifier
 	GetPropertyIdentifier() BACnetPropertyIdentifier
 	// GetProprietaryValue returns ProprietaryValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go
index edaff45..5adfbec 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagReal.go
@@ -38,6 +38,7 @@ type BACnetContextTagReal struct {
 
 // The corresponding interface
 type IBACnetContextTagReal interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadReal
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
index 4ea79da..95d4653 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go
@@ -38,6 +38,7 @@ type BACnetContextTagSignedInteger struct {
 
 // The corresponding interface
 type IBACnetContextTagSignedInteger interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadSignedInteger
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go
index d61bdd1..36f2326 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagTime.go
@@ -38,6 +38,7 @@ type BACnetContextTagTime struct {
 
 // The corresponding interface
 type IBACnetContextTagTime interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadTime
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
index 6c9baf4..105d86f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagUnsignedInteger.go
@@ -38,6 +38,7 @@ type BACnetContextTagUnsignedInteger struct {
 
 // The corresponding interface
 type IBACnetContextTagUnsignedInteger interface {
+	IBACnetContextTag
 	// GetPayload returns Payload
 	GetPayload() *BACnetTagPayloadUnsignedInteger
 	// GetActualValue returns ActualValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAcknowledgeAlarm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAcknowledgeAlarm.go
index b917958..1536ddc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAcknowledgeAlarm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAcknowledgeAlarm.go
@@ -32,6 +32,7 @@ type BACnetErrorAcknowledgeAlarm struct {
 
 // The corresponding interface
 type IBACnetErrorAcknowledgeAlarm interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
index 9e8ac75..89e3ded 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
@@ -32,6 +32,7 @@ type BACnetErrorAtomicReadFile struct {
 
 // The corresponding interface
 type IBACnetErrorAtomicReadFile interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
index 25a8598..253b7d8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
@@ -32,6 +32,7 @@ type BACnetErrorAtomicWriteFile struct {
 
 // The corresponding interface
 type IBACnetErrorAtomicWriteFile interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedEventNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedEventNotification.go
index bc20997..7f70974 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedEventNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedEventNotification.go
@@ -32,6 +32,7 @@ type BACnetErrorConfirmedEventNotification struct {
 
 // The corresponding interface
 type IBACnetErrorConfirmedEventNotification interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
index 927c5f0..4e2fe64 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
@@ -32,6 +32,7 @@ type BACnetErrorConfirmedPrivateTransfer struct {
 
 // The corresponding interface
 type IBACnetErrorConfirmedPrivateTransfer interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
index bb9ad95..b552d5c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
@@ -32,6 +32,7 @@ type BACnetErrorCreateObject struct {
 
 // The corresponding interface
 type IBACnetErrorCreateObject interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorDeviceCommunicationProtocol.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorDeviceCommunicationProtocol.go
index 14ea849..6422c52 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorDeviceCommunicationProtocol.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorDeviceCommunicationProtocol.go
@@ -32,6 +32,7 @@ type BACnetErrorDeviceCommunicationProtocol struct {
 
 // The corresponding interface
 type IBACnetErrorDeviceCommunicationProtocol interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
index b5a75b1..b3dd7dd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
@@ -32,6 +32,7 @@ type BACnetErrorGetAlarmSummary struct {
 
 // The corresponding interface
 type IBACnetErrorGetAlarmSummary interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
index f6b6d83..45c4fa5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
@@ -32,6 +32,7 @@ type BACnetErrorGetEnrollmentSummary struct {
 
 // The corresponding interface
 type IBACnetErrorGetEnrollmentSummary interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
index 2193851..4e1d57b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
@@ -32,6 +32,7 @@ type BACnetErrorGetEventInformation struct {
 
 // The corresponding interface
 type IBACnetErrorGetEventInformation interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorPasswordFailure.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorPasswordFailure.go
index 24f69ea..ca9cf4b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorPasswordFailure.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorPasswordFailure.go
@@ -32,6 +32,7 @@ type BACnetErrorPasswordFailure struct {
 
 // The corresponding interface
 type IBACnetErrorPasswordFailure interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
index 2acd95a..479e68b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
@@ -32,6 +32,7 @@ type BACnetErrorReadProperty struct {
 
 // The corresponding interface
 type IBACnetErrorReadProperty interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
index 1b83699..5acc34f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
@@ -32,6 +32,7 @@ type BACnetErrorReadPropertyMultiple struct {
 
 // The corresponding interface
 type IBACnetErrorReadPropertyMultiple interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
index 4f270d8..1ad9edc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
@@ -32,6 +32,7 @@ type BACnetErrorReadRange struct {
 
 // The corresponding interface
 type IBACnetErrorReadRange interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
index 8feaf3e..e612c7b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
@@ -32,6 +32,7 @@ type BACnetErrorRemovedAuthenticate struct {
 
 // The corresponding interface
 type IBACnetErrorRemovedAuthenticate interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
index 7499bc9..37d451f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
@@ -32,6 +32,7 @@ type BACnetErrorRemovedReadPropertyConditional struct {
 
 // The corresponding interface
 type IBACnetErrorRemovedReadPropertyConditional interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorUnknown.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorUnknown.go
index 3eba7a7..c4a4257 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorUnknown.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorUnknown.go
@@ -32,6 +32,7 @@ type BACnetErrorUnknown struct {
 
 // The corresponding interface
 type IBACnetErrorUnknown interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
index 093bedd..c6459cd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
@@ -32,6 +32,7 @@ type BACnetErrorVTData struct {
 
 // The corresponding interface
 type IBACnetErrorVTData interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
index 7ccfbc4..d898dc8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
@@ -32,6 +32,7 @@ type BACnetErrorVTOpen struct {
 
 // The corresponding interface
 type IBACnetErrorVTOpen interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorWriteProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorWriteProperty.go
index cd6173a..42f14c0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorWriteProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorWriteProperty.go
@@ -32,6 +32,7 @@ type BACnetErrorWriteProperty struct {
 
 // The corresponding interface
 type IBACnetErrorWriteProperty interface {
+	IBACnetError
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
index 8de47ef..6e04ec7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersBufferReady.go
@@ -42,6 +42,7 @@ type BACnetNotificationParametersBufferReady struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersBufferReady interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetBufferProperty returns BufferProperty
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
index 87b7ba5..932e3e4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfBitString.go
@@ -41,6 +41,7 @@ type BACnetNotificationParametersChangeOfBitString struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersChangeOfBitString interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetChangeOfBitString returns ChangeOfBitString
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
index 1e4ff0b..1fa7cca 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfState.go
@@ -41,6 +41,7 @@ type BACnetNotificationParametersChangeOfState struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersChangeOfState interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetChangeOfState returns ChangeOfState
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
index 4cce394..94ab332 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValue.go
@@ -41,6 +41,7 @@ type BACnetNotificationParametersChangeOfValue struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersChangeOfValue interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetNewValue returns NewValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedBits.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedBits.go
index 6eb3dc8..6ec873c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedBits.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedBits.go
@@ -37,6 +37,7 @@ type BACnetNotificationParametersChangeOfValueNewValueChangedBits struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersChangeOfValueNewValueChangedBits interface {
+	IBACnetNotificationParametersChangeOfValueNewValue
 	// GetChangedBits returns ChangedBits
 	GetChangedBits() *BACnetContextTagBitString
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedValue.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedValue.go
index 5838757..55fabad 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedValue.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersChangeOfValueNewValueChangedValue.go
@@ -37,6 +37,7 @@ type BACnetNotificationParametersChangeOfValueNewValueChangedValue struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersChangeOfValueNewValueChangedValue interface {
+	IBACnetNotificationParametersChangeOfValueNewValue
 	// GetChangedValue returns ChangedValue
 	GetChangedValue() *BACnetContextTagReal
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go
index 7ded7a1..a285bc0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersComplexEventType.go
@@ -38,6 +38,7 @@ type BACnetNotificationParametersComplexEventType struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersComplexEventType interface {
+	IBACnetNotificationParameters
 	// GetListOfValues returns ListOfValues
 	GetListOfValues() *BACnetPropertyValues
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
index 77d39e8..f4cacbc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersExtended.go
@@ -42,6 +42,7 @@ type BACnetNotificationParametersExtended struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersExtended interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetVendorId returns VendorId
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go
index 382ecac..672121a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersFloatingLimit.go
@@ -43,6 +43,7 @@ type BACnetNotificationParametersFloatingLimit struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersFloatingLimit interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetReferenceValue returns ReferenceValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go
index d55ac90..14db1bd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersOutOfRange.go
@@ -43,6 +43,7 @@ type BACnetNotificationParametersOutOfRange struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersOutOfRange interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetExceedingValue returns ExceedingValue
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
index 9ad1940..81dd320 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersUnsignedRange.go
@@ -42,6 +42,7 @@ type BACnetNotificationParametersUnsignedRange struct {
 
 // The corresponding interface
 type IBACnetNotificationParametersUnsignedRange interface {
+	IBACnetNotificationParameters
 	// GetInnerOpeningTag returns InnerOpeningTag
 	GetInnerOpeningTag() *BACnetOpeningTag
 	// GetSequenceNumber returns SequenceNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go
index 12b343e..f0b7728 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetOpeningTag.go
@@ -36,6 +36,7 @@ type BACnetOpeningTag struct {
 
 // The corresponding interface
 type IBACnetOpeningTag interface {
+	IBACnetContextTag
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesAction.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesAction.go
index 88240b6..f7dd61f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesAction.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesAction.go
@@ -38,6 +38,7 @@ type BACnetPropertyStatesAction struct {
 
 // The corresponding interface
 type IBACnetPropertyStatesAction interface {
+	IBACnetPropertyStates
 	// GetAction returns Action
 	GetAction() *BACnetAction
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBinaryValue.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBinaryValue.go
index 34d36da..da79f64 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBinaryValue.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBinaryValue.go
@@ -38,6 +38,7 @@ type BACnetPropertyStatesBinaryValue struct {
 
 // The corresponding interface
 type IBACnetPropertyStatesBinaryValue interface {
+	IBACnetPropertyStates
 	// GetBinaryValue returns BinaryValue
 	GetBinaryValue() *BACnetBinaryPV
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBoolean.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBoolean.go
index d402a53..123c822 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBoolean.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesBoolean.go
@@ -38,6 +38,7 @@ type BACnetPropertyStatesBoolean struct {
 
 // The corresponding interface
 type IBACnetPropertyStatesBoolean interface {
+	IBACnetPropertyStates
 	// GetBooleanValue returns BooleanValue
 	GetBooleanValue() *BACnetContextTagBoolean
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
index b681854..405d267 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
@@ -35,6 +35,7 @@ type BACnetServiceAckAtomicReadFile struct {
 
 // The corresponding interface
 type IBACnetServiceAckAtomicReadFile interface {
+	IBACnetServiceAck
 	// GetEndOfFile returns EndOfFile
 	GetEndOfFile() *BACnetApplicationTagBoolean
 	// GetAccessMethod returns AccessMethod
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileRecord.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileRecord.go
index f9310e5..b1c19b9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileRecord.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileRecord.go
@@ -36,6 +36,7 @@ type BACnetServiceAckAtomicReadFileRecord struct {
 
 // The corresponding interface
 type IBACnetServiceAckAtomicReadFileRecord interface {
+	IBACnetServiceAckAtomicReadFileStreamOrRecord
 	// GetFileStartRecord returns FileStartRecord
 	GetFileStartRecord() *BACnetApplicationTagSignedInteger
 	// GetReturnedRecordCount returns ReturnedRecordCount
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStream.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStream.go
index 42f9103..df23863 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStream.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFileStream.go
@@ -35,6 +35,7 @@ type BACnetServiceAckAtomicReadFileStream struct {
 
 // The corresponding interface
 type IBACnetServiceAckAtomicReadFileStream interface {
+	IBACnetServiceAckAtomicReadFileStreamOrRecord
 	// GetFileStartPosition returns FileStartPosition
 	GetFileStartPosition() *BACnetApplicationTagSignedInteger
 	// GetFileData returns FileData
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
index 614eb66..0e31805 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
@@ -34,6 +34,7 @@ type BACnetServiceAckAtomicWriteFile struct {
 
 // The corresponding interface
 type IBACnetServiceAckAtomicWriteFile interface {
+	IBACnetServiceAck
 	// GetFileStartPosition returns FileStartPosition
 	GetFileStartPosition() *BACnetContextTagSignedInteger
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
index 146c286..f3cdbfa 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
@@ -32,6 +32,7 @@ type BACnetServiceAckConfirmedPrivateTransfer struct {
 
 // The corresponding interface
 type IBACnetServiceAckConfirmedPrivateTransfer interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
index dbd34c3..e5be97f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
@@ -32,6 +32,7 @@ type BACnetServiceAckCreateObject struct {
 
 // The corresponding interface
 type IBACnetServiceAckCreateObject interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
index fcfc8a7..57762d3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
@@ -32,6 +32,7 @@ type BACnetServiceAckGetAlarmSummary struct {
 
 // The corresponding interface
 type IBACnetServiceAckGetAlarmSummary interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
index 8824cba..4063555 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
@@ -32,6 +32,7 @@ type BACnetServiceAckGetEnrollmentSummary struct {
 
 // The corresponding interface
 type IBACnetServiceAckGetEnrollmentSummary interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
index a8bf301..b6e5360 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
@@ -32,6 +32,7 @@ type BACnetServiceAckGetEventInformation struct {
 
 // The corresponding interface
 type IBACnetServiceAckGetEventInformation interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
index 47c094b..934c754 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
@@ -38,6 +38,7 @@ type BACnetServiceAckReadProperty struct {
 
 // The corresponding interface
 type IBACnetServiceAckReadProperty interface {
+	IBACnetServiceAck
 	// GetObjectIdentifier returns ObjectIdentifier
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
index 9b31ae7..76ae2a2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
@@ -32,6 +32,7 @@ type BACnetServiceAckReadPropertyMultiple struct {
 
 // The corresponding interface
 type IBACnetServiceAckReadPropertyMultiple interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
index be4f556..93dc941 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
@@ -32,6 +32,7 @@ type BACnetServiceAckReadRange struct {
 
 // The corresponding interface
 type IBACnetServiceAckReadRange interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
index 152cefe..6a1e54b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
@@ -32,6 +32,7 @@ type BACnetServiceAckRemovedAuthenticate struct {
 
 // The corresponding interface
 type IBACnetServiceAckRemovedAuthenticate interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
index 57b1269..a7bcb10 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
@@ -32,6 +32,7 @@ type BACnetServiceAckRemovedReadPropertyConditional struct {
 
 // The corresponding interface
 type IBACnetServiceAckRemovedReadPropertyConditional interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
index 09289d6..3a1b625 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
@@ -32,6 +32,7 @@ type BACnetServiceAckVTData struct {
 
 // The corresponding interface
 type IBACnetServiceAckVTData interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
index 2929536..7970eb8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
@@ -32,6 +32,7 @@ type BACnetServiceAckVTOpen struct {
 
 // The corresponding interface
 type IBACnetServiceAckVTOpen interface {
+	IBACnetServiceAck
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampDateTime.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampDateTime.go
index 3303e7e..c6429d7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampDateTime.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampDateTime.go
@@ -37,6 +37,7 @@ type BACnetTimeStampDateTime struct {
 
 // The corresponding interface
 type IBACnetTimeStampDateTime interface {
+	IBACnetTimeStamp
 	// GetDateTimeValue returns DateTimeValue
 	GetDateTimeValue() *BACnetDateTime
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampSequence.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampSequence.go
index 13f14ea..a21c062 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampSequence.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampSequence.go
@@ -37,6 +37,7 @@ type BACnetTimeStampSequence struct {
 
 // The corresponding interface
 type IBACnetTimeStampSequence interface {
+	IBACnetTimeStamp
 	// GetSequenceNumber returns SequenceNumber
 	GetSequenceNumber() *BACnetContextTagUnsignedInteger
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampTime.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampTime.go
index 7c1b3a9..cca952b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampTime.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTimeStampTime.go
@@ -37,6 +37,7 @@ type BACnetTimeStampTime struct {
 
 // The corresponding interface
 type IBACnetTimeStampTime interface {
+	IBACnetTimeStamp
 	// GetTimeValue returns TimeValue
 	GetTimeValue() *BACnetContextTagTime
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
index 1e2be22..25fc808 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
@@ -40,6 +40,7 @@ type BACnetUnconfirmedServiceRequestIAm struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestIAm interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetDeviceIdentifier returns DeviceIdentifier
 	GetDeviceIdentifier() *BACnetApplicationTagObjectIdentifier
 	// GetMaximumApduLengthAcceptedLength returns MaximumApduLengthAcceptedLength
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
index b9f17a8..fc244cd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
@@ -39,6 +39,7 @@ type BACnetUnconfirmedServiceRequestIHave struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestIHave interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetDeviceIdentifier returns DeviceIdentifier
 	GetDeviceIdentifier() *BACnetApplicationTagObjectIdentifier
 	// GetObjectIdentifier returns ObjectIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
index 12410e6..6d376a2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
@@ -38,6 +38,7 @@ type BACnetUnconfirmedServiceRequestTimeSynchronization struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestTimeSynchronization interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetSynchronizedDate returns SynchronizedDate
 	GetSynchronizedDate() *BACnetApplicationTagDate
 	// GetSynchronizedTime returns SynchronizedTime
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
index 90d31bc..2ec5ea2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
@@ -35,6 +35,7 @@ type BACnetUnconfirmedServiceRequestUTCTimeSynchronization struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestUTCTimeSynchronization interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
index bbbe093..bc575ec 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
@@ -41,6 +41,7 @@ type BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestUnconfirmedCOVNotification interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetSubscriberProcessIdentifier returns SubscriberProcessIdentifier
 	GetSubscriberProcessIdentifier() *BACnetContextTagUnsignedInteger
 	// GetInitiatingDeviceIdentifier returns InitiatingDeviceIdentifier
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
index 67666b0..eeb2f00 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
@@ -35,6 +35,7 @@ type BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
index 452bf38..7330241 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
@@ -35,6 +35,7 @@ type BACnetUnconfirmedServiceRequestUnconfirmedEventNotification struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestUnconfirmedEventNotification interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
index cead9c6..213315b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
@@ -40,6 +40,7 @@ type BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetVendorId returns VendorId
 	GetVendorId() *BACnetContextTagUnsignedInteger
 	// GetServiceNumber returns ServiceNumber
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
index 31aa98d..36ef0ac 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
@@ -35,6 +35,7 @@ type BACnetUnconfirmedServiceRequestUnconfirmedTextMessage struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestUnconfirmedTextMessage interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedUnknown.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedUnknown.go
index e953ccb..d901095 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedUnknown.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedUnknown.go
@@ -37,6 +37,7 @@ type BACnetUnconfirmedServiceRequestUnconfirmedUnknown struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestUnconfirmedUnknown interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetUnknownBytes returns UnknownBytes
 	GetUnknownBytes() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
index bd7f223..46bfd6b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
@@ -41,6 +41,7 @@ type BACnetUnconfirmedServiceRequestWhoHas struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestWhoHas interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetDeviceInstanceRangeLowLimit returns DeviceInstanceRangeLowLimit
 	GetDeviceInstanceRangeLowLimit() *BACnetContextTagUnsignedInteger
 	// GetDeviceInstanceRangeHighLimit returns DeviceInstanceRangeHighLimit
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
index 5f7e0a4..1f2e13f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
@@ -39,6 +39,7 @@ type BACnetUnconfirmedServiceRequestWhoIs struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestWhoIs interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetDeviceInstanceRangeLowLimit returns DeviceInstanceRangeLowLimit
 	GetDeviceInstanceRangeLowLimit() *BACnetContextTagUnsignedInteger
 	// GetDeviceInstanceRangeHighLimit returns DeviceInstanceRangeHighLimit
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
index b908f2c..3f05d16 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
@@ -35,6 +35,7 @@ type BACnetUnconfirmedServiceRequestWriteGroup struct {
 
 // The corresponding interface
 type IBACnetUnconfirmedServiceRequestWriteGroup interface {
+	IBACnetUnconfirmedServiceRequest
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
index 6d13daf..b1373ad 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
@@ -32,6 +32,7 @@ type BVLCDeleteForeignDeviceTableEntry struct {
 
 // The corresponding interface
 type IBVLCDeleteForeignDeviceTableEntry interface {
+	IBVLC
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
index cf796f4..aacf9270 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
@@ -37,6 +37,7 @@ type BVLCDistributeBroadcastToNetwork struct {
 
 // The corresponding interface
 type IBVLCDistributeBroadcastToNetwork interface {
+	IBVLC
 	// GetNpdu returns Npdu
 	GetNpdu() *NPDU
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
index 75e6159..2c69d3c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
@@ -39,6 +39,7 @@ type BVLCForwardedNPDU struct {
 
 // The corresponding interface
 type IBVLCForwardedNPDU interface {
+	IBVLC
 	// GetIp returns Ip
 	GetIp() []uint8
 	// GetPort returns Port
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
index 5ac1dd1..73df046 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
@@ -37,6 +37,7 @@ type BVLCOriginalBroadcastNPDU struct {
 
 // The corresponding interface
 type IBVLCOriginalBroadcastNPDU interface {
+	IBVLC
 	// GetNpdu returns Npdu
 	GetNpdu() *NPDU
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
index eec5e48..bf3df72 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
@@ -37,6 +37,7 @@ type BVLCOriginalUnicastNPDU struct {
 
 // The corresponding interface
 type IBVLCOriginalUnicastNPDU interface {
+	IBVLC
 	// GetNpdu returns Npdu
 	GetNpdu() *NPDU
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
index 2916d3d..1cb2261 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
@@ -32,6 +32,7 @@ type BVLCReadBroadcastDistributionTable struct {
 
 // The corresponding interface
 type IBVLCReadBroadcastDistributionTable interface {
+	IBVLC
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
index c885606..f41633a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
@@ -32,6 +32,7 @@ type BVLCReadBroadcastDistributionTableAck struct {
 
 // The corresponding interface
 type IBVLCReadBroadcastDistributionTableAck interface {
+	IBVLC
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
index fe0598e..68eaa02 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
@@ -32,6 +32,7 @@ type BVLCReadForeignDeviceTable struct {
 
 // The corresponding interface
 type IBVLCReadForeignDeviceTable interface {
+	IBVLC
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
index 88e79c8..ba46c6c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
@@ -32,6 +32,7 @@ type BVLCReadForeignDeviceTableAck struct {
 
 // The corresponding interface
 type IBVLCReadForeignDeviceTableAck interface {
+	IBVLC
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
index 13c7732..e30d294 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
@@ -34,6 +34,7 @@ type BVLCRegisterForeignDevice struct {
 
 // The corresponding interface
 type IBVLCRegisterForeignDevice interface {
+	IBVLC
 	// GetTtl returns Ttl
 	GetTtl() uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
index 5700d43..706f070 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
@@ -34,6 +34,7 @@ type BVLCResult struct {
 
 // The corresponding interface
 type IBVLCResult interface {
+	IBVLC
 	// GetCode returns Code
 	GetCode() BVLCResultCode
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
index 915207f..1ecf858 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
@@ -32,6 +32,7 @@ type BVLCSecureBVLL struct {
 
 // The corresponding interface
 type IBVLCSecureBVLL interface {
+	IBVLC
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go
index 2334417..4e8afcb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWriteBroadcastDistributionTable.go
@@ -37,6 +37,7 @@ type BVLCWriteBroadcastDistributionTable struct {
 
 // The corresponding interface
 type IBVLCWriteBroadcastDistributionTable interface {
+	IBVLC
 	// GetTable returns Table
 	GetTable() []*BVLCWriteBroadcastDistributionTableEntry
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMDisconnectConnectionToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMDisconnectConnectionToNetwork.go
index 13d4eb9..dfbe6c1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMDisconnectConnectionToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMDisconnectConnectionToNetwork.go
@@ -37,6 +37,7 @@ type NLMDisconnectConnectionToNetwork struct {
 
 // The corresponding interface
 type INLMDisconnectConnectionToNetwork interface {
+	INLM
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
 	GetDestinationNetworkAddress() uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMEstablishConnectionToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMEstablishConnectionToNetwork.go
index 4956e6e..0bc70ef 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMEstablishConnectionToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMEstablishConnectionToNetwork.go
@@ -38,6 +38,7 @@ type NLMEstablishConnectionToNetwork struct {
 
 // The corresponding interface
 type INLMEstablishConnectionToNetwork interface {
+	INLM
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
 	GetDestinationNetworkAddress() uint16
 	// GetTerminationTime returns TerminationTime
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
index 0767a25..728f7e4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
@@ -37,6 +37,7 @@ type NLMIAmRouterToNetwork struct {
 
 // The corresponding interface
 type INLMIAmRouterToNetwork interface {
+	INLM
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
 	GetDestinationNetworkAddress() []uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMICouldBeRouterToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMICouldBeRouterToNetwork.go
index 38fc634..a5d2c83 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMICouldBeRouterToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMICouldBeRouterToNetwork.go
@@ -38,6 +38,7 @@ type NLMICouldBeRouterToNetwork struct {
 
 // The corresponding interface
 type INLMICouldBeRouterToNetwork interface {
+	INLM
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
 	GetDestinationNetworkAddress() uint16
 	// GetPerformanceIndex returns PerformanceIndex
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTable.go
index ebfa58c..39e4289 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTable.go
@@ -38,6 +38,7 @@ type NLMInitalizeRoutingTable struct {
 
 // The corresponding interface
 type INLMInitalizeRoutingTable interface {
+	INLM
 	// GetNumberOfPorts returns NumberOfPorts
 	GetNumberOfPorts() uint8
 	// GetPortMappings returns PortMappings
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTableAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTableAck.go
index 6e0d603..38ad100 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTableAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMInitalizeRoutingTableAck.go
@@ -38,6 +38,7 @@ type NLMInitalizeRoutingTableAck struct {
 
 // The corresponding interface
 type INLMInitalizeRoutingTableAck interface {
+	INLM
 	// GetNumberOfPorts returns NumberOfPorts
 	GetNumberOfPorts() uint8
 	// GetPortMappings returns PortMappings
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRejectRouterToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRejectRouterToNetwork.go
index 76dd25b..5a7ac6d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRejectRouterToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRejectRouterToNetwork.go
@@ -38,6 +38,7 @@ type NLMRejectRouterToNetwork struct {
 
 // The corresponding interface
 type INLMRejectRouterToNetwork interface {
+	INLM
 	// GetRejectReason returns RejectReason
 	GetRejectReason() NLMRejectRouterToNetworkRejectReason
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterAvailableToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterAvailableToNetwork.go
index 4986572..562f239 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterAvailableToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterAvailableToNetwork.go
@@ -37,6 +37,7 @@ type NLMRouterAvailableToNetwork struct {
 
 // The corresponding interface
 type INLMRouterAvailableToNetwork interface {
+	INLM
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
 	GetDestinationNetworkAddress() []uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterBusyToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterBusyToNetwork.go
index 52dc874..6d32478 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterBusyToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMRouterBusyToNetwork.go
@@ -37,6 +37,7 @@ type NLMRouterBusyToNetwork struct {
 
 // The corresponding interface
 type INLMRouterBusyToNetwork interface {
+	INLM
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
 	GetDestinationNetworkAddress() []uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
index 3126563..d811fe9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
@@ -37,6 +37,7 @@ type NLMWhoIsRouterToNetwork struct {
 
 // The corresponding interface
 type INLMWhoIsRouterToNetwork interface {
+	INLM
 	// GetDestinationNetworkAddress returns DestinationNetworkAddress
 	GetDestinationNetworkAddress() []uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyAcknowledge.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyAcknowledge.go
index 5a90724..3fb51e5 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyAcknowledge.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyAcknowledge.go
@@ -35,6 +35,7 @@ type CALDataReplyAcknowledge struct {
 
 // The corresponding interface
 type ICALDataReplyAcknowledge interface {
+	ICALData
 	// GetParamNo returns ParamNo
 	GetParamNo() uint8
 	// GetCode returns Code
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyReply.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyReply.go
index 5015177..d26f93f 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyReply.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyReply.go
@@ -35,6 +35,7 @@ type CALDataReplyReply struct {
 
 // The corresponding interface
 type ICALDataReplyReply interface {
+	ICALData
 	// GetParamNumber returns ParamNumber
 	GetParamNumber() uint8
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatus.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatus.go
index 37c2e0c..e72f2b9 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatus.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatus.go
@@ -36,6 +36,7 @@ type CALDataReplyStatus struct {
 
 // The corresponding interface
 type ICALDataReplyStatus interface {
+	ICALData
 	// GetApplication returns Application
 	GetApplication() ApplicationIdContainer
 	// GetBlockStart returns BlockStart
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatusExtended.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatusExtended.go
index ebcb564..2503510 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatusExtended.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataReplyStatusExtended.go
@@ -37,6 +37,7 @@ type CALDataReplyStatusExtended struct {
 
 // The corresponding interface
 type ICALDataReplyStatusExtended interface {
+	ICALData
 	// GetEncoding returns Encoding
 	GetEncoding() uint8
 	// GetApplication returns Application
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestGetStatus.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestGetStatus.go
index 406b4b8..45e4ccc 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestGetStatus.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestGetStatus.go
@@ -35,6 +35,7 @@ type CALDataRequestGetStatus struct {
 
 // The corresponding interface
 type ICALDataRequestGetStatus interface {
+	ICALData
 	// GetParamNo returns ParamNo
 	GetParamNo() uint8
 	// GetCount returns Count
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestIdentify.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestIdentify.go
index 6151e51..ea79300 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestIdentify.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestIdentify.go
@@ -34,6 +34,7 @@ type CALDataRequestIdentify struct {
 
 // The corresponding interface
 type ICALDataRequestIdentify interface {
+	ICALData
 	// GetAttribute returns Attribute
 	GetAttribute() Attribute
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestRecall.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestRecall.go
index 5c1a2fd..37bca54 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestRecall.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestRecall.go
@@ -35,6 +35,7 @@ type CALDataRequestRecall struct {
 
 // The corresponding interface
 type ICALDataRequestRecall interface {
+	ICALData
 	// GetParamNo returns ParamNo
 	GetParamNo() uint8
 	// GetCount returns Count
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestReset.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestReset.go
index 2d2d2da..1369962 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestReset.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALDataRequestReset.go
@@ -32,6 +32,7 @@ type CALDataRequestReset struct {
 
 // The corresponding interface
 type ICALDataRequestReset interface {
+	ICALData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyLong.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyLong.go
index c60e8e8..848fb16 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyLong.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyLong.go
@@ -41,6 +41,7 @@ type CALReplyLong struct {
 
 // The corresponding interface
 type ICALReplyLong interface {
+	ICALReply
 	// GetTerminatingByte returns TerminatingByte
 	GetTerminatingByte() uint32
 	// GetUnitAddress returns UnitAddress
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyReply.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyReply.go
index 6b9b3b7..331babd 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyReply.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyReply.go
@@ -34,6 +34,7 @@ type CALReplyReply struct {
 
 // The corresponding interface
 type ICALReplyReply interface {
+	IReply
 	// GetIsA returns IsA
 	GetIsA() *CALReply
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyShort.go b/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyShort.go
index 6c12966..661a9d0 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyShort.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CALReplyShort.go
@@ -32,6 +32,7 @@ type CALReplyShort struct {
 
 // The corresponding interface
 type ICALReplyShort interface {
+	ICALReply
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToMultiPoint.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToMultiPoint.go
index 11ddf15..b0b451e 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToMultiPoint.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToMultiPoint.go
@@ -37,6 +37,7 @@ type CBusCommandPointToMultiPoint struct {
 
 // The corresponding interface
 type ICBusCommandPointToMultiPoint interface {
+	ICBusCommand
 	// GetCommand returns Command
 	GetCommand() *CBusPointToMultiPointCommand
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPoint.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPoint.go
index 4c4223c..cd3d12a 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPoint.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPoint.go
@@ -37,6 +37,7 @@ type CBusCommandPointToPoint struct {
 
 // The corresponding interface
 type ICBusCommandPointToPoint interface {
+	ICBusCommand
 	// GetCommand returns Command
 	GetCommand() *CBusPointToPointCommand
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPoint.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPoint.go
index 8c41945..6d13743 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPoint.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPoint.go
@@ -37,6 +37,7 @@ type CBusCommandPointToPointToMultiPoint struct {
 
 // The corresponding interface
 type ICBusCommandPointToPointToMultiPoint interface {
+	ICBusCommand
 	// GetCommand returns Command
 	GetCommand() *CBusPointToPointToMultipointCommand
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointNormal.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointNormal.go
index acf3ed2..923e65d 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointNormal.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointNormal.go
@@ -46,6 +46,7 @@ type CBusCommandPointToPointToMultiPointNormal struct {
 
 // The corresponding interface
 type ICBusCommandPointToPointToMultiPointNormal interface {
+	ICBusPointToPointToMultipointCommand
 	// GetApplication returns Application
 	GetApplication() ApplicationIdContainer
 	// GetSalData returns SalData
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointStatus.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointStatus.go
index 8a76a0d..670762c 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointStatus.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusCommandPointToPointToMultiPointStatus.go
@@ -46,6 +46,7 @@ type CBusCommandPointToPointToMultiPointStatus struct {
 
 // The corresponding interface
 type ICBusCommandPointToPointToMultiPointStatus interface {
+	ICBusPointToPointToMultipointCommand
 	// GetStatusRequest returns StatusRequest
 	GetStatusRequest() *StatusRequest
 	// GetCrc returns Crc
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandNormal.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandNormal.go
index 903e409..d0d86f8 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandNormal.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandNormal.go
@@ -47,6 +47,7 @@ type CBusPointToMultiPointCommandNormal struct {
 
 // The corresponding interface
 type ICBusPointToMultiPointCommandNormal interface {
+	ICBusPointToMultiPointCommand
 	// GetApplication returns Application
 	GetApplication() ApplicationIdContainer
 	// GetSalData returns SalData
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandStatus.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandStatus.go
index e65930d..27df344 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandStatus.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToMultiPointCommandStatus.go
@@ -46,6 +46,7 @@ type CBusPointToMultiPointCommandStatus struct {
 
 // The corresponding interface
 type ICBusPointToMultiPointCommandStatus interface {
+	ICBusPointToMultiPointCommand
 	// GetStatusRequest returns StatusRequest
 	GetStatusRequest() *StatusRequest
 	// GetCrc returns Crc
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandDirect.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandDirect.go
index bbbc816..f7bbcbb 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandDirect.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandDirect.go
@@ -38,6 +38,7 @@ type CBusPointToPointCommandDirect struct {
 
 // The corresponding interface
 type ICBusPointToPointCommandDirect interface {
+	ICBusPointToPointCommand
 	// GetUnitAddress returns UnitAddress
 	GetUnitAddress() *UnitAddress
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandIndirect.go b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandIndirect.go
index 44a21bf..f02bb25 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandIndirect.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/CBusPointToPointCommandIndirect.go
@@ -39,6 +39,7 @@ type CBusPointToPointCommandIndirect struct {
 
 // The corresponding interface
 type ICBusPointToPointCommandIndirect interface {
+	ICBusPointToPointCommand
 	// GetBridgeAddress returns BridgeAddress
 	GetBridgeAddress() *BridgeAddress
 	// GetNetworkRoute returns NetworkRoute
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationReply.go b/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationReply.go
index 88ba067..f65235d 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationReply.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationReply.go
@@ -34,6 +34,7 @@ type ConfirmationReply struct {
 
 // The corresponding interface
 type IConfirmationReply interface {
+	IReply
 	// GetIsA returns IsA
 	GetIsA() *Confirmation
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationSuccessful.go b/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationSuccessful.go
index c338338..36e32a1 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationSuccessful.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/ConfirmationSuccessful.go
@@ -32,6 +32,7 @@ type ConfirmationSuccessful struct {
 
 // The corresponding interface
 type IConfirmationSuccessful interface {
+	IConfirmation
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/ExclamationMarkReply.go b/plc4go/internal/plc4go/cbus/readwrite/model/ExclamationMarkReply.go
index 446043a..a602cc3 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/ExclamationMarkReply.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/ExclamationMarkReply.go
@@ -34,6 +34,7 @@ type ExclamationMarkReply struct {
 
 // The corresponding interface
 type IExclamationMarkReply interface {
+	IReply
 	// GetIsA returns IsA
 	GetIsA() *ExclamationMark
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandCurrentSenseLevels.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandCurrentSenseLevels.go
index 52eb200..813594e 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandCurrentSenseLevels.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandCurrentSenseLevels.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandCurrentSenseLevels struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandCurrentSenseLevels interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDSIStatus.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDSIStatus.go
index 1689313..0cc6a22 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDSIStatus.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDSIStatus.go
@@ -43,6 +43,7 @@ type IdentifyReplyCommandDSIStatus struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandDSIStatus interface {
+	IIdentifyReplyCommand
 	// GetChannelStatus1 returns ChannelStatus1
 	GetChannelStatus1() ChannelStatus
 	// GetChannelStatus2 returns ChannelStatus2
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDelays.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDelays.go
index cdc8c7f..45ed68c 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDelays.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandDelays.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandDelays struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandDelays interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandExtendedDiagnosticSummary.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandExtendedDiagnosticSummary.go
index 7b58a35..e6881a4 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandExtendedDiagnosticSummary.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandExtendedDiagnosticSummary.go
@@ -53,6 +53,7 @@ type IdentifyReplyCommandExtendedDiagnosticSummary struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandExtendedDiagnosticSummary interface {
+	IIdentifyReplyCommand
 	// GetLowApplication returns LowApplication
 	GetLowApplication() ApplicationIdContainer
 	// GetHighApplication returns HighApplication
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareSummary.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareSummary.go
index fb74fef..46eb9cc 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareSummary.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareSummary.go
@@ -36,6 +36,7 @@ type IdentifyReplyCommandFirmwareSummary struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandFirmwareSummary interface {
+	IIdentifyReplyCommand
 	// GetFirmwareVersion returns FirmwareVersion
 	GetFirmwareVersion() string
 	// GetUnitServiceType returns UnitServiceType
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareVersion.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareVersion.go
index 1df328f..369b885 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareVersion.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandFirmwareVersion.go
@@ -34,6 +34,7 @@ type IdentifyReplyCommandFirmwareVersion struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandFirmwareVersion interface {
+	IIdentifyReplyCommand
 	// GetFirmwareVersion returns FirmwareVersion
 	GetFirmwareVersion() string
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVPhysicalAddresses.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVPhysicalAddresses.go
index 62f0c0a..22206fe 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVPhysicalAddresses.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVPhysicalAddresses.go
@@ -34,6 +34,7 @@ type IdentifyReplyCommandGAVPhysicalAddresses struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandGAVPhysicalAddresses interface {
+	IIdentifyReplyCommand
 	// GetValues returns Values
 	GetValues() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesCurrent.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesCurrent.go
index 65a52f4..af63722 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesCurrent.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesCurrent.go
@@ -34,6 +34,7 @@ type IdentifyReplyCommandGAVValuesCurrent struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandGAVValuesCurrent interface {
+	IIdentifyReplyCommand
 	// GetValues returns Values
 	GetValues() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesStored.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesStored.go
index b2eb285..0b14e9e 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesStored.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandGAVValuesStored.go
@@ -34,6 +34,7 @@ type IdentifyReplyCommandGAVValuesStored struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandGAVValuesStored interface {
+	IIdentifyReplyCommand
 	// GetValues returns Values
 	GetValues() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandLogicalAssignment.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandLogicalAssignment.go
index c872f9f..e8a244b 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandLogicalAssignment.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandLogicalAssignment.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandLogicalAssignment struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandLogicalAssignment interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandManufacturer.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandManufacturer.go
index c4ef3e3..1d19996 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandManufacturer.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandManufacturer.go
@@ -34,6 +34,7 @@ type IdentifyReplyCommandManufacturer struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandManufacturer interface {
+	IIdentifyReplyCommand
 	// GetManufacturerName returns ManufacturerName
 	GetManufacturerName() string
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMaximumLevels.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMaximumLevels.go
index 7ef4798..9dbc12f 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMaximumLevels.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMaximumLevels.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandMaximumLevels struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandMaximumLevels interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMinimumLevels.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMinimumLevels.go
index 3e742c3..c4d1ec3 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMinimumLevels.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandMinimumLevels.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandMinimumLevels struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandMinimumLevels interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkTerminalLevels.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkTerminalLevels.go
index 2919fb5..466fe15 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkTerminalLevels.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkTerminalLevels.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandNetworkTerminalLevels struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandNetworkTerminalLevels interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkVoltage.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkVoltage.go
index 826471f..ec4b06b 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkVoltage.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandNetworkVoltage.go
@@ -40,6 +40,7 @@ type IdentifyReplyCommandNetworkVoltage struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandNetworkVoltage interface {
+	IIdentifyReplyCommand
 	// GetVolts returns Volts
 	GetVolts() string
 	// GetVoltsDecimalPlace returns VoltsDecimalPlace
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandOutputUnitSummary.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandOutputUnitSummary.go
index 27f676c..becc08e 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandOutputUnitSummary.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandOutputUnitSummary.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandOutputUnitSummary struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandOutputUnitSummary interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandTerminalLevels.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandTerminalLevels.go
index 04c07c4..86164f6 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandTerminalLevels.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandTerminalLevels.go
@@ -32,6 +32,7 @@ type IdentifyReplyCommandTerminalLevels struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandTerminalLevels interface {
+	IIdentifyReplyCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandType.go b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandType.go
index 2e50b94..dfa748a 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandType.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/IdentifyReplyCommandType.go
@@ -34,6 +34,7 @@ type IdentifyReplyCommandType struct {
 
 // The corresponding interface
 type IIdentifyReplyCommandType interface {
+	IIdentifyReplyCommand
 	// GetUnitType returns UnitType
 	GetUnitType() string
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALLongFormSmartMode.go b/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALLongFormSmartMode.go
index ab61a40..1d718f2 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALLongFormSmartMode.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALLongFormSmartMode.go
@@ -41,6 +41,7 @@ type MonitoredSALLongFormSmartMode struct {
 
 // The corresponding interface
 type IMonitoredSALLongFormSmartMode interface {
+	IMonitoredSAL
 	// GetTerminatingByte returns TerminatingByte
 	GetTerminatingByte() uint32
 	// GetUnitAddress returns UnitAddress
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALReply.go b/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALReply.go
index 9530baf..6ca839c 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALReply.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALReply.go
@@ -34,6 +34,7 @@ type MonitoredSALReply struct {
 
 // The corresponding interface
 type IMonitoredSALReply interface {
+	IReply
 	// GetIsA returns IsA
 	GetIsA() *MonitoredSAL
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALShortFormBasicMode.go b/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALShortFormBasicMode.go
index 566bc41..2fabe11 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALShortFormBasicMode.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/MonitoredSALShortFormBasicMode.go
@@ -39,6 +39,7 @@ type MonitoredSALShortFormBasicMode struct {
 
 // The corresponding interface
 type IMonitoredSALShortFormBasicMode interface {
+	IMonitoredSAL
 	// GetCounts returns Counts
 	GetCounts() byte
 	// GetBridgeCount returns BridgeCount
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedCorruption.go b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedCorruption.go
index 559fd93..afb41e4 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedCorruption.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedCorruption.go
@@ -32,6 +32,7 @@ type NotTransmittedCorruption struct {
 
 // The corresponding interface
 type INotTransmittedCorruption interface {
+	IConfirmation
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedSyncLoss.go b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedSyncLoss.go
index ecceb3d..aca4bea 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedSyncLoss.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedSyncLoss.go
@@ -32,6 +32,7 @@ type NotTransmittedSyncLoss struct {
 
 // The corresponding interface
 type INotTransmittedSyncLoss interface {
+	IConfirmation
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedToManyReTransmissions.go b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedToManyReTransmissions.go
index 4c35dcd..a3f3327 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedToManyReTransmissions.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedToManyReTransmissions.go
@@ -32,6 +32,7 @@ type NotTransmittedToManyReTransmissions struct {
 
 // The corresponding interface
 type INotTransmittedToManyReTransmissions interface {
+	IConfirmation
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedTooLong.go b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedTooLong.go
index b15734f..266b3c9 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedTooLong.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/NotTransmittedTooLong.go
@@ -32,6 +32,7 @@ type NotTransmittedTooLong struct {
 
 // The corresponding interface
 type INotTransmittedTooLong interface {
+	IConfirmation
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/ParameterChangeReply.go b/plc4go/internal/plc4go/cbus/readwrite/model/ParameterChangeReply.go
index 9c125fa..11b6a39 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/ParameterChangeReply.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/ParameterChangeReply.go
@@ -34,6 +34,7 @@ type ParameterChangeReply struct {
 
 // The corresponding interface
 type IParameterChangeReply interface {
+	IReply
 	// GetIsA returns IsA
 	GetIsA() *ParameterChange
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/PowerUpReply.go b/plc4go/internal/plc4go/cbus/readwrite/model/PowerUpReply.go
index 753057f..15f907d 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/PowerUpReply.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/PowerUpReply.go
@@ -34,6 +34,7 @@ type PowerUpReply struct {
 
 // The corresponding interface
 type IPowerUpReply interface {
+	IReply
 	// GetIsA returns IsA
 	GetIsA() *PowerUp
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOff.go b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOff.go
index 29ff74e..3907611 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOff.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOff.go
@@ -34,6 +34,7 @@ type SALDataOff struct {
 
 // The corresponding interface
 type ISALDataOff interface {
+	ISALData
 	// GetGroup returns Group
 	GetGroup() byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOn.go b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOn.go
index 7c46a39..0c3020a 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOn.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataOn.go
@@ -34,6 +34,7 @@ type SALDataOn struct {
 
 // The corresponding interface
 type ISALDataOn interface {
+	ISALData
 	// GetGroup returns Group
 	GetGroup() byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataRampToLevel.go b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataRampToLevel.go
index 2a16b5b..15c1a7c 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataRampToLevel.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataRampToLevel.go
@@ -35,6 +35,7 @@ type SALDataRampToLevel struct {
 
 // The corresponding interface
 type ISALDataRampToLevel interface {
+	ISALData
 	// GetGroup returns Group
 	GetGroup() byte
 	// GetLevel returns Level
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataTerminateRamp.go b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataTerminateRamp.go
index ec4f091..01f29bf 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/SALDataTerminateRamp.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/SALDataTerminateRamp.go
@@ -34,6 +34,7 @@ type SALDataTerminateRamp struct {
 
 // The corresponding interface
 type ISALDataTerminateRamp interface {
+	ISALData
 	// GetGroup returns Group
 	GetGroup() byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestBinaryState.go b/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestBinaryState.go
index 3bd3ab5..48aff59 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestBinaryState.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestBinaryState.go
@@ -35,6 +35,7 @@ type StatusRequestBinaryState struct {
 
 // The corresponding interface
 type IStatusRequestBinaryState interface {
+	IStatusRequest
 	// GetApplication returns Application
 	GetApplication() byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestLevel.go b/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestLevel.go
index 31bd985..b6c6246 100644
--- a/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestLevel.go
+++ b/plc4go/internal/plc4go/cbus/readwrite/model/StatusRequestLevel.go
@@ -36,6 +36,7 @@ type StatusRequestLevel struct {
 
 // The corresponding interface
 type IStatusRequestLevel interface {
+	IStatusRequest
 	// GetApplication returns Application
 	GetApplication() byte
 	// GetStartingGroupAddressLabel returns StartingGroupAddressLabel
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go
index 39ee019..e6c2f0a 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrame.go
@@ -41,6 +41,7 @@ type DF1SymbolMessageFrame struct {
 
 // The corresponding interface
 type IDF1SymbolMessageFrame interface {
+	IDF1Symbol
 	// GetDestinationAddress returns DestinationAddress
 	GetDestinationAddress() uint8
 	// GetSourceAddress returns SourceAddress
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go
index ff70430..94d3ff7 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameACK.go
@@ -32,6 +32,7 @@ type DF1SymbolMessageFrameACK struct {
 
 // The corresponding interface
 type IDF1SymbolMessageFrameACK interface {
+	IDF1Symbol
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go
index 0d45a02..ffd26d6 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1SymbolMessageFrameNAK.go
@@ -32,6 +32,7 @@ type DF1SymbolMessageFrameNAK struct {
 
 // The corresponding interface
 type IDF1SymbolMessageFrameNAK interface {
+	IDF1Symbol
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadRequest.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadRequest.go
index 8eabafe..5574434 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadRequest.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadRequest.go
@@ -35,6 +35,7 @@ type DF1UnprotectedReadRequest struct {
 
 // The corresponding interface
 type IDF1UnprotectedReadRequest interface {
+	IDF1Command
 	// GetAddress returns Address
 	GetAddress() uint16
 	// GetSize returns Size
diff --git a/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadResponse.go b/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadResponse.go
index 6486080..f73376b 100644
--- a/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadResponse.go
+++ b/plc4go/internal/plc4go/df1/readwrite/model/DF1UnprotectedReadResponse.go
@@ -33,6 +33,7 @@ type DF1UnprotectedReadResponse struct {
 
 // The corresponding interface
 type IDF1UnprotectedReadResponse interface {
+	IDF1Command
 	// GetData returns Data
 	GetData() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipRRData.go b/plc4go/internal/plc4go/eip/readwrite/model/CipRRData.go
index 1f6733a..0a9fb55 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipRRData.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipRRData.go
@@ -38,6 +38,7 @@ type CipRRData struct {
 
 // The corresponding interface
 type ICipRRData interface {
+	IEipPacket
 	// GetExchange returns Exchange
 	GetExchange() *CipExchange
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go
index dc6c4c4..1c948f5 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipReadRequest.go
@@ -39,6 +39,7 @@ type CipReadRequest struct {
 
 // The corresponding interface
 type ICipReadRequest interface {
+	ICipService
 	// GetRequestPathSize returns RequestPathSize
 	GetRequestPathSize() int8
 	// GetTag returns Tag
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go b/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go
index 60fcea2..fac3176 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipReadResponse.go
@@ -41,6 +41,7 @@ type CipReadResponse struct {
 
 // The corresponding interface
 type ICipReadResponse interface {
+	ICipService
 	// GetStatus returns Status
 	GetStatus() uint8
 	// GetExtStatus returns ExtStatus
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go
index 14177c4..7b7cd06 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipUnconnectedRequest.go
@@ -44,6 +44,7 @@ type CipUnconnectedRequest struct {
 
 // The corresponding interface
 type ICipUnconnectedRequest interface {
+	ICipService
 	// GetUnconnectedService returns UnconnectedService
 	GetUnconnectedService() *CipService
 	// GetBackPlane returns BackPlane
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go
index 7dcdb1b..ca45214 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteRequest.go
@@ -41,6 +41,7 @@ type CipWriteRequest struct {
 
 // The corresponding interface
 type ICipWriteRequest interface {
+	ICipService
 	// GetRequestPathSize returns RequestPathSize
 	GetRequestPathSize() int8
 	// GetTag returns Tag
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go
index 3efb58e..d5173b7 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/CipWriteResponse.go
@@ -39,6 +39,7 @@ type CipWriteResponse struct {
 
 // The corresponding interface
 type ICipWriteResponse interface {
+	ICipService
 	// GetStatus returns Status
 	GetStatus() uint8
 	// GetExtStatus returns ExtStatus
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/EipConnectionRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/EipConnectionRequest.go
index b4daea1..9ea8dbf 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/EipConnectionRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/EipConnectionRequest.go
@@ -38,6 +38,7 @@ type EipConnectionRequest struct {
 
 // The corresponding interface
 type IEipConnectionRequest interface {
+	IEipPacket
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/EipDisconnectRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/EipDisconnectRequest.go
index 99d3a22..4ecca3d 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/EipDisconnectRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/EipDisconnectRequest.go
@@ -32,6 +32,7 @@ type EipDisconnectRequest struct {
 
 // The corresponding interface
 type IEipDisconnectRequest interface {
+	IEipPacket
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go
index d8168df..6a5247a 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceRequest.go
@@ -42,6 +42,7 @@ type MultipleServiceRequest struct {
 
 // The corresponding interface
 type IMultipleServiceRequest interface {
+	ICipService
 	// GetData returns Data
 	GetData() *Services
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go
index 97f93fc..9b2247d 100644
--- a/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go
+++ b/plc4go/internal/plc4go/eip/readwrite/model/MultipleServiceResponse.go
@@ -42,6 +42,7 @@ type MultipleServiceResponse struct {
 
 // The corresponding interface
 type IMultipleServiceResponse interface {
+	ICipService
 	// GetStatus returns Status
 	GetStatus() uint8
 	// GetExtStatus returns ExtStatus
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go
index 4d265cc..6b54d93 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandProtocolVersion.go
@@ -38,6 +38,7 @@ type FirmataCommandProtocolVersion struct {
 
 // The corresponding interface
 type IFirmataCommandProtocolVersion interface {
+	IFirmataCommand
 	// GetMajorVersion returns MajorVersion
 	GetMajorVersion() uint8
 	// GetMinorVersion returns MinorVersion
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go
index 9216454..eee3cca 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetDigitalPinValue.go
@@ -39,6 +39,7 @@ type FirmataCommandSetDigitalPinValue struct {
 
 // The corresponding interface
 type IFirmataCommandSetDigitalPinValue interface {
+	IFirmataCommand
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetOn returns On
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go
index 67b1e80..38762c5 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSetPinMode.go
@@ -38,6 +38,7 @@ type FirmataCommandSetPinMode struct {
 
 // The corresponding interface
 type IFirmataCommandSetPinMode interface {
+	IFirmataCommand
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetMode returns Mode
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go
index d33a201..2017e57 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSysex.go
@@ -38,6 +38,7 @@ type FirmataCommandSysex struct {
 
 // The corresponding interface
 type IFirmataCommandSysex interface {
+	IFirmataCommand
 	// GetCommand returns Command
 	GetCommand() *SysexCommand
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go
index e73965e..cdafe19 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataCommandSystemReset.go
@@ -35,6 +35,7 @@ type FirmataCommandSystemReset struct {
 
 // The corresponding interface
 type IFirmataCommandSystemReset interface {
+	IFirmataCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go
index 25c3bb5..e0e381e 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageAnalogIO.go
@@ -38,6 +38,7 @@ type FirmataMessageAnalogIO struct {
 
 // The corresponding interface
 type IFirmataMessageAnalogIO interface {
+	IFirmataMessage
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go
index 4fbf1fc..4a5d3e7 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageCommand.go
@@ -37,6 +37,7 @@ type FirmataMessageCommand struct {
 
 // The corresponding interface
 type IFirmataMessageCommand interface {
+	IFirmataMessage
 	// GetCommand returns Command
 	GetCommand() *FirmataCommand
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go
index c089671..f107265 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageDigitalIO.go
@@ -38,6 +38,7 @@ type FirmataMessageDigitalIO struct {
 
 // The corresponding interface
 type IFirmataMessageDigitalIO interface {
+	IFirmataMessage
 	// GetPinBlock returns PinBlock
 	GetPinBlock() uint8
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go
index e9e0f735..4ec9cf1 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeAnalogPinValue.go
@@ -39,6 +39,7 @@ type FirmataMessageSubscribeAnalogPinValue struct {
 
 // The corresponding interface
 type IFirmataMessageSubscribeAnalogPinValue interface {
+	IFirmataMessage
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetEnable returns Enable
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go
index ebb5f1c..cfcf451 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/FirmataMessageSubscribeDigitalPinValue.go
@@ -39,6 +39,7 @@ type FirmataMessageSubscribeDigitalPinValue struct {
 
 // The corresponding interface
 type IFirmataMessageSubscribeDigitalPinValue interface {
+	IFirmataMessage
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetEnable returns Enable
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go
index a6373e7..bef49de 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryRequest.go
@@ -32,6 +32,7 @@ type SysexCommandAnalogMappingQueryRequest struct {
 
 // The corresponding interface
 type ISysexCommandAnalogMappingQueryRequest interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go
index 4324fd7..b0df195 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingQueryResponse.go
@@ -34,6 +34,7 @@ type SysexCommandAnalogMappingQueryResponse struct {
 
 // The corresponding interface
 type ISysexCommandAnalogMappingQueryResponse interface {
+	ISysexCommand
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go
index 4d51c8a..6dff1bd 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandAnalogMappingResponse.go
@@ -32,6 +32,7 @@ type SysexCommandAnalogMappingResponse struct {
 
 // The corresponding interface
 type ISysexCommandAnalogMappingResponse interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go
index 4bf5c4e..aa3ba36 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityQuery.go
@@ -32,6 +32,7 @@ type SysexCommandCapabilityQuery struct {
 
 // The corresponding interface
 type ISysexCommandCapabilityQuery interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go
index 74f8c5c..8ea445d 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandCapabilityResponse.go
@@ -32,6 +32,7 @@ type SysexCommandCapabilityResponse struct {
 
 // The corresponding interface
 type ISysexCommandCapabilityResponse interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go
index 2488661..41c2cfe 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedAnalog.go
@@ -32,6 +32,7 @@ type SysexCommandExtendedAnalog struct {
 
 // The corresponding interface
 type ISysexCommandExtendedAnalog interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go
index 794d529..fd1e671 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandExtendedId.go
@@ -34,6 +34,7 @@ type SysexCommandExtendedId struct {
 
 // The corresponding interface
 type ISysexCommandExtendedId interface {
+	ISysexCommand
 	// GetId returns Id
 	GetId() []int8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go
index 614a2ab..8b42cab 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateQuery.go
@@ -34,6 +34,7 @@ type SysexCommandPinStateQuery struct {
 
 // The corresponding interface
 type ISysexCommandPinStateQuery interface {
+	ISysexCommand
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go
index 0830df6..9729b8f 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandPinStateResponse.go
@@ -36,6 +36,7 @@ type SysexCommandPinStateResponse struct {
 
 // The corresponding interface
 type ISysexCommandPinStateResponse interface {
+	ISysexCommand
 	// GetPin returns Pin
 	GetPin() uint8
 	// GetPinMode returns PinMode
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go
index e34f63b..16086c3 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareRequest.go
@@ -32,6 +32,7 @@ type SysexCommandReportFirmwareRequest struct {
 
 // The corresponding interface
 type ISysexCommandReportFirmwareRequest interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go
index 38b8a77..7e3eb1e 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandReportFirmwareResponse.go
@@ -36,6 +36,7 @@ type SysexCommandReportFirmwareResponse struct {
 
 // The corresponding interface
 type ISysexCommandReportFirmwareResponse interface {
+	ISysexCommand
 	// GetMajorVersion returns MajorVersion
 	GetMajorVersion() uint8
 	// GetMinorVersion returns MinorVersion
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go
index 87f58b1..13f4377 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSamplingInterval.go
@@ -32,6 +32,7 @@ type SysexCommandSamplingInterval struct {
 
 // The corresponding interface
 type ISysexCommandSamplingInterval interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go
index a9f6e30..4833d90 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandStringData.go
@@ -32,6 +32,7 @@ type SysexCommandStringData struct {
 
 // The corresponding interface
 type ISysexCommandStringData interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go
index 4f15db3..215539e 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexNonRealtime.go
@@ -32,6 +32,7 @@ type SysexCommandSysexNonRealtime struct {
 
 // The corresponding interface
 type ISysexCommandSysexNonRealtime interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go
index 5197366..0e8fef9 100644
--- a/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go
+++ b/plc4go/internal/plc4go/firmata/readwrite/model/SysexCommandSysexRealtime.go
@@ -32,6 +32,7 @@ type SysexCommandSysexRealtime struct {
 
 // The corresponding interface
 type ISysexCommandSysexRealtime interface {
+	ISysexCommand
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
index 1d79ca0..f312980 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
@@ -32,6 +32,7 @@ type ApduControlAck struct {
 
 // The corresponding interface
 type IApduControlAck interface {
+	IApduControl
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
index e49b210..37cf4eb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
@@ -32,6 +32,7 @@ type ApduControlConnect struct {
 
 // The corresponding interface
 type IApduControlConnect interface {
+	IApduControl
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go
index ffebe99..7e8e369 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go
@@ -37,6 +37,7 @@ type ApduControlContainer struct {
 
 // The corresponding interface
 type IApduControlContainer interface {
+	IApdu
 	// GetControlApdu returns ControlApdu
 	GetControlApdu() *ApduControl
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
index 9403449..1732da9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
@@ -32,6 +32,7 @@ type ApduControlDisconnect struct {
 
 // The corresponding interface
 type IApduControlDisconnect interface {
+	IApduControl
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
index 3400bf0..706152a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
@@ -32,6 +32,7 @@ type ApduControlNack struct {
 
 // The corresponding interface
 type IApduControlNack interface {
+	IApduControl
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
index e192118..1ddc25c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
@@ -35,6 +35,7 @@ type ApduDataAdcRead struct {
 
 // The corresponding interface
 type IApduDataAdcRead interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
index 58ba79c..edcbb78 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
@@ -35,6 +35,7 @@ type ApduDataAdcResponse struct {
 
 // The corresponding interface
 type IApduDataAdcResponse interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go
index 896d8c3..0502493 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go
@@ -37,6 +37,7 @@ type ApduDataContainer struct {
 
 // The corresponding interface
 type IApduDataContainer interface {
+	IApdu
 	// GetDataApdu returns DataApdu
 	GetDataApdu() *ApduData
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
index 7617431..95d248d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
@@ -37,6 +37,7 @@ type ApduDataDeviceDescriptorRead struct {
 
 // The corresponding interface
 type IApduDataDeviceDescriptorRead interface {
+	IApduData
 	// GetDescriptorType returns DescriptorType
 	GetDescriptorType() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
index 23c0f4e..c5c6cfd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
@@ -38,6 +38,7 @@ type ApduDataDeviceDescriptorResponse struct {
 
 // The corresponding interface
 type IApduDataDeviceDescriptorResponse interface {
+	IApduData
 	// GetDescriptorType returns DescriptorType
 	GetDescriptorType() uint8
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
index b1b9bf9..c31d9a3 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
@@ -38,6 +38,7 @@ type ApduDataExtAuthorizeRequest struct {
 
 // The corresponding interface
 type IApduDataExtAuthorizeRequest interface {
+	IApduDataExt
 	// GetLevel returns Level
 	GetLevel() uint8
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
index 9452373..81489be 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
@@ -37,6 +37,7 @@ type ApduDataExtAuthorizeResponse struct {
 
 // The corresponding interface
 type IApduDataExtAuthorizeResponse interface {
+	IApduDataExt
 	// GetLevel returns Level
 	GetLevel() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
index 6375dfd..34960dd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
@@ -35,6 +35,7 @@ type ApduDataExtDomainAddressRead struct {
 
 // The corresponding interface
 type IApduDataExtDomainAddressRead interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
index ac88eeb..9793f07 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtDomainAddressResponse struct {
 
 // The corresponding interface
 type IApduDataExtDomainAddressResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
index b027e48..dabe0db 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
@@ -35,6 +35,7 @@ type ApduDataExtDomainAddressSelectiveRead struct {
 
 // The corresponding interface
 type IApduDataExtDomainAddressSelectiveRead interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
index 28eaec2..e25d88e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
@@ -35,6 +35,7 @@ type ApduDataExtDomainAddressSerialNumberRead struct {
 
 // The corresponding interface
 type IApduDataExtDomainAddressSerialNumberRead interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
index e169204..771cf08 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtDomainAddressSerialNumberResponse struct {
 
 // The corresponding interface
 type IApduDataExtDomainAddressSerialNumberResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
index 1c98ad2..dd6bbaa 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtDomainAddressSerialNumberWrite struct {
 
 // The corresponding interface
 type IApduDataExtDomainAddressSerialNumberWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
index 1e7df22..a062d2d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtDomainAddressWrite struct {
 
 // The corresponding interface
 type IApduDataExtDomainAddressWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
index a090b99..b3bdd91 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
@@ -35,6 +35,7 @@ type ApduDataExtFileStreamInfoReport struct {
 
 // The corresponding interface
 type IApduDataExtFileStreamInfoReport interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
index 5451bb7..0cc3929 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
@@ -35,6 +35,7 @@ type ApduDataExtGroupPropertyValueInfoReport struct {
 
 // The corresponding interface
 type IApduDataExtGroupPropertyValueInfoReport interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
index d841daf..d4cceb8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
@@ -35,6 +35,7 @@ type ApduDataExtGroupPropertyValueRead struct {
 
 // The corresponding interface
 type IApduDataExtGroupPropertyValueRead interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
index bb5f4e5..e8ece8d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtGroupPropertyValueResponse struct {
 
 // The corresponding interface
 type IApduDataExtGroupPropertyValueResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
index c25b82e..da9c154 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtGroupPropertyValueWrite struct {
 
 // The corresponding interface
 type IApduDataExtGroupPropertyValueWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
index 50a6afa..ee00420 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
@@ -35,6 +35,7 @@ type ApduDataExtIndividualAddressSerialNumberRead struct {
 
 // The corresponding interface
 type IApduDataExtIndividualAddressSerialNumberRead interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
index 6ca4361..3f18a8c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtIndividualAddressSerialNumberResponse struct {
 
 // The corresponding interface
 type IApduDataExtIndividualAddressSerialNumberResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
index 7a49cac..ac3dbd1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtIndividualAddressSerialNumberWrite struct {
 
 // The corresponding interface
 type IApduDataExtIndividualAddressSerialNumberWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
index fbd3959..6773335 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtKeyResponse struct {
 
 // The corresponding interface
 type IApduDataExtKeyResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
index af4adce..42208e8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtKeyWrite struct {
 
 // The corresponding interface
 type IApduDataExtKeyWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
index 0bd09b6..2f0be37 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
@@ -35,6 +35,7 @@ type ApduDataExtLinkRead struct {
 
 // The corresponding interface
 type IApduDataExtLinkRead interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
index 6bc8247..e5e5b62 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtLinkResponse struct {
 
 // The corresponding interface
 type IApduDataExtLinkResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
index 52d9641..0489e0d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtLinkWrite struct {
 
 // The corresponding interface
 type IApduDataExtLinkWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
index 71908ba..f0e3218 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtMemoryBitWrite struct {
 
 // The corresponding interface
 type IApduDataExtMemoryBitWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
index ed704a8..27caa6e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
@@ -35,6 +35,7 @@ type ApduDataExtNetworkParameterRead struct {
 
 // The corresponding interface
 type IApduDataExtNetworkParameterRead interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
index 618bfb7..eeb3244 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtNetworkParameterResponse struct {
 
 // The corresponding interface
 type IApduDataExtNetworkParameterResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
index 93c09b8..ce8d1b0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
@@ -35,6 +35,7 @@ type ApduDataExtNetworkParameterWrite struct {
 
 // The corresponding interface
 type IApduDataExtNetworkParameterWrite interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
index 6a32ff6..c113418 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
@@ -35,6 +35,7 @@ type ApduDataExtOpenRoutingTableRequest struct {
 
 // The corresponding interface
 type IApduDataExtOpenRoutingTableRequest interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
index 7d14b3d..84e8216 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
@@ -39,6 +39,7 @@ type ApduDataExtPropertyDescriptionRead struct {
 
 // The corresponding interface
 type IApduDataExtPropertyDescriptionRead interface {
+	IApduDataExt
 	// GetObjectIndex returns ObjectIndex
 	GetObjectIndex() uint8
 	// GetPropertyId returns PropertyId
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
index 32afc2d..757d197 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
@@ -45,6 +45,7 @@ type ApduDataExtPropertyDescriptionResponse struct {
 
 // The corresponding interface
 type IApduDataExtPropertyDescriptionResponse interface {
+	IApduDataExt
 	// GetObjectIndex returns ObjectIndex
 	GetObjectIndex() uint8
 	// GetPropertyId returns PropertyId
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
index 38a2564..a781649 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
@@ -40,6 +40,7 @@ type ApduDataExtPropertyValueRead struct {
 
 // The corresponding interface
 type IApduDataExtPropertyValueRead interface {
+	IApduDataExt
 	// GetObjectIndex returns ObjectIndex
 	GetObjectIndex() uint8
 	// GetPropertyId returns PropertyId
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
index 5ac90ad..82625c0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
@@ -41,6 +41,7 @@ type ApduDataExtPropertyValueResponse struct {
 
 // The corresponding interface
 type IApduDataExtPropertyValueResponse interface {
+	IApduDataExt
 	// GetObjectIndex returns ObjectIndex
 	GetObjectIndex() uint8
 	// GetPropertyId returns PropertyId
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
index 1ef5211..b52453d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
@@ -41,6 +41,7 @@ type ApduDataExtPropertyValueWrite struct {
 
 // The corresponding interface
 type IApduDataExtPropertyValueWrite interface {
+	IApduDataExt
 	// GetObjectIndex returns ObjectIndex
 	GetObjectIndex() uint8
 	// GetPropertyId returns PropertyId
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
index 175e45f..5fc56f4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
@@ -35,6 +35,7 @@ type ApduDataExtReadRouterMemoryRequest struct {
 
 // The corresponding interface
 type IApduDataExtReadRouterMemoryRequest interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
index 041b941..5c9198e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtReadRouterMemoryResponse struct {
 
 // The corresponding interface
 type IApduDataExtReadRouterMemoryResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
index 219fc24..d54e0c8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
@@ -35,6 +35,7 @@ type ApduDataExtReadRouterStatusRequest struct {
 
 // The corresponding interface
 type IApduDataExtReadRouterStatusRequest interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
index db2c10c..ad8138c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtReadRouterStatusResponse struct {
 
 // The corresponding interface
 type IApduDataExtReadRouterStatusResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
index 72e4504..99d3d31 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
@@ -35,6 +35,7 @@ type ApduDataExtReadRoutingTableRequest struct {
 
 // The corresponding interface
 type IApduDataExtReadRoutingTableRequest interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
index 8da8139..42884ec 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
@@ -35,6 +35,7 @@ type ApduDataExtReadRoutingTableResponse struct {
 
 // The corresponding interface
 type IApduDataExtReadRoutingTableResponse interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
index c069cfa..8fe0fc4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
@@ -35,6 +35,7 @@ type ApduDataExtWriteRouterMemoryRequest struct {
 
 // The corresponding interface
 type IApduDataExtWriteRouterMemoryRequest interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
index be349db..2184b74 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
@@ -35,6 +35,7 @@ type ApduDataExtWriteRouterStatusRequest struct {
 
 // The corresponding interface
 type IApduDataExtWriteRouterStatusRequest interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
index 6703958..da5c721 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
@@ -35,6 +35,7 @@ type ApduDataExtWriteRoutingTableRequest struct {
 
 // The corresponding interface
 type IApduDataExtWriteRoutingTableRequest interface {
+	IApduDataExt
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
index fb447c8..236f32a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
@@ -37,6 +37,7 @@ type ApduDataGroupValueRead struct {
 
 // The corresponding interface
 type IApduDataGroupValueRead interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
index 29bdbb0..d5911e8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
@@ -38,6 +38,7 @@ type ApduDataGroupValueResponse struct {
 
 // The corresponding interface
 type IApduDataGroupValueResponse interface {
+	IApduData
 	// GetDataFirstByte returns DataFirstByte
 	GetDataFirstByte() int8
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
index df5042d..ccaea41 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
@@ -38,6 +38,7 @@ type ApduDataGroupValueWrite struct {
 
 // The corresponding interface
 type IApduDataGroupValueWrite interface {
+	IApduData
 	// GetDataFirstByte returns DataFirstByte
 	GetDataFirstByte() int8
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
index 7aceeb0..ded41bd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
@@ -35,6 +35,7 @@ type ApduDataIndividualAddressRead struct {
 
 // The corresponding interface
 type IApduDataIndividualAddressRead interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
index 6440a50..bc6efa4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
@@ -35,6 +35,7 @@ type ApduDataIndividualAddressResponse struct {
 
 // The corresponding interface
 type IApduDataIndividualAddressResponse interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
index cd3ba69..f63922d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
@@ -35,6 +35,7 @@ type ApduDataIndividualAddressWrite struct {
 
 // The corresponding interface
 type IApduDataIndividualAddressWrite interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
index df74a0a..24299c2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
@@ -38,6 +38,7 @@ type ApduDataMemoryRead struct {
 
 // The corresponding interface
 type IApduDataMemoryRead interface {
+	IApduData
 	// GetNumBytes returns NumBytes
 	GetNumBytes() uint8
 	// GetAddress returns Address
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
index 7725275..fef887d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
@@ -38,6 +38,7 @@ type ApduDataMemoryResponse struct {
 
 // The corresponding interface
 type IApduDataMemoryResponse interface {
+	IApduData
 	// GetAddress returns Address
 	GetAddress() uint16
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
index dd5a9a9..66aa3ca 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
@@ -35,6 +35,7 @@ type ApduDataMemoryWrite struct {
 
 // The corresponding interface
 type IApduDataMemoryWrite interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
index d974b04..e1d89db 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
@@ -37,6 +37,7 @@ type ApduDataOther struct {
 
 // The corresponding interface
 type IApduDataOther interface {
+	IApduData
 	// GetExtendedApdu returns ExtendedApdu
 	GetExtendedApdu() *ApduDataExt
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
index 2013255..dc6faed 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
@@ -35,6 +35,7 @@ type ApduDataRestart struct {
 
 // The corresponding interface
 type IApduDataRestart interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
index b556959..fbbb166 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
@@ -35,6 +35,7 @@ type ApduDataUserMessage struct {
 
 // The corresponding interface
 type IApduDataUserMessage interface {
+	IApduData
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
index 187b842..6c2c6ac 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
@@ -43,6 +43,7 @@ type CEMIAdditionalInformationBusmonitorInfo struct {
 
 // The corresponding interface
 type ICEMIAdditionalInformationBusmonitorInfo interface {
+	ICEMIAdditionalInformation
 	// GetFrameErrorFlag returns FrameErrorFlag
 	GetFrameErrorFlag() bool
 	// GetBitErrorFlag returns BitErrorFlag
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
index f619079..72d226b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
@@ -38,6 +38,7 @@ type CEMIAdditionalInformationRelativeTimestamp struct {
 
 // The corresponding interface
 type ICEMIAdditionalInformationRelativeTimestamp interface {
+	ICEMIAdditionalInformation
 	// GetRelativeTimestamp returns RelativeTimestamp
 	GetRelativeTimestamp() *RelativeTimestamp
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
index fa896ac..3fee96c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
@@ -36,6 +36,7 @@ type ComObjectTableRealisationType1 struct {
 
 // The corresponding interface
 type IComObjectTableRealisationType1 interface {
+	IComObjectTable
 	// GetNumEntries returns NumEntries
 	GetNumEntries() uint8
 	// GetRamFlagsTablePointer returns RamFlagsTablePointer
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
index e03fec9..dcd8f52 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
@@ -36,6 +36,7 @@ type ComObjectTableRealisationType2 struct {
 
 // The corresponding interface
 type IComObjectTableRealisationType2 interface {
+	IComObjectTable
 	// GetNumEntries returns NumEntries
 	GetNumEntries() uint8
 	// GetRamFlagsTablePointer returns RamFlagsTablePointer
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
index f0a4124..aa84284 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
@@ -34,6 +34,7 @@ type ComObjectTableRealisationType6 struct {
 
 // The corresponding interface
 type IComObjectTableRealisationType6 interface {
+	IComObjectTable
 	// GetComObjectDescriptors returns ComObjectDescriptors
 	GetComObjectDescriptors() *GroupObjectDescriptorRealisationType6
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
index e163191..3f32eea 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
@@ -36,6 +36,7 @@ type ConnectionRequest struct {
 
 // The corresponding interface
 type IConnectionRequest interface {
+	IKnxNetIpMessage
 	// GetHpaiDiscoveryEndpoint returns HpaiDiscoveryEndpoint
 	GetHpaiDiscoveryEndpoint() *HPAIDiscoveryEndpoint
 	// GetHpaiDataEndpoint returns HpaiDataEndpoint
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
index 87fcf29..bbee7a4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
@@ -32,6 +32,7 @@ type ConnectionRequestInformationDeviceManagement struct {
 
 // The corresponding interface
 type IConnectionRequestInformationDeviceManagement interface {
+	IConnectionRequestInformation
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
index 3c0aafa..81438a3 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
@@ -35,6 +35,7 @@ type ConnectionRequestInformationTunnelConnection struct {
 
 // The corresponding interface
 type IConnectionRequestInformationTunnelConnection interface {
+	IConnectionRequestInformation
 	// GetKnxLayer returns KnxLayer
 	GetKnxLayer() KnxLayer
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
index 2f4b074..1104e0d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
@@ -38,6 +38,7 @@ type ConnectionResponse struct {
 
 // The corresponding interface
 type IConnectionResponse interface {
+	IKnxNetIpMessage
 	// GetCommunicationChannelId returns CommunicationChannelId
 	GetCommunicationChannelId() uint8
 	// GetStatus returns Status
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
index 3ebd937..ca10aed 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
@@ -32,6 +32,7 @@ type ConnectionResponseDataBlockDeviceManagement struct {
 
 // The corresponding interface
 type IConnectionResponseDataBlockDeviceManagement interface {
+	IConnectionResponseDataBlock
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
index af42049..4955b42 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
@@ -34,6 +34,7 @@ type ConnectionResponseDataBlockTunnelConnection struct {
 
 // The corresponding interface
 type IConnectionResponseDataBlockTunnelConnection interface {
+	IConnectionResponseDataBlock
 	// GetKnxAddress returns KnxAddress
 	GetKnxAddress() *KnxAddress
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
index 6aca205..437e12a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
@@ -36,6 +36,7 @@ type ConnectionStateRequest struct {
 
 // The corresponding interface
 type IConnectionStateRequest interface {
+	IKnxNetIpMessage
 	// GetCommunicationChannelId returns CommunicationChannelId
 	GetCommunicationChannelId() uint8
 	// GetHpaiControlEndpoint returns HpaiControlEndpoint
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
index 7d6b6f6..e19fd3a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
@@ -35,6 +35,7 @@ type ConnectionStateResponse struct {
 
 // The corresponding interface
 type IConnectionStateResponse interface {
+	IKnxNetIpMessage
 	// GetCommunicationChannelId returns CommunicationChannelId
 	GetCommunicationChannelId() uint8
 	// GetStatus returns Status
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
index 86bf287..cab166e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
@@ -34,6 +34,7 @@ type DescriptionRequest struct {
 
 // The corresponding interface
 type IDescriptionRequest interface {
+	IKnxNetIpMessage
 	// GetHpaiControlEndpoint returns HpaiControlEndpoint
 	GetHpaiControlEndpoint() *HPAIControlEndpoint
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
index 25baf0a..9f9c13c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
@@ -35,6 +35,7 @@ type DescriptionResponse struct {
 
 // The corresponding interface
 type IDescriptionResponse interface {
+	IKnxNetIpMessage
 	// GetDibDeviceInfo returns DibDeviceInfo
 	GetDibDeviceInfo() *DIBDeviceInfo
 	// GetDibSuppSvcFamilies returns DibSuppSvcFamilies
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
index 4af166b..5bae8f4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
@@ -34,6 +34,7 @@ type DeviceConfigurationAck struct {
 
 // The corresponding interface
 type IDeviceConfigurationAck interface {
+	IKnxNetIpMessage
 	// GetDeviceConfigurationAckDataBlock returns DeviceConfigurationAckDataBlock
 	GetDeviceConfigurationAckDataBlock() *DeviceConfigurationAckDataBlock
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
index 969c122..b387d4d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
@@ -38,6 +38,7 @@ type DeviceConfigurationRequest struct {
 
 // The corresponding interface
 type IDeviceConfigurationRequest interface {
+	IKnxNetIpMessage
 	// GetDeviceConfigurationRequestDataBlock returns DeviceConfigurationRequestDataBlock
 	GetDeviceConfigurationRequestDataBlock() *DeviceConfigurationRequestDataBlock
 	// GetCemi returns Cemi
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
index d86ff1a..f468726 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
@@ -36,6 +36,7 @@ type DisconnectRequest struct {
 
 // The corresponding interface
 type IDisconnectRequest interface {
+	IKnxNetIpMessage
 	// GetCommunicationChannelId returns CommunicationChannelId
 	GetCommunicationChannelId() uint8
 	// GetHpaiControlEndpoint returns HpaiControlEndpoint
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
index 4ee106f..0c44fe6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
@@ -35,6 +35,7 @@ type DisconnectResponse struct {
 
 // The corresponding interface
 type IDisconnectResponse interface {
+	IKnxNetIpMessage
 	// GetCommunicationChannelId returns CommunicationChannelId
 	GetCommunicationChannelId() uint8
 	// GetStatus returns Status
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
index 9eb4af7..443cc00 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
@@ -35,6 +35,7 @@ type KnxGroupAddress2Level struct {
 
 // The corresponding interface
 type IKnxGroupAddress2Level interface {
+	IKnxGroupAddress
 	// GetMainGroup returns MainGroup
 	GetMainGroup() uint8
 	// GetSubGroup returns SubGroup
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
index 8dfe3e5..59de284 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
@@ -36,6 +36,7 @@ type KnxGroupAddress3Level struct {
 
 // The corresponding interface
 type IKnxGroupAddress3Level interface {
+	IKnxGroupAddress
 	// GetMainGroup returns MainGroup
 	GetMainGroup() uint8
 	// GetMiddleGroup returns MiddleGroup
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
index d3f7cfc..6724eb8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
@@ -34,6 +34,7 @@ type KnxGroupAddressFreeLevel struct {
 
 // The corresponding interface
 type IKnxGroupAddressFreeLevel interface {
+	IKnxGroupAddress
 	// GetSubGroup returns SubGroup
 	GetSubGroup() uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
index 60dab38..d632fb6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
@@ -34,6 +34,7 @@ type KnxNetIpCore struct {
 
 // The corresponding interface
 type IKnxNetIpCore interface {
+	IServiceId
 	// GetVersion returns Version
 	GetVersion() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
index 65963f4..ac68c72 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
@@ -34,6 +34,7 @@ type KnxNetIpDeviceManagement struct {
 
 // The corresponding interface
 type IKnxNetIpDeviceManagement interface {
+	IServiceId
 	// GetVersion returns Version
 	GetVersion() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
index 1f44a1d..dd94104 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
@@ -34,6 +34,7 @@ type KnxNetIpRouting struct {
 
 // The corresponding interface
 type IKnxNetIpRouting interface {
+	IServiceId
 	// GetVersion returns Version
 	GetVersion() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
index 9725fe0..d43c56a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
@@ -34,6 +34,7 @@ type KnxNetIpTunneling struct {
 
 // The corresponding interface
 type IKnxNetIpTunneling interface {
+	IServiceId
 	// GetVersion returns Version
 	GetVersion() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
index 99006cf..afc597f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
@@ -34,6 +34,7 @@ type KnxNetObjectServer struct {
 
 // The corresponding interface
 type IKnxNetObjectServer interface {
+	IServiceId
 	// GetVersion returns Version
 	GetVersion() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
index 27ccb5c..467ee54 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
@@ -34,6 +34,7 @@ type KnxNetRemoteConfigurationAndDiagnosis struct {
 
 // The corresponding interface
 type IKnxNetRemoteConfigurationAndDiagnosis interface {
+	IServiceId
 	// GetVersion returns Version
 	GetVersion() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
index 71a6837..200c7a9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
@@ -34,6 +34,7 @@ type KnxNetRemoteLogging struct {
 
 // The corresponding interface
 type IKnxNetRemoteLogging interface {
+	IServiceId
 	// GetVersion returns Version
 	GetVersion() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
index dfd7741..fa9a1e7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
@@ -40,6 +40,7 @@ type LBusmonInd struct {
 
 // The corresponding interface
 type ILBusmonInd interface {
+	ICEMI
 	// GetAdditionalInformationLength returns AdditionalInformationLength
 	GetAdditionalInformationLength() uint8
 	// GetAdditionalInformation returns AdditionalInformation
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
index 37720e6..122a405 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
@@ -39,6 +39,7 @@ type LDataCon struct {
 
 // The corresponding interface
 type ILDataCon interface {
+	ICEMI
 	// GetAdditionalInformationLength returns AdditionalInformationLength
 	GetAdditionalInformationLength() uint8
 	// GetAdditionalInformation returns AdditionalInformation
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
index bb5b13c..7690ca3 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
@@ -39,6 +39,7 @@ type LDataExtended struct {
 
 // The corresponding interface
 type ILDataExtended interface {
+	ILDataFrame
 	// GetGroupAddress returns GroupAddress
 	GetGroupAddress() bool
 	// GetHopCount returns HopCount
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go
index 31d67c4..1e83903 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go
@@ -32,6 +32,7 @@ type LDataFrameACK struct {
 
 // The corresponding interface
 type ILDataFrameACK interface {
+	ILDataFrame
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
index 95c52b0..028441e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
@@ -39,6 +39,7 @@ type LDataInd struct {
 
 // The corresponding interface
 type ILDataInd interface {
+	ICEMI
 	// GetAdditionalInformationLength returns AdditionalInformationLength
 	GetAdditionalInformationLength() uint8
 	// GetAdditionalInformation returns AdditionalInformation
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
index 38527f3..960add2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
@@ -39,6 +39,7 @@ type LDataReq struct {
 
 // The corresponding interface
 type ILDataReq interface {
+	ICEMI
 	// GetAdditionalInformationLength returns AdditionalInformationLength
 	GetAdditionalInformationLength() uint8
 	// GetAdditionalInformation returns AdditionalInformation
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
index e9900c1..579a1f7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
@@ -37,6 +37,7 @@ type LPollData struct {
 
 // The corresponding interface
 type ILPollData interface {
+	ILDataFrame
 	// GetSourceAddress returns SourceAddress
 	GetSourceAddress() *KnxAddress
 	// GetTargetAddress returns TargetAddress
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
index 5be8d31..635474f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
@@ -35,6 +35,7 @@ type LPollDataCon struct {
 
 // The corresponding interface
 type ILPollDataCon interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
index 5ba40b0..313c8cb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
@@ -35,6 +35,7 @@ type LPollDataReq struct {
 
 // The corresponding interface
 type ILPollDataReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
index af30fe0..5046aa8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
@@ -35,6 +35,7 @@ type LRawCon struct {
 
 // The corresponding interface
 type ILRawCon interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
index b87c1b4..c36bb9d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
@@ -35,6 +35,7 @@ type LRawInd struct {
 
 // The corresponding interface
 type ILRawInd interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
index 00deb15..9129f52 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
@@ -35,6 +35,7 @@ type LRawReq struct {
 
 // The corresponding interface
 type ILRawReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
index 94fd065..13cc8f8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
@@ -35,6 +35,7 @@ type MFuncPropCommandReq struct {
 
 // The corresponding interface
 type IMFuncPropCommandReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
index ed4687b..3814223 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
@@ -35,6 +35,7 @@ type MFuncPropCon struct {
 
 // The corresponding interface
 type IMFuncPropCon interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
index f3e8da7..8467949 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
@@ -35,6 +35,7 @@ type MFuncPropStateReadReq struct {
 
 // The corresponding interface
 type IMFuncPropStateReadReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
index 251afd8..bb418d2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
@@ -35,6 +35,7 @@ type MPropInfoInd struct {
 
 // The corresponding interface
 type IMPropInfoInd interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
index 710c566..aa59f70 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
@@ -42,6 +42,7 @@ type MPropReadCon struct {
 
 // The corresponding interface
 type IMPropReadCon interface {
+	ICEMI
 	// GetInterfaceObjectType returns InterfaceObjectType
 	GetInterfaceObjectType() uint16
 	// GetObjectInstance returns ObjectInstance
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
index 9391678..1f303df 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
@@ -41,6 +41,7 @@ type MPropReadReq struct {
 
 // The corresponding interface
 type IMPropReadReq interface {
+	ICEMI
 	// GetInterfaceObjectType returns InterfaceObjectType
 	GetInterfaceObjectType() uint16
 	// GetObjectInstance returns ObjectInstance
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
index 9a9e2fc..a5c34f4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
@@ -35,6 +35,7 @@ type MPropWriteCon struct {
 
 // The corresponding interface
 type IMPropWriteCon interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
index 46a8a45..c7d4c13 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
@@ -35,6 +35,7 @@ type MPropWriteReq struct {
 
 // The corresponding interface
 type IMPropWriteReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
index 674347b..26f3686 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
@@ -35,6 +35,7 @@ type MResetInd struct {
 
 // The corresponding interface
 type IMResetInd interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
index a2d2abe..b70d17a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
@@ -35,6 +35,7 @@ type MResetReq struct {
 
 // The corresponding interface
 type IMResetReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
index e8836df..6c941db 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
@@ -32,6 +32,7 @@ type RoutingIndication struct {
 
 // The corresponding interface
 type IRoutingIndication interface {
+	IKnxNetIpMessage
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
index 9a83e91..cbed2e4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
@@ -34,6 +34,7 @@ type SearchRequest struct {
 
 // The corresponding interface
 type ISearchRequest interface {
+	IKnxNetIpMessage
 	// GetHpaiIDiscoveryEndpoint returns HpaiIDiscoveryEndpoint
 	GetHpaiIDiscoveryEndpoint() *HPAIDiscoveryEndpoint
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
index 1f242a9..4c1cfd5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
@@ -36,6 +36,7 @@ type SearchResponse struct {
 
 // The corresponding interface
 type ISearchResponse interface {
+	IKnxNetIpMessage
 	// GetHpaiControlEndpoint returns HpaiControlEndpoint
 	GetHpaiControlEndpoint() *HPAIControlEndpoint
 	// GetDibDeviceInfo returns DibDeviceInfo
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
index d2f0e92..8f535d4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
@@ -35,6 +35,7 @@ type TDataConnectedInd struct {
 
 // The corresponding interface
 type ITDataConnectedInd interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
index 92637fb..86ec4c1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
@@ -35,6 +35,7 @@ type TDataConnectedReq struct {
 
 // The corresponding interface
 type ITDataConnectedReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
index e730d95..d47f4b1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
@@ -35,6 +35,7 @@ type TDataIndividualInd struct {
 
 // The corresponding interface
 type ITDataIndividualInd interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
index 7ff0c95..212351d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
@@ -35,6 +35,7 @@ type TDataIndividualReq struct {
 
 // The corresponding interface
 type ITDataIndividualReq interface {
+	ICEMI
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
index e1432d9..76f0216 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
@@ -38,6 +38,7 @@ type TunnelingRequest struct {
 
 // The corresponding interface
 type ITunnelingRequest interface {
+	IKnxNetIpMessage
 	// GetTunnelingRequestDataBlock returns TunnelingRequestDataBlock
 	GetTunnelingRequestDataBlock() *TunnelingRequestDataBlock
 	// GetCemi returns Cemi
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
index 2a3e75a..e665edb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
@@ -34,6 +34,7 @@ type TunnelingResponse struct {
 
 // The corresponding interface
 type ITunnelingResponse interface {
+	IKnxNetIpMessage
 	// GetTunnelingResponseDataBlock returns TunnelingResponseDataBlock
 	GetTunnelingResponseDataBlock() *TunnelingResponseDataBlock
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
index 68e4ed3..3095422 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
@@ -37,6 +37,7 @@ type UnknownMessage struct {
 
 // The corresponding interface
 type IUnknownMessage interface {
+	IKnxNetIpMessage
 	// GetUnknownData returns UnknownData
 	GetUnknownData() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
index c79c730..bce69a5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
@@ -35,6 +35,7 @@ type ModbusPDUDiagnosticRequest struct {
 
 // The corresponding interface
 type IModbusPDUDiagnosticRequest interface {
+	IModbusPDU
 	// GetSubFunction returns SubFunction
 	GetSubFunction() uint16
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
index d08a1c7..431ed05 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
@@ -35,6 +35,7 @@ type ModbusPDUDiagnosticResponse struct {
 
 // The corresponding interface
 type IModbusPDUDiagnosticResponse interface {
+	IModbusPDU
 	// GetSubFunction returns SubFunction
 	GetSubFunction() uint16
 	// GetData returns Data
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
index 03d8023..e61253d 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
@@ -34,6 +34,7 @@ type ModbusPDUError struct {
 
 // The corresponding interface
 type IModbusPDUError interface {
+	IModbusPDU
 	// GetExceptionCode returns ExceptionCode
 	GetExceptionCode() ModbusErrorCode
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
index b29a309..e0f597a 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
@@ -32,6 +32,7 @@ type ModbusPDUGetComEventCounterRequest struct {
 
 // The corresponding interface
 type IModbusPDUGetComEventCounterRequest interface {
+	IModbusPDU
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
index c8a408f..5ce66a0 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
@@ -35,6 +35,7 @@ type ModbusPDUGetComEventCounterResponse struct {
 
 // The corresponding interface
 type IModbusPDUGetComEventCounterResponse interface {
+	IModbusPDU
 	// GetStatus returns Status
 	GetStatus() uint16
 	// GetEventCount returns EventCount
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
index f6370a4..bfa2606 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
@@ -32,6 +32,7 @@ type ModbusPDUGetComEventLogRequest struct {
 
 // The corresponding interface
 type IModbusPDUGetComEventLogRequest interface {
+	IModbusPDU
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
index b3040eb..a5b8177 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
@@ -37,6 +37,7 @@ type ModbusPDUGetComEventLogResponse struct {
 
 // The corresponding interface
 type IModbusPDUGetComEventLogResponse interface {
+	IModbusPDU
 	// GetStatus returns Status
 	GetStatus() uint16
 	// GetEventCount returns EventCount
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
index 30afcbb..456ddb4 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
@@ -36,6 +36,7 @@ type ModbusPDUMaskWriteHoldingRegisterRequest struct {
 
 // The corresponding interface
 type IModbusPDUMaskWriteHoldingRegisterRequest interface {
+	IModbusPDU
 	// GetReferenceAddress returns ReferenceAddress
 	GetReferenceAddress() uint16
 	// GetAndMask returns AndMask
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
index ce4f71e..195012d 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
@@ -36,6 +36,7 @@ type ModbusPDUMaskWriteHoldingRegisterResponse struct {
 
 // The corresponding interface
 type IModbusPDUMaskWriteHoldingRegisterResponse interface {
+	IModbusPDU
 	// GetReferenceAddress returns ReferenceAddress
 	GetReferenceAddress() uint16
 	// GetAndMask returns AndMask
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
index 4dc9a89..63938d5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
@@ -35,6 +35,7 @@ type ModbusPDUReadCoilsRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadCoilsRequest interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
index 17717f9..e84b5b6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadCoilsResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadCoilsResponse interface {
+	IModbusPDU
 	// GetValue returns Value
 	GetValue() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
index 98574b5..93820f5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
@@ -39,6 +39,7 @@ type ModbusPDUReadDeviceIdentificationRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadDeviceIdentificationRequest interface {
+	IModbusPDU
 	// GetLevel returns Level
 	GetLevel() ModbusDeviceInformationLevel
 	// GetObjectId returns ObjectId
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
index c62c63b..3d7a799 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
@@ -43,6 +43,7 @@ type ModbusPDUReadDeviceIdentificationResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadDeviceIdentificationResponse interface {
+	IModbusPDU
 	// GetLevel returns Level
 	GetLevel() ModbusDeviceInformationLevel
 	// GetIndividualAccess returns IndividualAccess
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
index 606d1bc..106b095 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
@@ -35,6 +35,7 @@ type ModbusPDUReadDiscreteInputsRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadDiscreteInputsRequest interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
index 3020d17..77706a3 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadDiscreteInputsResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadDiscreteInputsResponse interface {
+	IModbusPDU
 	// GetValue returns Value
 	GetValue() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
index ef60bee..522ae81 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
@@ -32,6 +32,7 @@ type ModbusPDUReadExceptionStatusRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadExceptionStatusRequest interface {
+	IModbusPDU
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
index 3020738..46298c5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadExceptionStatusResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadExceptionStatusResponse interface {
+	IModbusPDU
 	// GetValue returns Value
 	GetValue() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
index 55c4969..d47b911 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
@@ -34,6 +34,7 @@ type ModbusPDUReadFifoQueueRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadFifoQueueRequest interface {
+	IModbusPDU
 	// GetFifoPointerAddress returns FifoPointerAddress
 	GetFifoPointerAddress() uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
index 7d0985a..760edd4 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadFifoQueueResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadFifoQueueResponse interface {
+	IModbusPDU
 	// GetFifoValue returns FifoValue
 	GetFifoValue() []uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
index 19196e3..6cd2e9d 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
@@ -34,6 +34,7 @@ type ModbusPDUReadFileRecordRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadFileRecordRequest interface {
+	IModbusPDU
 	// GetItems returns Items
 	GetItems() []*ModbusPDUReadFileRecordRequestItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
index 8bec5b2..4127b93 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadFileRecordResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadFileRecordResponse interface {
+	IModbusPDU
 	// GetItems returns Items
 	GetItems() []*ModbusPDUReadFileRecordResponseItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
index fc4a697..3a4fd87 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
@@ -35,6 +35,7 @@ type ModbusPDUReadHoldingRegistersRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadHoldingRegistersRequest interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
index 35d0232..df3fed4 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadHoldingRegistersResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadHoldingRegistersResponse interface {
+	IModbusPDU
 	// GetValue returns Value
 	GetValue() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
index 0df1950..0d6e0e1 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
@@ -35,6 +35,7 @@ type ModbusPDUReadInputRegistersRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadInputRegistersRequest interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
index b2ca650..7f991a8 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadInputRegistersResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadInputRegistersResponse interface {
+	IModbusPDU
 	// GetValue returns Value
 	GetValue() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
index 52028ba..efb2563 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
@@ -38,6 +38,7 @@ type ModbusPDUReadWriteMultipleHoldingRegistersRequest struct {
 
 // The corresponding interface
 type IModbusPDUReadWriteMultipleHoldingRegistersRequest interface {
+	IModbusPDU
 	// GetReadStartingAddress returns ReadStartingAddress
 	GetReadStartingAddress() uint16
 	// GetReadQuantity returns ReadQuantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
index 345a412..62077ec 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReadWriteMultipleHoldingRegistersResponse struct {
 
 // The corresponding interface
 type IModbusPDUReadWriteMultipleHoldingRegistersResponse interface {
+	IModbusPDU
 	// GetValue returns Value
 	GetValue() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
index 420e7a6..47266cc 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
@@ -32,6 +32,7 @@ type ModbusPDUReportServerIdRequest struct {
 
 // The corresponding interface
 type IModbusPDUReportServerIdRequest interface {
+	IModbusPDU
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
index 5c564a0..af2c329 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUReportServerIdResponse struct {
 
 // The corresponding interface
 type IModbusPDUReportServerIdResponse interface {
+	IModbusPDU
 	// GetValue returns Value
 	GetValue() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
index 870d628..59d44ac 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
@@ -34,6 +34,7 @@ type ModbusPDUWriteFileRecordRequest struct {
 
 // The corresponding interface
 type IModbusPDUWriteFileRecordRequest interface {
+	IModbusPDU
 	// GetItems returns Items
 	GetItems() []*ModbusPDUWriteFileRecordRequestItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
index 9bf7bcc..f6d4537 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
@@ -34,6 +34,7 @@ type ModbusPDUWriteFileRecordResponse struct {
 
 // The corresponding interface
 type IModbusPDUWriteFileRecordResponse interface {
+	IModbusPDU
 	// GetItems returns Items
 	GetItems() []*ModbusPDUWriteFileRecordResponseItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
index 042b244..2613f13 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
@@ -36,6 +36,7 @@ type ModbusPDUWriteMultipleCoilsRequest struct {
 
 // The corresponding interface
 type IModbusPDUWriteMultipleCoilsRequest interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
index a22f493..43ed6a5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
@@ -35,6 +35,7 @@ type ModbusPDUWriteMultipleCoilsResponse struct {
 
 // The corresponding interface
 type IModbusPDUWriteMultipleCoilsResponse interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
index 4e1c26a..0b45b10 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
@@ -36,6 +36,7 @@ type ModbusPDUWriteMultipleHoldingRegistersRequest struct {
 
 // The corresponding interface
 type IModbusPDUWriteMultipleHoldingRegistersRequest interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
index 88b5d2f..5dd8e4b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
@@ -35,6 +35,7 @@ type ModbusPDUWriteMultipleHoldingRegistersResponse struct {
 
 // The corresponding interface
 type IModbusPDUWriteMultipleHoldingRegistersResponse interface {
+	IModbusPDU
 	// GetStartingAddress returns StartingAddress
 	GetStartingAddress() uint16
 	// GetQuantity returns Quantity
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
index d4cad32..e5057d6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
@@ -35,6 +35,7 @@ type ModbusPDUWriteSingleCoilRequest struct {
 
 // The corresponding interface
 type IModbusPDUWriteSingleCoilRequest interface {
+	IModbusPDU
 	// GetAddress returns Address
 	GetAddress() uint16
 	// GetValue returns Value
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
index 4671004..3f0a1f5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
@@ -35,6 +35,7 @@ type ModbusPDUWriteSingleCoilResponse struct {
 
 // The corresponding interface
 type IModbusPDUWriteSingleCoilResponse interface {
+	IModbusPDU
 	// GetAddress returns Address
 	GetAddress() uint16
 	// GetValue returns Value
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
index c1ac867..e7a08e2 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
@@ -35,6 +35,7 @@ type ModbusPDUWriteSingleRegisterRequest struct {
 
 // The corresponding interface
 type IModbusPDUWriteSingleRegisterRequest interface {
+	IModbusPDU
 	// GetAddress returns Address
 	GetAddress() uint16
 	// GetValue returns Value
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
index 968d1df..b09be4b 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
@@ -35,6 +35,7 @@ type ModbusPDUWriteSingleRegisterResponse struct {
 
 // The corresponding interface
 type IModbusPDUWriteSingleRegisterResponse interface {
+	IModbusPDU
 	// GetAddress returns Address
 	GetAddress() uint16
 	// GetValue returns Value
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go
index 70341bb..57d3e46 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go
@@ -39,6 +39,7 @@ type COTPPacketConnectionRequest struct {
 
 // The corresponding interface
 type ICOTPPacketConnectionRequest interface {
+	ICOTPPacket
 	// GetDestinationReference returns DestinationReference
 	GetDestinationReference() uint16
 	// GetSourceReference returns SourceReference
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go
index 3fe4cad..5d45ed9 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go
@@ -39,6 +39,7 @@ type COTPPacketConnectionResponse struct {
 
 // The corresponding interface
 type ICOTPPacketConnectionResponse interface {
+	ICOTPPacket
 	// GetDestinationReference returns DestinationReference
 	GetDestinationReference() uint16
 	// GetSourceReference returns SourceReference
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go
index 94deb77..6d8a49c 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go
@@ -38,6 +38,7 @@ type COTPPacketData struct {
 
 // The corresponding interface
 type ICOTPPacketData interface {
+	ICOTPPacket
 	// GetEot returns Eot
 	GetEot() bool
 	// GetTpduRef returns TpduRef
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go
index 337d8b2..a1d0edb 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go
@@ -39,6 +39,7 @@ type COTPPacketDisconnectRequest struct {
 
 // The corresponding interface
 type ICOTPPacketDisconnectRequest interface {
+	ICOTPPacket
 	// GetDestinationReference returns DestinationReference
 	GetDestinationReference() uint16
 	// GetSourceReference returns SourceReference
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go
index 0d1bb7f..76de27a 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go
@@ -38,6 +38,7 @@ type COTPPacketDisconnectResponse struct {
 
 // The corresponding interface
 type ICOTPPacketDisconnectResponse interface {
+	ICOTPPacket
 	// GetDestinationReference returns DestinationReference
 	GetDestinationReference() uint16
 	// GetSourceReference returns SourceReference
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go
index 4c4ad0e..45688ad 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go
@@ -38,6 +38,7 @@ type COTPPacketTpduError struct {
 
 // The corresponding interface
 type ICOTPPacketTpduError interface {
+	ICOTPPacket
 	// GetDestinationReference returns DestinationReference
 	GetDestinationReference() uint16
 	// GetRejectCause returns RejectCause
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
index e854993..823bac3 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
@@ -37,6 +37,7 @@ type COTPParameterCalledTsap struct {
 
 // The corresponding interface
 type ICOTPParameterCalledTsap interface {
+	ICOTPParameter
 	// GetTsapId returns TsapId
 	GetTsapId() uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
index ad96e41..a17bd91 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
@@ -37,6 +37,7 @@ type COTPParameterCallingTsap struct {
 
 // The corresponding interface
 type ICOTPParameterCallingTsap interface {
+	ICOTPParameter
 	// GetTsapId returns TsapId
 	GetTsapId() uint16
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
index be3b479..31a6da6 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
@@ -37,6 +37,7 @@ type COTPParameterChecksum struct {
 
 // The corresponding interface
 type ICOTPParameterChecksum interface {
+	ICOTPParameter
 	// GetCrc returns Crc
 	GetCrc() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
index 20dbf46..2ba7177 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
@@ -37,6 +37,7 @@ type COTPParameterDisconnectAdditionalInformation struct {
 
 // The corresponding interface
 type ICOTPParameterDisconnectAdditionalInformation interface {
+	ICOTPParameter
 	// GetData returns Data
 	GetData() []byte
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
index b9829d6..eaec5e2 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
@@ -37,6 +37,7 @@ type COTPParameterTpduSize struct {
 
 // The corresponding interface
 type ICOTPParameterTpduSize interface {
+	ICOTPParameter
 	// GetTpduSize returns TpduSize
 	GetTpduSize() COTPTpduSize
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go b/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
index 149cb3d..75be063 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
@@ -40,6 +40,7 @@ type S7AddressAny struct {
 
 // The corresponding interface
 type IS7AddressAny interface {
+	IS7Address
 	// GetTransportSize returns TransportSize
 	GetTransportSize() TransportSize
 	// GetNumberOfElements returns NumberOfElements
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go
index e98d8f3..141054e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectRequest.go
@@ -42,6 +42,7 @@ type S7MessageObjectRequest struct {
 
 // The corresponding interface
 type IS7MessageObjectRequest interface {
+	IS7DataAlarmMessage
 	// GetSyntaxId returns SyntaxId
 	GetSyntaxId() SyntaxIdType
 	// GetQueryType returns QueryType
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go
index dee93b0..21bdc8a 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageObjectResponse.go
@@ -36,6 +36,7 @@ type S7MessageObjectResponse struct {
 
 // The corresponding interface
 type IS7MessageObjectResponse interface {
+	IS7DataAlarmMessage
 	// GetReturnCode returns ReturnCode
 	GetReturnCode() DataTransportErrorCode
 	// GetTransportSize returns TransportSize
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go
index 5965fa0..90b5590 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go
@@ -32,6 +32,7 @@ type S7MessageRequest struct {
 
 // The corresponding interface
 type IS7MessageRequest interface {
+	IS7Message
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go
index 0df49dc..9f833d7 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go
@@ -35,6 +35,7 @@ type S7MessageResponse struct {
 
 // The corresponding interface
 type IS7MessageResponse interface {
+	IS7Message
 	// GetErrorClass returns ErrorClass
 	GetErrorClass() uint8
 	// GetErrorCode returns ErrorCode
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go
index 87f9385..e062743 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go
@@ -35,6 +35,7 @@ type S7MessageResponseData struct {
 
 // The corresponding interface
 type IS7MessageResponseData interface {
+	IS7Message
 	// GetErrorClass returns ErrorClass
 	GetErrorClass() uint8
 	// GetErrorCode returns ErrorCode
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go
index d015c24..7f4d609 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go
@@ -32,6 +32,7 @@ type S7MessageUserData struct {
 
 // The corresponding interface
 type IS7MessageUserData interface {
+	IS7Message
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go
index b75edc7..e3a7e98 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterModeTransition.go
@@ -39,6 +39,7 @@ type S7ParameterModeTransition struct {
 
 // The corresponding interface
 type IS7ParameterModeTransition interface {
+	IS7Parameter
 	// GetMethod returns Method
 	GetMethod() uint8
 	// GetCpuFunctionType returns CpuFunctionType
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
index 422fa2d..48c218b 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
@@ -34,6 +34,7 @@ type S7ParameterReadVarRequest struct {
 
 // The corresponding interface
 type IS7ParameterReadVarRequest interface {
+	IS7Parameter
 	// GetItems returns Items
 	GetItems() []*S7VarRequestParameterItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
index 22625e6..3c8ba54 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
@@ -34,6 +34,7 @@ type S7ParameterReadVarResponse struct {
 
 // The corresponding interface
 type IS7ParameterReadVarResponse interface {
+	IS7Parameter
 	// GetNumItems returns NumItems
 	GetNumItems() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
index f5a03c8..de739cc 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
@@ -37,6 +37,7 @@ type S7ParameterSetupCommunication struct {
 
 // The corresponding interface
 type IS7ParameterSetupCommunication interface {
+	IS7Parameter
 	// GetMaxAmqCaller returns MaxAmqCaller
 	GetMaxAmqCaller() uint16
 	// GetMaxAmqCallee returns MaxAmqCallee
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
index 7901615..7e22327 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
@@ -34,6 +34,7 @@ type S7ParameterUserData struct {
 
 // The corresponding interface
 type IS7ParameterUserData interface {
+	IS7Parameter
 	// GetItems returns Items
 	GetItems() []*S7ParameterUserDataItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
index 2297d81..ac8a1f9 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
@@ -41,6 +41,7 @@ type S7ParameterUserDataItemCPUFunctions struct {
 
 // The corresponding interface
 type IS7ParameterUserDataItemCPUFunctions interface {
+	IS7ParameterUserDataItem
 	// GetMethod returns Method
 	GetMethod() uint8
 	// GetCpuFunctionType returns CpuFunctionType
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
index 3c2722f..c4fbda2 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
@@ -34,6 +34,7 @@ type S7ParameterWriteVarRequest struct {
 
 // The corresponding interface
 type IS7ParameterWriteVarRequest interface {
+	IS7Parameter
 	// GetItems returns Items
 	GetItems() []*S7VarRequestParameterItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
index 6ce3ff7..bdbe01e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
@@ -34,6 +34,7 @@ type S7ParameterWriteVarResponse struct {
 
 // The corresponding interface
 type IS7ParameterWriteVarResponse interface {
+	IS7Parameter
 	// GetNumItems returns NumItems
 	GetNumItems() uint8
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarm8.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarm8.go
index 7cdbaa0..e342e6c 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarm8.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarm8.go
@@ -34,6 +34,7 @@ type S7PayloadAlarm8 struct {
 
 // The corresponding interface
 type IS7PayloadAlarm8 interface {
+	IS7PayloadUserDataItem
 	// GetAlarmMessage returns AlarmMessage
 	GetAlarmMessage() *AlarmMessagePushType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmAckInd.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmAckInd.go
index 93c12e2..72d653c 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmAckInd.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmAckInd.go
@@ -34,6 +34,7 @@ type S7PayloadAlarmAckInd struct {
 
 // The corresponding interface
 type IS7PayloadAlarmAckInd interface {
+	IS7PayloadUserDataItem
 	// GetAlarmMessage returns AlarmMessage
 	GetAlarmMessage() *AlarmMessageAckPushType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmS.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmS.go
index 8b93470..dabeae6 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmS.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmS.go
@@ -34,6 +34,7 @@ type S7PayloadAlarmS struct {
 
 // The corresponding interface
 type IS7PayloadAlarmS interface {
+	IS7PayloadUserDataItem
 	// GetAlarmMessage returns AlarmMessage
 	GetAlarmMessage() *AlarmMessagePushType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSC.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSC.go
index 068399b..f16420c 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSC.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSC.go
@@ -34,6 +34,7 @@ type S7PayloadAlarmSC struct {
 
 // The corresponding interface
 type IS7PayloadAlarmSC interface {
+	IS7PayloadUserDataItem
 	// GetAlarmMessage returns AlarmMessage
 	GetAlarmMessage() *AlarmMessagePushType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSQ.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSQ.go
index a738cec..5e9bce8 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSQ.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadAlarmSQ.go
@@ -34,6 +34,7 @@ type S7PayloadAlarmSQ struct {
 
 // The corresponding interface
 type IS7PayloadAlarmSQ interface {
+	IS7PayloadUserDataItem
 	// GetAlarmMessage returns AlarmMessage
 	GetAlarmMessage() *AlarmMessagePushType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadDiagnosticMessage.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadDiagnosticMessage.go
index 03e5135..d6ebc37 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadDiagnosticMessage.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadDiagnosticMessage.go
@@ -40,6 +40,7 @@ type S7PayloadDiagnosticMessage struct {
 
 // The corresponding interface
 type IS7PayloadDiagnosticMessage interface {
+	IS7PayloadUserDataItem
 	// GetEventId returns EventId
 	GetEventId() uint16
 	// GetPriorityClass returns PriorityClass
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify.go
index c3cc510..2c78669 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify.go
@@ -34,6 +34,7 @@ type S7PayloadNotify struct {
 
 // The corresponding interface
 type IS7PayloadNotify interface {
+	IS7PayloadUserDataItem
 	// GetAlarmMessage returns AlarmMessage
 	GetAlarmMessage() *AlarmMessagePushType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify8.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify8.go
index de4aca0..8b39104 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify8.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadNotify8.go
@@ -34,6 +34,7 @@ type S7PayloadNotify8 struct {
 
 // The corresponding interface
 type IS7PayloadNotify8 interface {
+	IS7PayloadUserDataItem
 	// GetAlarmMessage returns AlarmMessage
 	GetAlarmMessage() *AlarmMessagePushType
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
index f614bf4..f9b42d7 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
@@ -37,6 +37,7 @@ type S7PayloadReadVarResponse struct {
 
 // The corresponding interface
 type IS7PayloadReadVarResponse interface {
+	IS7Payload
 	// GetItems returns Items
 	GetItems() []*S7VarPayloadDataItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
index f4cddb4..89c83e0 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
@@ -37,6 +37,7 @@ type S7PayloadUserData struct {
 
 // The corresponding interface
 type IS7PayloadUserData interface {
+	IS7Payload
 	// GetItems returns Items
 	GetItems() []*S7PayloadUserDataItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAck.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAck.go
index 916fc10..67be637 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAck.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAck.go
@@ -35,6 +35,7 @@ type S7PayloadUserDataItemCpuFunctionAlarmAck struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionAlarmAck interface {
+	IS7PayloadUserDataItem
 	// GetFunctionId returns FunctionId
 	GetFunctionId() uint8
 	// GetMessageObjects returns MessageObjects
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAckResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAckResponse.go
index 8e7c304..2553851 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAckResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmAckResponse.go
@@ -35,6 +35,7 @@ type S7PayloadUserDataItemCpuFunctionAlarmAckResponse struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionAlarmAckResponse interface {
+	IS7PayloadUserDataItem
 	// GetFunctionId returns FunctionId
 	GetFunctionId() uint8
 	// GetMessageObjects returns MessageObjects
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQuery.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQuery.go
index 61c227a..ef52dfe 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQuery.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQuery.go
@@ -44,6 +44,7 @@ type S7PayloadUserDataItemCpuFunctionAlarmQuery struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionAlarmQuery interface {
+	IS7PayloadUserDataItem
 	// GetSyntaxId returns SyntaxId
 	GetSyntaxId() SyntaxIdType
 	// GetQueryType returns QueryType
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQueryResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQueryResponse.go
index c45cac1..49681b0 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQueryResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionAlarmQueryResponse.go
@@ -41,6 +41,7 @@ type S7PayloadUserDataItemCpuFunctionAlarmQueryResponse struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionAlarmQueryResponse interface {
+	IS7PayloadUserDataItem
 	// GetPudicfReturnCode returns PudicfReturnCode
 	GetPudicfReturnCode() DataTransportErrorCode
 	// GetPudicftransportSize returns PudicftransportSize
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscription.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscription.go
index 42df6e6..c57e313 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscription.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscription.go
@@ -38,6 +38,7 @@ type S7PayloadUserDataItemCpuFunctionMsgSubscription struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionMsgSubscription interface {
+	IS7PayloadUserDataItem
 	// GetSubscription returns Subscription
 	GetSubscription() uint8
 	// GetMagicKey returns MagicKey
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse.go
index 3c9e561..81adc2a 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse.go
@@ -38,6 +38,7 @@ type S7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionMsgSubscriptionAlarmResponse interface {
+	IS7PayloadUserDataItem
 	// GetResult returns Result
 	GetResult() uint8
 	// GetReserved01 returns Reserved01
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse.go
index 6eaa893..1e49eab 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse.go
@@ -32,6 +32,7 @@ type S7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionMsgSubscriptionResponse interface {
+	IS7PayloadUserDataItem
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse.go
index e81b557..d6f2c46 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse.go
@@ -35,6 +35,7 @@ type S7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionMsgSubscriptionSysResponse interface {
+	IS7PayloadUserDataItem
 	// GetResult returns Result
 	GetResult() uint8
 	// GetReserved01 returns Reserved01
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go
index d03d021..c706b60 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go
@@ -35,6 +35,7 @@ type S7PayloadUserDataItemCpuFunctionReadSzlRequest struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionReadSzlRequest interface {
+	IS7PayloadUserDataItem
 	// GetSzlId returns SzlId
 	GetSzlId() *SzlId
 	// GetSzlIndex returns SzlIndex
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
index ed47937..3613b97 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
@@ -40,6 +40,7 @@ type S7PayloadUserDataItemCpuFunctionReadSzlResponse struct {
 
 // The corresponding interface
 type IS7PayloadUserDataItemCpuFunctionReadSzlResponse interface {
+	IS7PayloadUserDataItem
 	// GetSzlId returns SzlId
 	GetSzlId() *SzlId
 	// GetSzlIndex returns SzlIndex
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
index 54fdf12..95143cd 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
@@ -37,6 +37,7 @@ type S7PayloadWriteVarRequest struct {
 
 // The corresponding interface
 type IS7PayloadWriteVarRequest interface {
+	IS7Payload
 	// GetItems returns Items
 	GetItems() []*S7VarPayloadDataItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
index d14e466..425858a 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
@@ -37,6 +37,7 @@ type S7PayloadWriteVarResponse struct {
 
 // The corresponding interface
 type IS7PayloadWriteVarResponse interface {
+	IS7Payload
 	// GetItems returns Items
 	GetItems() []*S7VarPayloadStatusItem
 	// GetLengthInBytes returns the length in bytes
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go b/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
index da0807e..1ec3a11 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
@@ -34,6 +34,7 @@ type S7VarRequestParameterItemAddress struct {
 
 // The corresponding interface
 type IS7VarRequestParameterItemAddress interface {
+	IS7VarRequestParameterItem
 	// GetAddress returns Address
 	GetAddress() *S7Address
 	// GetLengthInBytes returns the length in bytes