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 2024/11/12 14:53:37 UTC

(plc4x) branch develop updated: fix(code-gen/go): fix NPE on builder clone

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 03b52a3eb6 fix(code-gen/go): fix NPE on builder clone
03b52a3eb6 is described below

commit 03b52a3eb67e8ab9b283b4ad7b3fe3063c9e1d18
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Nov 12 15:53:26 2024 +0100

    fix(code-gen/go): fix NPE on builder clone
---
 .../templates/go/complex-type-template.go.ftlh     |  2 +-
 .../readwrite/model/CIPEncapsulationReadRequest.go |  2 +-
 .../model/CIPEncapsulationReadResponse.go          |  2 +-
 .../readwrite/model/DF1CommandRequestMessage.go    |  2 +-
 .../ads/discovery/readwrite/model/AdsDiscovery.go  |  2 +-
 .../readwrite/model/AdsDiscoveryBlockAmsNetId.go   |  2 +-
 .../readwrite/model/AdsDiscoveryBlockHostName.go   |  2 +-
 .../readwrite/model/AdsDiscoveryBlockPassword.go   |  2 +-
 .../readwrite/model/AdsDiscoveryBlockRouteName.go  |  2 +-
 .../readwrite/model/AdsDiscoveryBlockUserName.go   |  2 +-
 plc4go/protocols/ads/readwrite/model/AmsPacket.go  |  4 +-
 .../ads/readwrite/model/AmsSerialFrame.go          |  2 +-
 .../protocols/ads/readwrite/model/AmsTCPPacket.go  |  2 +-
 .../bacnetip/readwrite/model/APDUAbort.go          |  2 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |  2 +-
 .../readwrite/model/APDUConfirmedRequest.go        |  2 +-
 .../bacnetip/readwrite/model/APDUError.go          |  2 +-
 .../bacnetip/readwrite/model/APDUReject.go         |  2 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |  2 +-
 ...ACnetAccessAuthenticationFactorDisableTagged.go |  2 +-
 .../BACnetAccessCredentialDisableReasonTagged.go   |  2 +-
 .../model/BACnetAccessCredentialDisableTagged.go   |  2 +-
 .../readwrite/model/BACnetAccessEventTagged.go     |  2 +-
 .../model/BACnetAccessPassbackModeTagged.go        |  2 +-
 .../bacnetip/readwrite/model/BACnetAccessRule.go   | 10 ++--
 .../BACnetAccessRuleLocationSpecifierTagged.go     |  2 +-
 .../BACnetAccessRuleTimeRangeSpecifierTagged.go    |  2 +-
 .../readwrite/model/BACnetAccessThreatLevel.go     |  2 +-
 .../readwrite/model/BACnetAccessUserTypeTagged.go  |  2 +-
 .../model/BACnetAccessZoneOccupancyStateTagged.go  |  2 +-
 .../readwrite/model/BACnetAccumulatorRecord.go     |  8 +--
 ...CnetAccumulatorRecordAccumulatorStatusTagged.go |  2 +-
 .../readwrite/model/BACnetActionCommand.go         | 18 +++---
 .../bacnetip/readwrite/model/BACnetActionList.go   |  4 +-
 .../bacnetip/readwrite/model/BACnetActionTagged.go |  2 +-
 .../bacnetip/readwrite/model/BACnetAddress.go      |  4 +-
 .../readwrite/model/BACnetAddressBinding.go        |  4 +-
 .../readwrite/model/BACnetAddressEnclosed.go       |  6 +-
 .../readwrite/model/BACnetApplicationTag.go        |  2 +-
 .../model/BACnetApplicationTagBitString.go         |  2 +-
 .../readwrite/model/BACnetApplicationTagBoolean.go |  2 +-
 .../model/BACnetApplicationTagCharacterString.go   |  2 +-
 .../readwrite/model/BACnetApplicationTagDate.go    |  2 +-
 .../readwrite/model/BACnetApplicationTagDouble.go  |  2 +-
 .../model/BACnetApplicationTagEnumerated.go        |  2 +-
 .../model/BACnetApplicationTagObjectIdentifier.go  |  2 +-
 .../model/BACnetApplicationTagOctetString.go       |  2 +-
 .../readwrite/model/BACnetApplicationTagReal.go    |  2 +-
 .../model/BACnetApplicationTagSignedInteger.go     |  2 +-
 .../readwrite/model/BACnetApplicationTagTime.go    |  2 +-
 .../model/BACnetApplicationTagUnsignedInteger.go   |  2 +-
 .../readwrite/model/BACnetAssignedAccessRights.go  |  4 +-
 .../readwrite/model/BACnetAssignedLandingCalls.go  |  2 +-
 .../BACnetAssignedLandingCallsLandingCallsList.go  |  4 +-
 ...netAssignedLandingCallsLandingCallsListEntry.go |  4 +-
 .../readwrite/model/BACnetAuthenticationFactor.go  |  6 +-
 .../model/BACnetAuthenticationFactorEnclosed.go    |  6 +-
 .../model/BACnetAuthenticationFactorFormat.go      |  6 +-
 .../model/BACnetAuthenticationFactorTypeTagged.go  |  2 +-
 .../readwrite/model/BACnetAuthenticationPolicy.go  |  6 +-
 .../model/BACnetAuthenticationPolicyList.go        |  4 +-
 .../model/BACnetAuthenticationPolicyListEntry.go   |  4 +-
 .../model/BACnetAuthenticationStatusTagged.go      |  2 +-
 .../model/BACnetAuthorizationExemptionTagged.go    |  2 +-
 .../model/BACnetAuthorizationModeTagged.go         |  2 +-
 .../bacnetip/readwrite/model/BACnetBDTEntry.go     |  4 +-
 .../readwrite/model/BACnetBackupStateTagged.go     |  2 +-
 .../model/BACnetBinaryLightingPVTagged.go          |  2 +-
 .../readwrite/model/BACnetBinaryPVTagged.go        |  2 +-
 .../model/BACnetCOVMultipleSubscription.go         | 10 ++--
 ...bscriptionListOfCovSubscriptionSpecification.go |  4 +-
 ...ptionListOfCovSubscriptionSpecificationEntry.go |  4 +-
 ...riptionSpecificationEntryListOfCovReferences.go |  4 +-
 ...onSpecificationEntryListOfCovReferencesEntry.go |  6 +-
 .../readwrite/model/BACnetCOVSubscription.go       | 10 ++--
 .../readwrite/model/BACnetCalendarEntry.go         |  2 +-
 .../readwrite/model/BACnetCalendarEntryDate.go     |  2 +-
 .../model/BACnetCalendarEntryDateRange.go          |  2 +-
 .../readwrite/model/BACnetCalendarEntryEnclosed.go |  6 +-
 .../readwrite/model/BACnetCalendarEntryWeekNDay.go |  2 +-
 .../bacnetip/readwrite/model/BACnetChannelValue.go |  2 +-
 .../readwrite/model/BACnetChannelValueBitString.go |  2 +-
 .../readwrite/model/BACnetChannelValueBoolean.go   |  2 +-
 .../model/BACnetChannelValueCharacterString.go     |  2 +-
 .../readwrite/model/BACnetChannelValueDate.go      |  2 +-
 .../readwrite/model/BACnetChannelValueDouble.go    |  2 +-
 .../model/BACnetChannelValueEnumerated.go          |  2 +-
 .../readwrite/model/BACnetChannelValueInteger.go   |  2 +-
 .../model/BACnetChannelValueLightingCommand.go     |  2 +-
 .../readwrite/model/BACnetChannelValueNull.go      |  2 +-
 .../model/BACnetChannelValueObjectidentifier.go    |  2 +-
 .../model/BACnetChannelValueOctetString.go         |  2 +-
 .../readwrite/model/BACnetChannelValueReal.go      |  2 +-
 .../readwrite/model/BACnetChannelValueTime.go      |  2 +-
 .../readwrite/model/BACnetChannelValueUnsigned.go  |  2 +-
 .../bacnetip/readwrite/model/BACnetClientCOV.go    |  2 +-
 .../readwrite/model/BACnetClientCOVNone.go         |  2 +-
 .../readwrite/model/BACnetClientCOVObject.go       |  2 +-
 .../bacnetip/readwrite/model/BACnetClosingTag.go   |  2 +-
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go | 12 ++--
 .../BACnetConfirmedServiceRequestAddListElement.go |  8 +--
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |  4 +-
 ...tConfirmedServiceRequestAtomicReadFileRecord.go |  4 +-
 ...tConfirmedServiceRequestAtomicReadFileStream.go |  4 +-
 ...edServiceRequestAtomicReadFileStreamOrRecord.go |  6 +-
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go | 10 ++--
 ...firmedServiceRequestConfirmedCOVNotification.go | 10 ++--
 ...rviceRequestConfirmedCOVNotificationMultiple.go | 10 ++--
 ...rmedServiceRequestConfirmedEventNotification.go | 26 ++++-----
 ...firmedServiceRequestConfirmedPrivateTransfer.go |  6 +-
 ...tConfirmedServiceRequestConfirmedTextMessage.go |  8 +--
 ...rviceRequestConfirmedTextMessageMessageClass.go |  6 +-
 ...estConfirmedTextMessageMessageClassCharacter.go |  2 +-
 ...questConfirmedTextMessageMessageClassNumeric.go |  2 +-
 ...estConfirmedTextMessageMessagePriorityTagged.go |  2 +-
 .../BACnetConfirmedServiceRequestCreateObject.go   |  4 +-
 ...medServiceRequestCreateObjectObjectSpecifier.go |  8 +--
 .../BACnetConfirmedServiceRequestDeleteObject.go   |  2 +-
 ...rmedServiceRequestDeviceCommunicationControl.go |  6 +-
 ...eviceCommunicationControlEnableDisableTagged.go |  2 +-
 ...tConfirmedServiceRequestGetEnrollmentSummary.go | 12 ++--
 ...EnrollmentSummaryAcknowledgementFilterTagged.go |  2 +-
 ...stGetEnrollmentSummaryEventStateFilterTagged.go |  2 +-
 ...iceRequestGetEnrollmentSummaryPriorityFilter.go |  8 +--
 ...etConfirmedServiceRequestGetEventInformation.go |  2 +-
 ...etConfirmedServiceRequestLifeSafetyOperation.go |  8 +--
 .../BACnetConfirmedServiceRequestReadProperty.go   |  6 +-
 .../BACnetConfirmedServiceRequestReadRange.go      |  8 +--
 .../BACnetConfirmedServiceRequestReadRangeRange.go |  6 +-
 ...firmedServiceRequestReadRangeRangeByPosition.go |  4 +-
 ...ServiceRequestReadRangeRangeBySequenceNumber.go |  4 +-
 ...tConfirmedServiceRequestReadRangeRangeByTime.go |  4 +-
 ...netConfirmedServiceRequestReinitializeDevice.go |  4 +-
 ...ializeDeviceReinitializedStateOfDeviceTagged.go |  2 +-
 ...CnetConfirmedServiceRequestRemoveListElement.go |  8 +--
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   |  8 +--
 ...tConfirmedServiceRequestSubscribeCOVProperty.go | 12 ++--
 ...edServiceRequestSubscribeCOVPropertyMultiple.go | 10 ++--
 ...yMultipleListOfCovSubscriptionSpecifications.go |  6 +-
 ...tipleListOfCovSubscriptionSpecificationsList.go |  4 +-
 ...ListOfCovSubscriptionSpecificationsReference.go |  6 +-
 .../model/BACnetConfirmedServiceRequestVTData.go   |  6 +-
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |  4 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  | 10 ++--
 .../readwrite/model/BACnetConstructedData.go       |  6 +-
 .../model/BACnetConstructedDataAPDULength.go       |  2 +-
 .../BACnetConstructedDataAPDUSegmentTimeout.go     |  2 +-
 .../model/BACnetConstructedDataAPDUTimeout.go      |  2 +-
 .../model/BACnetConstructedDataAbsenteeLimit.go    |  2 +-
 .../BACnetConstructedDataAccessDoorPresentValue.go |  2 +-
 ...etConstructedDataAccessDoorRelinquishDefault.go |  2 +-
 .../model/BACnetConstructedDataAccessDoors.go      |  2 +-
 .../model/BACnetConstructedDataAccessEvent.go      |  2 +-
 ...nstructedDataAccessEventAuthenticationFactor.go |  2 +-
 .../BACnetConstructedDataAccessEventCredential.go  |  2 +-
 .../model/BACnetConstructedDataAccessEventTag.go   |  2 +-
 .../model/BACnetConstructedDataAccessEventTime.go  |  2 +-
 .../BACnetConstructedDataAccessZoneAdjustValue.go  |  2 +-
 .../model/BACnetConstructedDataAccompaniment.go    |  2 +-
 .../BACnetConstructedDataAccompanimentTime.go      |  2 +-
 ...CnetConstructedDataAccumulatorFaultHighLimit.go |  2 +-
 ...ACnetConstructedDataAccumulatorFaultLowLimit.go |  2 +-
 .../BACnetConstructedDataAccumulatorHighLimit.go   |  2 +-
 .../BACnetConstructedDataAccumulatorLowLimit.go    |  2 +-
 ...BACnetConstructedDataAccumulatorMaxPresValue.go |  2 +-
 ...BACnetConstructedDataAccumulatorMinPresValue.go |  2 +-
 .../model/BACnetConstructedDataAckRequired.go      |  2 +-
 .../model/BACnetConstructedDataAckedTransitions.go |  2 +-
 .../readwrite/model/BACnetConstructedDataAction.go |  2 +-
 .../model/BACnetConstructedDataActionText.go       |  2 +-
 .../model/BACnetConstructedDataActivationTime.go   |  2 +-
 ...netConstructedDataActiveAuthenticationPolicy.go |  2 +-
 .../model/BACnetConstructedDataActiveText.go       |  2 +-
 .../model/BACnetConstructedDataActualShedLevel.go  |  2 +-
 .../model/BACnetConstructedDataAdjustValue.go      |  2 +-
 .../model/BACnetConstructedDataAlarmValue.go       |  2 +-
 .../model/BACnetConstructedDataAlarmValues.go      |  2 +-
 ...etConstructedDataAlertEnrollmentPresentValue.go |  2 +-
 .../model/BACnetConstructedDataAlignIntervals.go   |  2 +-
 .../BACnetConstructedDataAllWritesSuccessful.go    |  2 +-
 .../BACnetConstructedDataAllowGroupDelayInhibit.go |  2 +-
 ...CnetConstructedDataAnalogInputFaultHighLimit.go |  2 +-
 ...ACnetConstructedDataAnalogInputFaultLowLimit.go |  2 +-
 ...CnetConstructedDataAnalogInputInterfaceValue.go |  2 +-
 ...BACnetConstructedDataAnalogInputMaxPresValue.go |  2 +-
 ...BACnetConstructedDataAnalogInputPresentValue.go |  2 +-
 ...netConstructedDataAnalogOutputInterfaceValue.go |  2 +-
 ...ACnetConstructedDataAnalogOutputMaxPresValue.go |  2 +-
 ...ACnetConstructedDataAnalogOutputPresentValue.go |  2 +-
 ...ConstructedDataAnalogOutputRelinquishDefault.go |  2 +-
 ...CnetConstructedDataAnalogValueFaultHighLimit.go |  2 +-
 ...ACnetConstructedDataAnalogValueFaultLowLimit.go |  2 +-
 ...BACnetConstructedDataAnalogValueMaxPresValue.go |  2 +-
 ...BACnetConstructedDataAnalogValuePresentValue.go |  2 +-
 ...tConstructedDataAnalogValueRelinquishDefault.go |  2 +-
 ...netConstructedDataApplicationSoftwareVersion.go |  2 +-
 .../model/BACnetConstructedDataArchive.go          |  2 +-
 .../BACnetConstructedDataAssignedAccessRights.go   |  2 +-
 .../BACnetConstructedDataAssignedLandingCalls.go   |  2 +-
 .../model/BACnetConstructedDataAttemptedSamples.go |  2 +-
 .../BACnetConstructedDataAuthenticationFactors.go  |  2 +-
 ...ACnetConstructedDataAuthenticationPolicyList.go |  2 +-
 ...CnetConstructedDataAuthenticationPolicyNames.go |  2 +-
 .../BACnetConstructedDataAuthenticationStatus.go   |  2 +-
 .../BACnetConstructedDataAuthorizationMode.go      |  2 +-
 .../BACnetConstructedDataAutoSlaveDiscovery.go     |  2 +-
 .../model/BACnetConstructedDataAverageValue.go     |  2 +-
 .../BACnetConstructedDataBACnetIPGlobalAddress.go  |  2 +-
 .../model/BACnetConstructedDataBACnetIPMode.go     |  2 +-
 ...ACnetConstructedDataBACnetIPMulticastAddress.go |  2 +-
 .../BACnetConstructedDataBACnetIPNATTraversal.go   |  2 +-
 .../model/BACnetConstructedDataBACnetIPUDPPort.go  |  2 +-
 .../model/BACnetConstructedDataBACnetIPv6Mode.go   |  2 +-
 ...netConstructedDataBACnetIPv6MulticastAddress.go |  2 +-
 .../BACnetConstructedDataBACnetIPv6UDPPort.go      |  2 +-
 ...CnetConstructedDataBBMDAcceptFDRegistrations.go |  2 +-
 .../BACnetConstructedDataBackupAndRestoreState.go  |  2 +-
 .../BACnetConstructedDataBackupFailureTimeout.go   |  2 +-
 .../BACnetConstructedDataBackupPreparationTime.go  |  2 +-
 ...ACnetConstructedDataBaseDeviceSecurityPolicy.go |  2 +-
 .../model/BACnetConstructedDataBelongsTo.go        |  2 +-
 .../readwrite/model/BACnetConstructedDataBias.go   |  2 +-
 ...CnetConstructedDataBinaryInputInterfaceValue.go |  2 +-
 ...BACnetConstructedDataBinaryInputPresentValue.go |  2 +-
 ...tructedDataBinaryLightingOutputFeedbackValue.go |  2 +-
 ...structedDataBinaryLightingOutputPresentValue.go |  2 +-
 ...tedDataBinaryLightingOutputRelinquishDefault.go |  2 +-
 ...CnetConstructedDataBinaryOutputFeedbackValue.go |  2 +-
 ...netConstructedDataBinaryOutputInterfaceValue.go |  2 +-
 ...ACnetConstructedDataBinaryOutputPresentValue.go |  2 +-
 ...ConstructedDataBinaryOutputRelinquishDefault.go |  2 +-
 ...BACnetConstructedDataBinaryValuePresentValue.go |  2 +-
 ...tConstructedDataBinaryValueRelinquishDefault.go |  2 +-
 .../model/BACnetConstructedDataBitMask.go          |  2 +-
 ...CnetConstructedDataBitStringValueAlarmValues.go |  2 +-
 ...netConstructedDataBitStringValuePresentValue.go |  2 +-
 ...nstructedDataBitStringValueRelinquishDefault.go |  2 +-
 .../model/BACnetConstructedDataBitText.go          |  2 +-
 .../model/BACnetConstructedDataBlinkWarnEnable.go  |  2 +-
 .../model/BACnetConstructedDataBufferSize.go       |  2 +-
 .../model/BACnetConstructedDataCOVIncrement.go     |  2 +-
 .../model/BACnetConstructedDataCOVPeriod.go        |  2 +-
 ...CnetConstructedDataCOVResubscriptionInterval.go |  2 +-
 .../model/BACnetConstructedDataCOVUPeriod.go       |  2 +-
 .../BACnetConstructedDataCalendarPresentValue.go   |  2 +-
 .../BACnetConstructedDataCarAssignedDirection.go   |  2 +-
 .../model/BACnetConstructedDataCarDoorCommand.go   |  2 +-
 .../model/BACnetConstructedDataCarDoorStatus.go    |  2 +-
 .../model/BACnetConstructedDataCarDoorText.go      |  2 +-
 .../model/BACnetConstructedDataCarDoorZone.go      |  2 +-
 .../model/BACnetConstructedDataCarDriveStatus.go   |  2 +-
 .../model/BACnetConstructedDataCarLoad.go          |  2 +-
 .../model/BACnetConstructedDataCarLoadUnits.go     |  2 +-
 .../model/BACnetConstructedDataCarMode.go          |  2 +-
 .../BACnetConstructedDataCarMovingDirection.go     |  2 +-
 .../model/BACnetConstructedDataCarPosition.go      |  2 +-
 .../BACnetConstructedDataChangeOfStateCount.go     |  2 +-
 .../BACnetConstructedDataChangeOfStateTime.go      |  2 +-
 .../model/BACnetConstructedDataChangesPending.go   |  2 +-
 ...tedDataChannelListOfObjectPropertyReferences.go |  2 +-
 .../model/BACnetConstructedDataChannelNumber.go    |  2 +-
 .../BACnetConstructedDataChannelPresentValue.go    |  2 +-
 ...nstructedDataCharacterStringValueAlarmValues.go |  2 +-
 ...nstructedDataCharacterStringValueFaultValues.go |  2 +-
 ...structedDataCharacterStringValuePresentValue.go |  2 +-
 ...tedDataCharacterStringValueRelinquishDefault.go |  2 +-
 .../BACnetConstructedDataClientCOVIncrement.go     |  2 +-
 .../model/BACnetConstructedDataCommand.go          |  2 +-
 .../model/BACnetConstructedDataCommandAction.go    |  2 +-
 .../model/BACnetConstructedDataCommandTimeArray.go |  2 +-
 .../BACnetConstructedDataConfigurationFiles.go     |  2 +-
 .../model/BACnetConstructedDataControlGroups.go    |  2 +-
 ...etConstructedDataControlledVariableReference.go |  2 +-
 ...BACnetConstructedDataControlledVariableUnits.go |  2 +-
 ...BACnetConstructedDataControlledVariableValue.go |  2 +-
 .../readwrite/model/BACnetConstructedDataCount.go  |  2 +-
 .../BACnetConstructedDataCountBeforeChange.go      |  2 +-
 .../model/BACnetConstructedDataCountChangeTime.go  |  2 +-
 ...nstructedDataCredentialDataInputPresentValue.go |  2 +-
 ...ConstructedDataCredentialDataInputUpdateTime.go |  2 +-
 .../BACnetConstructedDataCredentialDisable.go      |  2 +-
 .../model/BACnetConstructedDataCredentialStatus.go |  2 +-
 .../BACnetConstructedDataCurrentCommandPriority.go |  2 +-
 .../model/BACnetConstructedDataDatabaseRevision.go |  2 +-
 ...tConstructedDataDatePatternValuePresentValue.go |  2 +-
 ...tructedDataDatePatternValueRelinquishDefault.go |  2 +-
 ...structedDataDateTimePatternValuePresentValue.go |  2 +-
 ...tedDataDateTimePatternValueRelinquishDefault.go |  2 +-
 ...CnetConstructedDataDateTimeValuePresentValue.go |  2 +-
 ...onstructedDataDateTimeValueRelinquishDefault.go |  2 +-
 .../BACnetConstructedDataDateValuePresentValue.go  |  2 +-
 ...netConstructedDataDateValueRelinquishDefault.go |  2 +-
 .../BACnetConstructedDataDaylightSavingsStatus.go  |  2 +-
 .../model/BACnetConstructedDataDaysRemaining.go    |  2 +-
 .../model/BACnetConstructedDataDeadband.go         |  2 +-
 .../model/BACnetConstructedDataDefaultFadeTime.go  |  2 +-
 .../model/BACnetConstructedDataDefaultRampRate.go  |  2 +-
 .../BACnetConstructedDataDefaultStepIncrement.go   |  2 +-
 ...onstructedDataDefaultSubordinateRelationship.go |  2 +-
 .../model/BACnetConstructedDataDefaultTimeout.go   |  2 +-
 ...BACnetConstructedDataDeployedProfileLocation.go |  2 +-
 .../BACnetConstructedDataDerivativeConstant.go     |  2 +-
 ...BACnetConstructedDataDerivativeConstantUnits.go |  2 +-
 .../model/BACnetConstructedDataDescription.go      |  2 +-
 .../BACnetConstructedDataDescriptionOfHalt.go      |  2 +-
 .../BACnetConstructedDataDeviceMaxInfoFrames.go    |  2 +-
 .../model/BACnetConstructedDataDeviceMaxMaster.go  |  2 +-
 .../model/BACnetConstructedDataDeviceType.go       |  2 +-
 .../model/BACnetConstructedDataDirectReading.go    |  2 +-
 ...BACnetConstructedDataDistributionKeyRevision.go |  2 +-
 .../model/BACnetConstructedDataDoNotHide.go        |  2 +-
 .../model/BACnetConstructedDataDoorAlarmState.go   |  2 +-
 .../BACnetConstructedDataDoorExtendedPulseTime.go  |  2 +-
 .../model/BACnetConstructedDataDoorMembers.go      |  2 +-
 .../BACnetConstructedDataDoorOpenTooLongTime.go    |  2 +-
 .../model/BACnetConstructedDataDoorPulseTime.go    |  2 +-
 .../model/BACnetConstructedDataDoorStatus.go       |  2 +-
 .../BACnetConstructedDataDoorUnlockDelayTime.go    |  2 +-
 .../model/BACnetConstructedDataDutyWindow.go       |  2 +-
 .../model/BACnetConstructedDataEffectivePeriod.go  |  2 +-
 .../model/BACnetConstructedDataEgressActive.go     |  2 +-
 .../model/BACnetConstructedDataEgressTime.go       |  2 +-
 .../BACnetConstructedDataElapsedActiveTime.go      |  2 +-
 .../model/BACnetConstructedDataElement.go          |  8 +--
 .../model/BACnetConstructedDataElevatorGroup.go    |  2 +-
 ...CnetConstructedDataElevatorGroupGroupMembers.go |  2 +-
 .../readwrite/model/BACnetConstructedDataEnable.go |  2 +-
 .../model/BACnetConstructedDataEnergyMeter.go      |  2 +-
 .../model/BACnetConstructedDataEnergyMeterRef.go   |  2 +-
 .../model/BACnetConstructedDataErrorLimit.go       |  2 +-
 .../model/BACnetConstructedDataEscalatorMode.go    |  2 +-
 .../BACnetConstructedDataEventAlgorithmInhibit.go  |  2 +-
 ...ACnetConstructedDataEventAlgorithmInhibitRef.go |  2 +-
 .../BACnetConstructedDataEventDetectionEnable.go   |  2 +-
 .../model/BACnetConstructedDataEventEnable.go      |  2 +-
 .../BACnetConstructedDataEventMessageTexts.go      |  2 +-
 ...BACnetConstructedDataEventMessageTextsConfig.go |  2 +-
 .../model/BACnetConstructedDataEventParameters.go  |  2 +-
 .../model/BACnetConstructedDataEventState.go       |  2 +-
 .../model/BACnetConstructedDataEventTimeStamps.go  |  2 +-
 .../model/BACnetConstructedDataEventType.go        |  2 +-
 .../BACnetConstructedDataExceptionSchedule.go      |  2 +-
 .../model/BACnetConstructedDataExecutionDelay.go   |  2 +-
 .../BACnetConstructedDataExpectedShedLevel.go      |  2 +-
 .../model/BACnetConstructedDataExpirationTime.go   |  2 +-
 .../BACnetConstructedDataExtendedTimeEnable.go     |  2 +-
 .../model/BACnetConstructedDataFDBBMDAddress.go    |  2 +-
 .../BACnetConstructedDataFDSubscriptionLifetime.go |  2 +-
 .../model/BACnetConstructedDataFailedAttempts.go   |  2 +-
 .../BACnetConstructedDataFailedAttemptsTime.go     |  2 +-
 .../model/BACnetConstructedDataFaultHighLimit.go   |  2 +-
 .../model/BACnetConstructedDataFaultLowLimit.go    |  2 +-
 .../model/BACnetConstructedDataFaultParameters.go  |  2 +-
 .../model/BACnetConstructedDataFaultType.go        |  2 +-
 .../model/BACnetConstructedDataFaultValues.go      |  2 +-
 .../model/BACnetConstructedDataFileAccessMethod.go |  2 +-
 .../model/BACnetConstructedDataFileRecordCount.go  |  2 +-
 .../model/BACnetConstructedDataFileSize.go         |  2 +-
 .../model/BACnetConstructedDataFileType.go         |  2 +-
 .../model/BACnetConstructedDataFirmwareRevision.go |  2 +-
 .../model/BACnetConstructedDataFloorText.go        |  2 +-
 .../model/BACnetConstructedDataFullDutyBaseline.go |  2 +-
 ...BACnetConstructedDataGlobalGroupGroupMembers.go |  2 +-
 ...BACnetConstructedDataGlobalGroupPresentValue.go |  2 +-
 .../model/BACnetConstructedDataGlobalIdentifier.go |  2 +-
 .../model/BACnetConstructedDataGroupID.go          |  2 +-
 .../model/BACnetConstructedDataGroupMemberNames.go |  2 +-
 .../model/BACnetConstructedDataGroupMembers.go     |  2 +-
 .../model/BACnetConstructedDataGroupMode.go        |  2 +-
 .../model/BACnetConstructedDataHighLimit.go        |  2 +-
 .../model/BACnetConstructedDataHigherDeck.go       |  2 +-
 .../model/BACnetConstructedDataIPAddress.go        |  2 +-
 .../model/BACnetConstructedDataIPDHCPEnable.go     |  2 +-
 .../model/BACnetConstructedDataIPDHCPLeaseTime.go  |  2 +-
 ...ACnetConstructedDataIPDHCPLeaseTimeRemaining.go |  2 +-
 .../model/BACnetConstructedDataIPDHCPServer.go     |  2 +-
 .../model/BACnetConstructedDataIPDNSServer.go      |  2 +-
 .../model/BACnetConstructedDataIPDefaultGateway.go |  2 +-
 .../model/BACnetConstructedDataIPSubnetMask.go     |  2 +-
 .../model/BACnetConstructedDataIPv6Address.go      |  2 +-
 ...ACnetConstructedDataIPv6AutoAddressingEnable.go |  2 +-
 .../BACnetConstructedDataIPv6DHCPLeaseTime.go      |  2 +-
 ...netConstructedDataIPv6DHCPLeaseTimeRemaining.go |  2 +-
 .../model/BACnetConstructedDataIPv6DHCPServer.go   |  2 +-
 .../model/BACnetConstructedDataIPv6DNSServer.go    |  2 +-
 .../BACnetConstructedDataIPv6DefaultGateway.go     |  2 +-
 .../model/BACnetConstructedDataIPv6PrefixLength.go |  2 +-
 .../model/BACnetConstructedDataIPv6ZoneIndex.go    |  2 +-
 .../model/BACnetConstructedDataInProcess.go        |  2 +-
 .../model/BACnetConstructedDataInProgress.go       |  2 +-
 .../model/BACnetConstructedDataInactiveText.go     |  2 +-
 .../model/BACnetConstructedDataInitialTimeout.go   |  2 +-
 .../model/BACnetConstructedDataInputReference.go   |  2 +-
 .../model/BACnetConstructedDataInstallationID.go   |  2 +-
 .../model/BACnetConstructedDataInstanceOf.go       |  2 +-
 .../BACnetConstructedDataInstantaneousPower.go     |  2 +-
 ...ACnetConstructedDataIntegerValueCOVIncrement.go |  2 +-
 .../BACnetConstructedDataIntegerValueDeadband.go   |  2 +-
 ...netConstructedDataIntegerValueFaultHighLimit.go |  2 +-
 ...CnetConstructedDataIntegerValueFaultLowLimit.go |  2 +-
 .../BACnetConstructedDataIntegerValueHighLimit.go  |  2 +-
 .../BACnetConstructedDataIntegerValueLowLimit.go   |  2 +-
 ...ACnetConstructedDataIntegerValueMaxPresValue.go |  2 +-
 ...ACnetConstructedDataIntegerValueMinPresValue.go |  2 +-
 ...ACnetConstructedDataIntegerValuePresentValue.go |  2 +-
 ...ConstructedDataIntegerValueRelinquishDefault.go |  2 +-
 .../BACnetConstructedDataIntegerValueResolution.go |  2 +-
 .../model/BACnetConstructedDataIntegralConstant.go |  2 +-
 .../BACnetConstructedDataIntegralConstantUnits.go  |  2 +-
 .../model/BACnetConstructedDataIntervalOffset.go   |  2 +-
 .../readwrite/model/BACnetConstructedDataIsUTC.go  |  2 +-
 .../model/BACnetConstructedDataKeySets.go          |  2 +-
 .../BACnetConstructedDataLandingCallControl.go     |  2 +-
 .../BACnetConstructedDataLandingDoorStatus.go      |  2 +-
 ...tConstructedDataLargeAnalogValueCOVIncrement.go |  2 +-
 ...ACnetConstructedDataLargeAnalogValueDeadband.go |  2 +-
 ...onstructedDataLargeAnalogValueFaultHighLimit.go |  2 +-
 ...ConstructedDataLargeAnalogValueFaultLowLimit.go |  2 +-
 ...CnetConstructedDataLargeAnalogValueHighLimit.go |  2 +-
 ...ACnetConstructedDataLargeAnalogValueLowLimit.go |  2 +-
 ...tConstructedDataLargeAnalogValueMaxPresValue.go |  2 +-
 ...tConstructedDataLargeAnalogValueMinPresValue.go |  2 +-
 ...tConstructedDataLargeAnalogValuePresentValue.go |  2 +-
 ...tructedDataLargeAnalogValueRelinquishDefault.go |  2 +-
 ...netConstructedDataLargeAnalogValueResolution.go |  2 +-
 .../model/BACnetConstructedDataLastAccessEvent.go  |  2 +-
 .../model/BACnetConstructedDataLastAccessPoint.go  |  2 +-
 .../model/BACnetConstructedDataLastCommandTime.go  |  2 +-
 .../BACnetConstructedDataLastCredentialAdded.go    |  2 +-
 ...BACnetConstructedDataLastCredentialAddedTime.go |  2 +-
 .../BACnetConstructedDataLastCredentialRemoved.go  |  2 +-
 ...CnetConstructedDataLastCredentialRemovedTime.go |  2 +-
 .../model/BACnetConstructedDataLastKeyServer.go    |  2 +-
 .../model/BACnetConstructedDataLastNotifyRecord.go |  2 +-
 .../model/BACnetConstructedDataLastPriority.go     |  2 +-
 .../BACnetConstructedDataLastRestartReason.go      |  2 +-
 .../model/BACnetConstructedDataLastRestoreTime.go  |  2 +-
 .../model/BACnetConstructedDataLastStateChange.go  |  2 +-
 .../model/BACnetConstructedDataLastUseTime.go      |  2 +-
 ...etConstructedDataLifeSafetyPointPresentValue.go |  2 +-
 ...tructedDataLifeSafetyZoneMaintenanceRequired.go |  2 +-
 ...netConstructedDataLifeSafetyZonePresentValue.go |  2 +-
 .../model/BACnetConstructedDataLightingCommand.go  |  2 +-
 ...onstructedDataLightingCommandDefaultPriority.go |  2 +-
 ...etConstructedDataLightingOutputFeedbackValue.go |  2 +-
 ...netConstructedDataLightingOutputPresentValue.go |  2 +-
 ...nstructedDataLightingOutputRelinquishDefault.go |  2 +-
 ...etConstructedDataLightingOutputTrackingValue.go |  2 +-
 .../model/BACnetConstructedDataLimitEnable.go      |  2 +-
 ...BACnetConstructedDataLimitMonitoringInterval.go |  2 +-
 .../model/BACnetConstructedDataLinkSpeed.go        |  2 +-
 .../BACnetConstructedDataLinkSpeedAutonegotiate.go |  2 +-
 .../model/BACnetConstructedDataLinkSpeeds.go       |  2 +-
 ...BACnetConstructedDataLoadControlPresentValue.go |  2 +-
 .../model/BACnetConstructedDataLocalDate.go        |  2 +-
 .../BACnetConstructedDataLocalForwardingOnly.go    |  2 +-
 .../model/BACnetConstructedDataLocalTime.go        |  2 +-
 .../model/BACnetConstructedDataLocation.go         |  2 +-
 .../model/BACnetConstructedDataLockStatus.go       |  2 +-
 .../model/BACnetConstructedDataLockout.go          |  2 +-
 .../BACnetConstructedDataLockoutRelinquishTime.go  |  2 +-
 .../model/BACnetConstructedDataLogBuffer.go        |  2 +-
 ...BACnetConstructedDataLogDeviceObjectProperty.go |  2 +-
 .../model/BACnetConstructedDataLogInterval.go      |  2 +-
 .../model/BACnetConstructedDataLoggingObject.go    |  2 +-
 .../model/BACnetConstructedDataLoggingRecord.go    |  2 +-
 .../model/BACnetConstructedDataLoggingType.go      |  2 +-
 .../model/BACnetConstructedDataLoopAction.go       |  2 +-
 .../model/BACnetConstructedDataLoopPresentValue.go |  2 +-
 .../model/BACnetConstructedDataLowDiffLimit.go     |  2 +-
 .../model/BACnetConstructedDataLowLimit.go         |  2 +-
 .../model/BACnetConstructedDataLowerDeck.go        |  2 +-
 .../model/BACnetConstructedDataMACAddress.go       |  2 +-
 .../model/BACnetConstructedDataMachineRoomID.go    |  2 +-
 .../BACnetConstructedDataMaintenanceRequired.go    |  2 +-
 .../model/BACnetConstructedDataMakingCarCall.go    |  2 +-
 ...tConstructedDataManipulatedVariableReference.go |  2 +-
 .../BACnetConstructedDataMaxAPDULengthAccepted.go  |  2 +-
 .../model/BACnetConstructedDataMaxActualValue.go   |  2 +-
 .../BACnetConstructedDataMaxFailedAttempts.go      |  2 +-
 .../model/BACnetConstructedDataMaxInfoFrames.go    |  2 +-
 .../model/BACnetConstructedDataMaxMaster.go        |  2 +-
 .../model/BACnetConstructedDataMaxPresValue.go     |  2 +-
 .../BACnetConstructedDataMaxSegmentsAccepted.go    |  2 +-
 .../model/BACnetConstructedDataMaximumOutput.go    |  2 +-
 .../model/BACnetConstructedDataMaximumValue.go     |  2 +-
 .../BACnetConstructedDataMaximumValueTimestamp.go  |  2 +-
 .../BACnetConstructedDataMemberStatusFlags.go      |  2 +-
 .../model/BACnetConstructedDataMinActualValue.go   |  2 +-
 .../model/BACnetConstructedDataMinPresValue.go     |  2 +-
 .../model/BACnetConstructedDataMinimumOffTime.go   |  2 +-
 .../model/BACnetConstructedDataMinimumOnTime.go    |  2 +-
 .../model/BACnetConstructedDataMinimumOutput.go    |  2 +-
 .../model/BACnetConstructedDataMinimumValue.go     |  2 +-
 .../BACnetConstructedDataMinimumValueTimestamp.go  |  2 +-
 .../readwrite/model/BACnetConstructedDataMode.go   |  2 +-
 .../model/BACnetConstructedDataModelName.go        |  2 +-
 .../model/BACnetConstructedDataModificationDate.go |  2 +-
 ...ConstructedDataMultiStateInputInterfaceValue.go |  2 +-
 ...ConstructedDataMultiStateOutputFeedbackValue.go |  2 +-
 ...onstructedDataMultiStateOutputInterfaceValue.go |  2 +-
 ...tructedDataMultiStateOutputRelinquishDefault.go |  2 +-
 ...structedDataMultiStateValueRelinquishDefault.go |  2 +-
 .../model/BACnetConstructedDataMusterPoint.go      |  2 +-
 .../BACnetConstructedDataNegativeAccessRules.go    |  2 +-
 ...ConstructedDataNetworkAccessSecurityPolicies.go |  2 +-
 .../BACnetConstructedDataNetworkInterfaceName.go   |  2 +-
 .../model/BACnetConstructedDataNetworkNumber.go    |  2 +-
 .../BACnetConstructedDataNetworkNumberQuality.go   |  2 +-
 ...ACnetConstructedDataNetworkPortMaxInfoFrames.go |  2 +-
 .../BACnetConstructedDataNetworkPortMaxMaster.go   |  2 +-
 .../model/BACnetConstructedDataNetworkType.go      |  2 +-
 .../BACnetConstructedDataNextStoppingFloor.go      |  2 +-
 .../model/BACnetConstructedDataNodeSubtype.go      |  2 +-
 .../model/BACnetConstructedDataNodeType.go         |  2 +-
 .../BACnetConstructedDataNotificationClass.go      |  2 +-
 .../BACnetConstructedDataNotificationThreshold.go  |  2 +-
 .../model/BACnetConstructedDataNotifyType.go       |  2 +-
 .../BACnetConstructedDataNumberOfAPDURetries.go    |  2 +-
 ...onstructedDataNumberOfAuthenticationPolicies.go |  2 +-
 .../model/BACnetConstructedDataNumberOfStates.go   |  2 +-
 .../model/BACnetConstructedDataObjectIdentifier.go |  2 +-
 .../model/BACnetConstructedDataObjectList.go       |  2 +-
 .../model/BACnetConstructedDataObjectName.go       |  2 +-
 ...BACnetConstructedDataObjectPropertyReference.go |  2 +-
 .../model/BACnetConstructedDataObjectType.go       |  2 +-
 .../model/BACnetConstructedDataOccupancyCount.go   |  2 +-
 .../BACnetConstructedDataOccupancyCountAdjust.go   |  2 +-
 .../BACnetConstructedDataOccupancyCountEnable.go   |  2 +-
 .../BACnetConstructedDataOccupancyLowerLimit.go    |  2 +-
 ...etConstructedDataOccupancyLowerLimitEnforced.go |  2 +-
 .../model/BACnetConstructedDataOccupancyState.go   |  2 +-
 .../BACnetConstructedDataOccupancyUpperLimit.go    |  2 +-
 ...etConstructedDataOccupancyUpperLimitEnforced.go |  2 +-
 ...tConstructedDataOctetStringValuePresentValue.go |  2 +-
 ...tructedDataOctetStringValueRelinquishDefault.go |  2 +-
 .../BACnetConstructedDataOperationDirection.go     |  2 +-
 .../BACnetConstructedDataOperationExpected.go      |  2 +-
 .../model/BACnetConstructedDataOutOfService.go     |  2 +-
 .../model/BACnetConstructedDataOutputUnits.go      |  2 +-
 .../BACnetConstructedDataPacketReorderTime.go      |  2 +-
 .../model/BACnetConstructedDataPassbackMode.go     |  2 +-
 .../model/BACnetConstructedDataPassbackTimeout.go  |  2 +-
 .../model/BACnetConstructedDataPassengerAlarm.go   |  2 +-
 .../model/BACnetConstructedDataPolarity.go         |  2 +-
 .../model/BACnetConstructedDataPortFilter.go       |  2 +-
 .../BACnetConstructedDataPositiveAccessRules.go    |  2 +-
 ...structedDataPositiveIntegerValueCOVIncrement.go |  2 +-
 ...tConstructedDataPositiveIntegerValueDeadband.go |  2 +-
 ...ructedDataPositiveIntegerValueFaultHighLimit.go |  2 +-
 ...tructedDataPositiveIntegerValueFaultLowLimit.go |  2 +-
 ...ConstructedDataPositiveIntegerValueHighLimit.go |  2 +-
 ...tConstructedDataPositiveIntegerValueLowLimit.go |  2 +-
 ...structedDataPositiveIntegerValueMaxPresValue.go |  2 +-
 ...structedDataPositiveIntegerValueMinPresValue.go |  2 +-
 ...tedDataPositiveIntegerValueRelinquishDefault.go |  2 +-
 ...onstructedDataPositiveIntegerValueResolution.go |  2 +-
 .../readwrite/model/BACnetConstructedDataPower.go  |  2 +-
 .../model/BACnetConstructedDataPowerMode.go        |  2 +-
 .../model/BACnetConstructedDataPrescale.go         |  2 +-
 .../model/BACnetConstructedDataPresentValue.go     |  2 +-
 .../model/BACnetConstructedDataPriority.go         |  2 +-
 .../model/BACnetConstructedDataPriorityArray.go    |  2 +-
 .../BACnetConstructedDataPriorityForWriting.go     |  2 +-
 .../BACnetConstructedDataProcessIdentifier.go      |  2 +-
 ...BACnetConstructedDataProcessIdentifierFilter.go |  2 +-
 .../model/BACnetConstructedDataProfileLocation.go  |  2 +-
 .../model/BACnetConstructedDataProfileName.go      |  2 +-
 .../model/BACnetConstructedDataProgramChange.go    |  2 +-
 .../model/BACnetConstructedDataProgramLocation.go  |  2 +-
 .../model/BACnetConstructedDataProgramState.go     |  2 +-
 .../model/BACnetConstructedDataPropertyList.go     |  2 +-
 .../BACnetConstructedDataProportionalConstant.go   |  2 +-
 ...CnetConstructedDataProportionalConstantUnits.go |  2 +-
 .../model/BACnetConstructedDataProtocolLevel.go    |  2 +-
 ...tConstructedDataProtocolObjectTypesSupported.go |  2 +-
 .../model/BACnetConstructedDataProtocolRevision.go |  2 +-
 ...CnetConstructedDataProtocolServicesSupported.go |  2 +-
 .../model/BACnetConstructedDataProtocolVersion.go  |  2 +-
 ...CnetConstructedDataPulseConverterAdjustValue.go |  2 +-
 ...netConstructedDataPulseConverterPresentValue.go |  2 +-
 .../model/BACnetConstructedDataPulseRate.go        |  2 +-
 .../model/BACnetConstructedDataReadOnly.go         |  2 +-
 .../model/BACnetConstructedDataReasonForHalt.go    |  2 +-
 .../model/BACnetConstructedDataRecordCount.go      |  2 +-
 ...ACnetConstructedDataRecordsSinceNotification.go |  2 +-
 .../model/BACnetConstructedDataReferencePort.go    |  2 +-
 .../BACnetConstructedDataRegisteredCarCall.go      |  2 +-
 .../model/BACnetConstructedDataReliability.go      |  2 +-
 ...tConstructedDataReliabilityEvaluationInhibit.go |  2 +-
 .../BACnetConstructedDataRelinquishDefault.go      |  2 +-
 .../model/BACnetConstructedDataRepresents.go       |  2 +-
 .../BACnetConstructedDataRequestedShedLevel.go     |  2 +-
 ...BACnetConstructedDataRequestedUpdateInterval.go |  2 +-
 .../model/BACnetConstructedDataResolution.go       |  2 +-
 .../BACnetConstructedDataRestoreCompletionTime.go  |  2 +-
 .../BACnetConstructedDataRestorePreparationTime.go |  2 +-
 .../readwrite/model/BACnetConstructedDataScale.go  |  2 +-
 .../model/BACnetConstructedDataScaleFactor.go      |  2 +-
 .../model/BACnetConstructedDataScheduleDefault.go  |  2 +-
 .../BACnetConstructedDataSchedulePresentValue.go   |  2 +-
 .../model/BACnetConstructedDataSecuredStatus.go    |  2 +-
 .../BACnetConstructedDataSecurityPDUTimeout.go     |  2 +-
 .../BACnetConstructedDataSecurityTimeWindow.go     |  2 +-
 .../BACnetConstructedDataSegmentationSupported.go  |  2 +-
 .../model/BACnetConstructedDataSerialNumber.go     |  2 +-
 .../model/BACnetConstructedDataSetpoint.go         |  2 +-
 .../BACnetConstructedDataSetpointReference.go      |  2 +-
 .../model/BACnetConstructedDataSetting.go          |  2 +-
 .../model/BACnetConstructedDataShedDuration.go     |  2 +-
 .../BACnetConstructedDataShedLevelDescriptions.go  |  2 +-
 .../model/BACnetConstructedDataShedLevels.go       |  2 +-
 .../model/BACnetConstructedDataSilenced.go         |  2 +-
 .../model/BACnetConstructedDataSlaveProxyEnable.go |  2 +-
 .../model/BACnetConstructedDataStartTime.go        |  2 +-
 .../BACnetConstructedDataStateChangeValues.go      |  2 +-
 .../model/BACnetConstructedDataStateDescription.go |  2 +-
 .../model/BACnetConstructedDataStateText.go        |  2 +-
 .../model/BACnetConstructedDataStatusFlags.go      |  2 +-
 .../model/BACnetConstructedDataStopTime.go         |  2 +-
 .../model/BACnetConstructedDataStopWhenFull.go     |  2 +-
 .../model/BACnetConstructedDataStrikeCount.go      |  2 +-
 .../BACnetConstructedDataStructuredObjectList.go   |  2 +-
 .../BACnetConstructedDataSubordinateAnnotations.go |  2 +-
 .../model/BACnetConstructedDataSubordinateList.go  |  2 +-
 .../BACnetConstructedDataSubordinateNodeTypes.go   |  2 +-
 ...ACnetConstructedDataSubordinateRelationships.go |  2 +-
 .../model/BACnetConstructedDataSubordinateTags.go  |  2 +-
 .../BACnetConstructedDataSupportedFormatClasses.go |  2 +-
 .../model/BACnetConstructedDataSupportedFormats.go |  2 +-
 .../model/BACnetConstructedDataSystemStatus.go     |  2 +-
 .../readwrite/model/BACnetConstructedDataTags.go   |  2 +-
 .../model/BACnetConstructedDataThreatAuthority.go  |  2 +-
 .../model/BACnetConstructedDataThreatLevel.go      |  2 +-
 .../model/BACnetConstructedDataTimeDelay.go        |  2 +-
 .../model/BACnetConstructedDataTimeDelayNormal.go  |  2 +-
 .../BACnetConstructedDataTimeOfActiveTimeReset.go  |  2 +-
 .../BACnetConstructedDataTimeOfDeviceRestart.go    |  2 +-
 .../BACnetConstructedDataTimeOfStateCountReset.go  |  2 +-
 .../BACnetConstructedDataTimeOfStrikeCountReset.go |  2 +-
 ...tConstructedDataTimePatternValuePresentValue.go |  2 +-
 ...tructedDataTimePatternValueRelinquishDefault.go |  2 +-
 ...etConstructedDataTimeSynchronizationInterval.go |  2 +-
 .../BACnetConstructedDataTimeValuePresentValue.go  |  2 +-
 ...netConstructedDataTimeValueRelinquishDefault.go |  2 +-
 .../BACnetConstructedDataTimerMaxPresValue.go      |  2 +-
 .../BACnetConstructedDataTimerMinPresValue.go      |  2 +-
 .../model/BACnetConstructedDataTimerResolution.go  |  2 +-
 .../model/BACnetConstructedDataTimerRunning.go     |  2 +-
 .../model/BACnetConstructedDataTimerState.go       |  2 +-
 .../model/BACnetConstructedDataTotalRecordCount.go |  2 +-
 .../model/BACnetConstructedDataTraceFlag.go        |  2 +-
 .../model/BACnetConstructedDataTrackingValue.go    |  2 +-
 ...tConstructedDataTransactionNotificationClass.go |  2 +-
 .../model/BACnetConstructedDataTransition.go       |  2 +-
 ...nstructedDataTrendLogLogDeviceObjectProperty.go |  2 +-
 ...dDataTrendLogMultipleLogDeviceObjectProperty.go |  2 +-
 .../model/BACnetConstructedDataTrigger.go          |  2 +-
 .../model/BACnetConstructedDataUTCOffset.go        |  2 +-
 .../readwrite/model/BACnetConstructedDataUnits.go  |  2 +-
 .../model/BACnetConstructedDataUnspecified.go      |  2 +-
 .../model/BACnetConstructedDataUpdateInterval.go   |  2 +-
 .../BACnetConstructedDataUpdateKeySetTimeout.go    |  2 +-
 .../model/BACnetConstructedDataUpdateTime.go       |  2 +-
 .../BACnetConstructedDataUserExternalIdentifier.go |  2 +-
 ...ACnetConstructedDataUserInformationReference.go |  2 +-
 .../model/BACnetConstructedDataUserName.go         |  2 +-
 .../model/BACnetConstructedDataUserType.go         |  2 +-
 .../model/BACnetConstructedDataUsesRemaining.go    |  2 +-
 .../model/BACnetConstructedDataValidSamples.go     |  2 +-
 .../BACnetConstructedDataValueBeforeChange.go      |  2 +-
 .../model/BACnetConstructedDataValueChangeTime.go  |  2 +-
 .../model/BACnetConstructedDataValueSet.go         |  2 +-
 .../model/BACnetConstructedDataValueSource.go      |  2 +-
 .../model/BACnetConstructedDataValueSourceArray.go |  2 +-
 .../model/BACnetConstructedDataVarianceValue.go    |  2 +-
 .../model/BACnetConstructedDataVendorIdentifier.go |  2 +-
 .../model/BACnetConstructedDataVendorName.go       |  2 +-
 .../model/BACnetConstructedDataVerificationTime.go |  2 +-
 .../model/BACnetConstructedDataWeeklySchedule.go   |  2 +-
 .../model/BACnetConstructedDataWindowInterval.go   |  2 +-
 .../model/BACnetConstructedDataWindowSamples.go    |  2 +-
 .../model/BACnetConstructedDataWriteStatus.go      |  2 +-
 .../model/BACnetConstructedDataZoneFrom.go         |  2 +-
 .../readwrite/model/BACnetConstructedDataZoneTo.go |  2 +-
 .../bacnetip/readwrite/model/BACnetContextTag.go   |  2 +-
 .../readwrite/model/BACnetContextTagBitString.go   |  2 +-
 .../readwrite/model/BACnetContextTagBoolean.go     |  2 +-
 .../model/BACnetContextTagCharacterString.go       |  2 +-
 .../readwrite/model/BACnetContextTagDate.go        |  2 +-
 .../readwrite/model/BACnetContextTagDouble.go      |  2 +-
 .../readwrite/model/BACnetContextTagEnumerated.go  |  2 +-
 .../model/BACnetContextTagObjectIdentifier.go      |  2 +-
 .../readwrite/model/BACnetContextTagOctetString.go |  2 +-
 .../readwrite/model/BACnetContextTagReal.go        |  2 +-
 .../model/BACnetContextTagSignedInteger.go         |  2 +-
 .../readwrite/model/BACnetContextTagTime.go        |  2 +-
 .../model/BACnetContextTagUnsignedInteger.go       |  2 +-
 .../model/BACnetCredentialAuthenticationFactor.go  |  4 +-
 .../readwrite/model/BACnetDailySchedule.go         |  4 +-
 .../bacnetip/readwrite/model/BACnetDateRange.go    |  4 +-
 .../readwrite/model/BACnetDateRangeEnclosed.go     |  6 +-
 .../bacnetip/readwrite/model/BACnetDateTime.go     |  4 +-
 .../readwrite/model/BACnetDateTimeEnclosed.go      |  6 +-
 .../readwrite/model/BACnetDaysOfWeekTagged.go      |  4 +-
 .../bacnetip/readwrite/model/BACnetDestination.go  | 14 ++---
 .../model/BACnetDeviceObjectPropertyReference.go   |  8 +--
 .../BACnetDeviceObjectPropertyReferenceEnclosed.go |  6 +-
 .../readwrite/model/BACnetDeviceObjectReference.go |  4 +-
 .../model/BACnetDeviceObjectReferenceEnclosed.go   |  6 +-
 .../readwrite/model/BACnetDeviceStatusTagged.go    |  2 +-
 .../readwrite/model/BACnetDoorAlarmStateTagged.go  |  2 +-
 .../model/BACnetDoorSecuredStatusTagged.go         |  2 +-
 .../readwrite/model/BACnetDoorStatusTagged.go      |  2 +-
 .../readwrite/model/BACnetDoorValueTagged.go       |  2 +-
 .../model/BACnetEngineeringUnitsTagged.go          |  2 +-
 .../bacnetip/readwrite/model/BACnetErrorGeneral.go |  2 +-
 .../readwrite/model/BACnetEscalatorFaultTagged.go  |  2 +-
 .../readwrite/model/BACnetEscalatorModeTagged.go   |  2 +-
 .../BACnetEscalatorOperationDirectionTagged.go     |  2 +-
 .../readwrite/model/BACnetEventLogRecord.go        |  4 +-
 .../model/BACnetEventLogRecordLogDatum.go          |  6 +-
 .../model/BACnetEventLogRecordLogDatumLogStatus.go |  2 +-
 .../BACnetEventLogRecordLogDatumNotification.go    |  6 +-
 .../BACnetEventLogRecordLogDatumTimeChange.go      |  2 +-
 .../model/BACnetEventNotificationSubscription.go   |  8 +--
 .../readwrite/model/BACnetEventParameter.go        |  2 +-
 .../model/BACnetEventParameterAccessEvent.go       |  8 +--
 ...tEventParameterAccessEventListOfAccessEvents.go |  4 +-
 .../model/BACnetEventParameterBufferReady.go       |  8 +--
 .../model/BACnetEventParameterChangeOfBitstring.go | 10 ++--
 ...ameterChangeOfBitstringListOfBitstringValues.go |  4 +-
 .../BACnetEventParameterChangeOfCharacterString.go |  8 +--
 ...eterChangeOfCharacterStringListOfAlarmValues.go |  4 +-
 .../BACnetEventParameterChangeOfDiscreteValue.go   |  6 +-
 .../BACnetEventParameterChangeOfLifeSavety.go      | 12 ++--
 ...ParameterChangeOfLifeSavetyListOfAlarmValues.go |  4 +-
 ...hangeOfLifeSavetyListOfLifeSavetyAlarmValues.go |  4 +-
 .../model/BACnetEventParameterChangeOfState.go     |  8 +--
 ...ACnetEventParameterChangeOfStateListOfValues.go |  4 +-
 .../BACnetEventParameterChangeOfStatusFlags.go     |  8 +--
 .../model/BACnetEventParameterChangeOfTimer.go     | 10 ++--
 .../BACnetEventParameterChangeOfTimerAlarmValue.go |  4 +-
 .../model/BACnetEventParameterChangeOfValue.go     |  8 +--
 ...BACnetEventParameterChangeOfValueCivCriteria.go |  6 +-
 ...ventParameterChangeOfValueCivCriteriaBitmask.go |  2 +-
 ...fValueCivCriteriaReferencedPropertyIncrement.go |  2 +-
 .../model/BACnetEventParameterCommandFailure.go    |  8 +--
 .../model/BACnetEventParameterDoubleOutOfRange.go  | 12 ++--
 .../model/BACnetEventParameterExtended.go          | 10 ++--
 .../BACnetEventParameterExtendedParameters.go      | 34 +++++------
 .../model/BACnetEventParameterFloatingLimit.go     | 14 ++---
 .../readwrite/model/BACnetEventParameterNone.go    |  2 +-
 .../model/BACnetEventParameterOutOfRange.go        | 12 ++--
 .../model/BACnetEventParameterSignedOutOfRange.go  | 12 ++--
 .../BACnetEventParameterUnsignedOutOfRange.go      | 12 ++--
 .../model/BACnetEventParameterUnsignedRange.go     | 10 ++--
 .../readwrite/model/BACnetEventPriorities.go       | 10 ++--
 .../readwrite/model/BACnetEventStateTagged.go      |  2 +-
 .../readwrite/model/BACnetEventSummariesList.go    |  4 +-
 .../bacnetip/readwrite/model/BACnetEventSummary.go | 14 ++---
 .../readwrite/model/BACnetEventTimestamps.go       |  6 +-
 .../model/BACnetEventTimestampsEnclosed.go         |  6 +-
 .../model/BACnetEventTransitionBitsTagged.go       |  4 +-
 .../readwrite/model/BACnetEventTypeTagged.go       |  2 +-
 .../readwrite/model/BACnetFaultParameter.go        |  2 +-
 .../BACnetFaultParameterFaultCharacterString.go    |  6 +-
 ...rameterFaultCharacterStringListOfFaultValues.go |  4 +-
 .../model/BACnetFaultParameterFaultExtended.go     | 10 ++--
 .../BACnetFaultParameterFaultExtendedParameters.go |  4 +-
 ...etFaultParameterFaultExtendedParametersEntry.go |  2 +-
 ...rameterFaultExtendedParametersEntryBitString.go |  2 +-
 ...ParameterFaultExtendedParametersEntryBoolean.go |  2 +-
 ...rFaultExtendedParametersEntryCharacterString.go |  2 +-
 ...ultParameterFaultExtendedParametersEntryDate.go |  2 +-
 ...tParameterFaultExtendedParametersEntryDouble.go |  2 +-
 ...ameterFaultExtendedParametersEntryEnumerated.go |  2 +-
 ...ParameterFaultExtendedParametersEntryInteger.go |  2 +-
 ...ultParameterFaultExtendedParametersEntryNull.go |  2 +-
 ...FaultExtendedParametersEntryObjectidentifier.go |  2 +-
 ...meterFaultExtendedParametersEntryOctetString.go |  2 +-
 ...ultParameterFaultExtendedParametersEntryReal.go |  2 +-
 ...rameterFaultExtendedParametersEntryReference.go |  2 +-
 ...ultParameterFaultExtendedParametersEntryTime.go |  2 +-
 ...arameterFaultExtendedParametersEntryUnsigned.go |  2 +-
 .../model/BACnetFaultParameterFaultLifeSafety.go   |  8 +--
 ...ultParameterFaultLifeSafetyListOfFaultValues.go |  4 +-
 .../model/BACnetFaultParameterFaultListed.go       |  6 +-
 .../model/BACnetFaultParameterFaultOutOfRange.go   |  8 +--
 ...tFaultParameterFaultOutOfRangeMaxNormalValue.go |  6 +-
 ...ParameterFaultOutOfRangeMaxNormalValueDouble.go |  2 +-
 ...arameterFaultOutOfRangeMaxNormalValueInteger.go |  2 +-
 ...ltParameterFaultOutOfRangeMaxNormalValueReal.go |  2 +-
 ...rameterFaultOutOfRangeMaxNormalValueUnsigned.go |  2 +-
 ...tFaultParameterFaultOutOfRangeMinNormalValue.go |  6 +-
 ...ParameterFaultOutOfRangeMinNormalValueDouble.go |  2 +-
 ...arameterFaultOutOfRangeMinNormalValueInteger.go |  2 +-
 ...ltParameterFaultOutOfRangeMinNormalValueReal.go |  2 +-
 ...rameterFaultOutOfRangeMinNormalValueUnsigned.go |  2 +-
 .../model/BACnetFaultParameterFaultState.go        |  6 +-
 ...netFaultParameterFaultStateListOfFaultValues.go |  4 +-
 .../model/BACnetFaultParameterFaultStatusFlags.go  |  6 +-
 .../readwrite/model/BACnetFaultParameterNone.go    |  2 +-
 .../readwrite/model/BACnetFaultTypeTagged.go       |  2 +-
 .../model/BACnetFileAccessMethodTagged.go          |  2 +-
 .../readwrite/model/BACnetGroupChannelValue.go     |  6 +-
 .../readwrite/model/BACnetGroupChannelValueList.go |  4 +-
 .../bacnetip/readwrite/model/BACnetHostAddress.go  |  2 +-
 .../readwrite/model/BACnetHostAddressEnclosed.go   |  6 +-
 .../readwrite/model/BACnetHostAddressIpAddress.go  |  2 +-
 .../readwrite/model/BACnetHostAddressName.go       |  2 +-
 .../readwrite/model/BACnetHostAddressNull.go       |  2 +-
 .../bacnetip/readwrite/model/BACnetHostNPort.go    |  4 +-
 .../readwrite/model/BACnetHostNPortEnclosed.go     |  6 +-
 .../bacnetip/readwrite/model/BACnetIPModeTagged.go |  2 +-
 .../readwrite/model/BACnetKeyIdentifier.go         |  4 +-
 .../readwrite/model/BACnetLandingCallStatus.go     |  6 +-
 .../model/BACnetLandingCallStatusCommand.go        |  2 +-
 .../BACnetLandingCallStatusCommandDestination.go   |  2 +-
 .../BACnetLandingCallStatusCommandDirection.go     |  2 +-
 .../readwrite/model/BACnetLandingDoorStatus.go     |  2 +-
 .../BACnetLandingDoorStatusLandingDoorsList.go     |  4 +-
 ...BACnetLandingDoorStatusLandingDoorsListEntry.go |  4 +-
 .../readwrite/model/BACnetLifeSafetyModeTagged.go  |  2 +-
 .../model/BACnetLifeSafetyOperationTagged.go       |  2 +-
 .../readwrite/model/BACnetLifeSafetyStateTagged.go |  2 +-
 .../readwrite/model/BACnetLiftCarCallList.go       |  2 +-
 .../model/BACnetLiftCarCallListFloorList.go        |  4 +-
 .../model/BACnetLiftCarDirectionTagged.go          |  2 +-
 .../model/BACnetLiftCarDoorCommandTagged.go        |  2 +-
 .../model/BACnetLiftCarDriveStatusTagged.go        |  2 +-
 .../readwrite/model/BACnetLiftCarModeTagged.go     |  2 +-
 .../readwrite/model/BACnetLiftFaultTagged.go       |  2 +-
 .../readwrite/model/BACnetLiftGroupModeTagged.go   |  2 +-
 .../readwrite/model/BACnetLightingCommand.go       | 12 ++--
 .../model/BACnetLightingCommandEnclosed.go         |  6 +-
 .../model/BACnetLightingInProgressTagged.go        |  2 +-
 .../model/BACnetLightingOperationTagged.go         |  2 +-
 .../model/BACnetLightingTransitionTagged.go        |  2 +-
 .../readwrite/model/BACnetLimitEnableTagged.go     |  4 +-
 .../readwrite/model/BACnetLockStatusTagged.go      |  2 +-
 .../bacnetip/readwrite/model/BACnetLogData.go      |  6 +-
 .../readwrite/model/BACnetLogDataLogData.go        |  4 +-
 .../readwrite/model/BACnetLogDataLogDataEntry.go   |  2 +-
 .../model/BACnetLogDataLogDataEntryAnyValue.go     |  2 +-
 .../BACnetLogDataLogDataEntryBitStringValue.go     |  2 +-
 .../model/BACnetLogDataLogDataEntryBooleanValue.go |  2 +-
 .../BACnetLogDataLogDataEntryEnumeratedValue.go    |  2 +-
 .../model/BACnetLogDataLogDataEntryFailure.go      |  2 +-
 .../model/BACnetLogDataLogDataEntryIntegerValue.go |  2 +-
 .../model/BACnetLogDataLogDataEntryNullValue.go    |  2 +-
 .../model/BACnetLogDataLogDataEntryRealValue.go    |  2 +-
 .../BACnetLogDataLogDataEntryUnsignedValue.go      |  2 +-
 .../model/BACnetLogDataLogDataTimeChange.go        |  2 +-
 .../readwrite/model/BACnetLogDataLogStatus.go      |  2 +-
 .../readwrite/model/BACnetLogMultipleRecord.go     |  4 +-
 .../bacnetip/readwrite/model/BACnetLogRecord.go    |  6 +-
 .../readwrite/model/BACnetLogRecordLogDatum.go     |  6 +-
 .../model/BACnetLogRecordLogDatumAnyValue.go       |  2 +-
 .../model/BACnetLogRecordLogDatumBitStringValue.go |  2 +-
 .../model/BACnetLogRecordLogDatumBooleanValue.go   |  2 +-
 .../BACnetLogRecordLogDatumEnumeratedValue.go      |  2 +-
 .../model/BACnetLogRecordLogDatumFailure.go        |  2 +-
 .../model/BACnetLogRecordLogDatumIntegerValue.go   |  2 +-
 .../model/BACnetLogRecordLogDatumLogStatus.go      |  2 +-
 .../model/BACnetLogRecordLogDatumNullValue.go      |  2 +-
 .../model/BACnetLogRecordLogDatumRealValue.go      |  2 +-
 .../model/BACnetLogRecordLogDatumTimeChange.go     |  2 +-
 .../model/BACnetLogRecordLogDatumUnsignedValue.go  |  2 +-
 .../readwrite/model/BACnetLogStatusTagged.go       |  4 +-
 .../readwrite/model/BACnetLoggingTypeTagged.go     |  2 +-
 .../readwrite/model/BACnetMaintenanceTagged.go     |  2 +-
 .../bacnetip/readwrite/model/BACnetNameValue.go    |  4 +-
 .../readwrite/model/BACnetNameValueCollection.go   |  4 +-
 .../model/BACnetNetworkNumberQualityTagged.go      |  2 +-
 .../model/BACnetNetworkPortCommandTagged.go        |  2 +-
 .../readwrite/model/BACnetNetworkSecurityPolicy.go |  4 +-
 .../readwrite/model/BACnetNetworkTypeTagged.go     |  2 +-
 .../readwrite/model/BACnetNodeTypeTagged.go        |  2 +-
 .../model/BACnetNotificationParameters.go          |  6 +-
 .../BACnetNotificationParametersAccessEvent.go     | 16 ++---
 .../BACnetNotificationParametersBufferReady.go     | 10 ++--
 ...ACnetNotificationParametersChangeOfBitString.go |  8 +--
 ...otificationParametersChangeOfCharacterString.go | 10 ++--
 ...tNotificationParametersChangeOfDiscreteValue.go |  8 +--
 ...ationParametersChangeOfDiscreteValueNewValue.go |  6 +-
 ...rametersChangeOfDiscreteValueNewValueBoolean.go |  2 +-
 ...ChangeOfDiscreteValueNewValueCharacterString.go |  2 +-
 ...ametersChangeOfDiscreteValueNewValueDatetime.go |  2 +-
 ...etersChangeOfDiscreteValueNewValueEnumerated.go |  2 +-
 ...rametersChangeOfDiscreteValueNewValueInteger.go |  2 +-
 ...hangeOfDiscreteValueNewValueObjectidentifier.go |  2 +-
 ...metersChangeOfDiscreteValueNewValueOctetDate.go |  2 +-
 ...tersChangeOfDiscreteValueNewValueOctetString.go |  2 +-
 ...metersChangeOfDiscreteValueNewValueOctetTime.go |  2 +-
 ...ametersChangeOfDiscreteValueNewValueUnsigned.go |  2 +-
 ...CnetNotificationParametersChangeOfLifeSafety.go | 12 ++--
 ...netNotificationParametersChangeOfReliability.go | 10 ++--
 .../BACnetNotificationParametersChangeOfState.go   |  8 +--
 ...netNotificationParametersChangeOfStatusFlags.go |  8 +--
 .../BACnetNotificationParametersChangeOfTimer.go   | 16 ++---
 .../BACnetNotificationParametersChangeOfValue.go   |  8 +--
 ...tNotificationParametersChangeOfValueNewValue.go |  6 +-
 ...onParametersChangeOfValueNewValueChangedBits.go |  2 +-
 ...nParametersChangeOfValueNewValueChangedValue.go |  2 +-
 .../BACnetNotificationParametersCommandFailure.go  | 10 ++--
 ...BACnetNotificationParametersComplexEventType.go |  2 +-
 ...BACnetNotificationParametersDoubleOutOfRange.go | 12 ++--
 .../model/BACnetNotificationParametersExtended.go  | 10 ++--
 ...CnetNotificationParametersExtendedParameters.go | 34 +++++------
 .../BACnetNotificationParametersFloatingLimit.go   | 12 ++--
 .../BACnetNotificationParametersOutOfRange.go      | 12 ++--
 ...BACnetNotificationParametersSignedOutOfRange.go | 12 ++--
 ...CnetNotificationParametersUnsignedOutOfRange.go | 12 ++--
 .../BACnetNotificationParametersUnsignedRange.go   | 10 ++--
 .../readwrite/model/BACnetNotifyTypeTagged.go      |  2 +-
 .../model/BACnetObjectPropertyReference.go         |  6 +-
 .../model/BACnetObjectPropertyReferenceEnclosed.go |  6 +-
 .../readwrite/model/BACnetObjectTypeTagged.go      |  2 +-
 .../model/BACnetObjectTypesSupportedTagged.go      |  4 +-
 .../bacnetip/readwrite/model/BACnetOpeningTag.go   |  2 +-
 .../readwrite/model/BACnetOptionalBinaryPV.go      |  2 +-
 .../readwrite/model/BACnetOptionalBinaryPVNull.go  |  2 +-
 .../readwrite/model/BACnetOptionalBinaryPVValue.go |  2 +-
 .../model/BACnetOptionalCharacterString.go         |  2 +-
 .../model/BACnetOptionalCharacterStringNull.go     |  2 +-
 .../model/BACnetOptionalCharacterStringValue.go    |  2 +-
 .../bacnetip/readwrite/model/BACnetOptionalREAL.go |  2 +-
 .../readwrite/model/BACnetOptionalREALNull.go      |  2 +-
 .../readwrite/model/BACnetOptionalREALValue.go     |  2 +-
 .../readwrite/model/BACnetOptionalUnsigned.go      |  2 +-
 .../readwrite/model/BACnetOptionalUnsignedNull.go  |  2 +-
 .../readwrite/model/BACnetOptionalUnsignedValue.go |  2 +-
 .../readwrite/model/BACnetPolarityTagged.go        |  2 +-
 .../readwrite/model/BACnetPortPermission.go        |  4 +-
 .../bacnetip/readwrite/model/BACnetPrescale.go     |  4 +-
 .../readwrite/model/BACnetPriorityArray.go         |  2 +-
 .../readwrite/model/BACnetPriorityValue.go         |  2 +-
 .../model/BACnetPriorityValueBitString.go          |  2 +-
 .../readwrite/model/BACnetPriorityValueBoolean.go  |  2 +-
 .../model/BACnetPriorityValueCharacterString.go    |  2 +-
 .../model/BACnetPriorityValueConstructedValue.go   |  2 +-
 .../readwrite/model/BACnetPriorityValueDate.go     |  2 +-
 .../readwrite/model/BACnetPriorityValueDateTime.go |  2 +-
 .../readwrite/model/BACnetPriorityValueDouble.go   |  2 +-
 .../model/BACnetPriorityValueEnumerated.go         |  2 +-
 .../readwrite/model/BACnetPriorityValueInteger.go  |  2 +-
 .../readwrite/model/BACnetPriorityValueNull.go     |  2 +-
 .../model/BACnetPriorityValueObjectidentifier.go   |  2 +-
 .../model/BACnetPriorityValueOctetString.go        |  2 +-
 .../readwrite/model/BACnetPriorityValueReal.go     |  2 +-
 .../readwrite/model/BACnetPriorityValueTime.go     |  2 +-
 .../readwrite/model/BACnetPriorityValueUnsigned.go |  2 +-
 .../readwrite/model/BACnetProcessIdSelection.go    |  2 +-
 .../model/BACnetProcessIdSelectionNull.go          |  2 +-
 .../model/BACnetProcessIdSelectionValue.go         |  2 +-
 .../readwrite/model/BACnetProgramErrorTagged.go    |  2 +-
 .../readwrite/model/BACnetProgramRequestTagged.go  |  2 +-
 .../readwrite/model/BACnetProgramStateTagged.go    |  2 +-
 .../readwrite/model/BACnetPropertyAccessResult.go  | 10 ++--
 .../BACnetPropertyAccessResultAccessResult.go      |  2 +-
 ...yAccessResultAccessResultPropertyAccessError.go |  2 +-
 ...ropertyAccessResultAccessResultPropertyValue.go |  2 +-
 .../model/BACnetPropertyIdentifierTagged.go        |  2 +-
 .../readwrite/model/BACnetPropertyReference.go     |  4 +-
 .../model/BACnetPropertyReferenceEnclosed.go       |  6 +-
 .../model/BACnetPropertyStateActionUnknown.go      |  2 +-
 .../readwrite/model/BACnetPropertyStates.go        |  2 +-
 .../BACnetPropertyStatesAccessCredentialDisable.go |  2 +-
 ...tPropertyStatesAccessCredentialDisableReason.go |  2 +-
 .../model/BACnetPropertyStatesAccessEvent.go       |  2 +-
 .../readwrite/model/BACnetPropertyStatesAction.go  |  2 +-
 .../BACnetPropertyStatesAuthenticationStatus.go    |  2 +-
 .../model/BACnetPropertyStatesBackupState.go       |  2 +-
 .../model/BACnetPropertyStatesBacnetIpMode.go      |  2 +-
 .../BACnetPropertyStatesBinaryLightningValue.go    |  2 +-
 .../model/BACnetPropertyStatesBinaryValue.go       |  2 +-
 .../readwrite/model/BACnetPropertyStatesBoolean.go |  2 +-
 .../model/BACnetPropertyStatesDoorAlarmState.go    |  2 +-
 .../model/BACnetPropertyStatesDoorSecuredStatus.go |  2 +-
 .../model/BACnetPropertyStatesDoorStatus.go        |  2 +-
 .../model/BACnetPropertyStatesDoorValue.go         |  2 +-
 .../model/BACnetPropertyStatesEnclosed.go          |  6 +-
 .../model/BACnetPropertyStatesEscalatorFault.go    |  2 +-
 .../model/BACnetPropertyStatesEscalatorMode.go     |  2 +-
 ...netPropertyStatesEscalatorOperationDirection.go |  2 +-
 .../model/BACnetPropertyStatesEventType.go         |  2 +-
 .../model/BACnetPropertyStatesExtendedValue.go     |  2 +-
 .../model/BACnetPropertyStatesFileAccessMethod.go  |  2 +-
 .../model/BACnetPropertyStatesIntegerValue.go      |  2 +-
 .../model/BACnetPropertyStatesLifeSafetyMode.go    |  2 +-
 .../BACnetPropertyStatesLifeSafetyOperations.go    |  2 +-
 .../model/BACnetPropertyStatesLifeSafetyState.go   |  2 +-
 .../model/BACnetPropertyStatesLiftCarDirection.go  |  2 +-
 .../BACnetPropertyStatesLiftCarDoorCommand.go      |  2 +-
 .../BACnetPropertyStatesLiftCarDriveStatus.go      |  2 +-
 .../model/BACnetPropertyStatesLiftCarMode.go       |  2 +-
 .../model/BACnetPropertyStatesLiftFault.go         |  2 +-
 .../model/BACnetPropertyStatesLiftGroupMode.go     |  2 +-
 .../BACnetPropertyStatesLightningInProgress.go     |  2 +-
 .../BACnetPropertyStatesLightningOperation.go      |  2 +-
 .../BACnetPropertyStatesLightningTransition.go     |  2 +-
 .../model/BACnetPropertyStatesLockStatus.go        |  2 +-
 .../model/BACnetPropertyStatesMaintenance.go       |  2 +-
 .../BACnetPropertyStatesNetworkNumberQuality.go    |  2 +-
 .../BACnetPropertyStatesNetworkPortCommand.go      |  2 +-
 .../model/BACnetPropertyStatesNetworkType.go       |  2 +-
 .../model/BACnetPropertyStatesNodeType.go          |  2 +-
 .../model/BACnetPropertyStatesNotifyType.go        |  2 +-
 .../model/BACnetPropertyStatesPolarity.go          |  2 +-
 .../model/BACnetPropertyStatesProgramChange.go     |  2 +-
 .../model/BACnetPropertyStatesProgramState.go      |  2 +-
 .../model/BACnetPropertyStatesProtocolLevel.go     |  2 +-
 .../model/BACnetPropertyStatesReasonForHalt.go     |  2 +-
 .../model/BACnetPropertyStatesReliability.go       |  2 +-
 .../model/BACnetPropertyStatesRestartReason.go     |  2 +-
 .../model/BACnetPropertyStatesSecurityLevel.go     |  2 +-
 .../model/BACnetPropertyStatesShedState.go         |  2 +-
 .../model/BACnetPropertyStatesSilencedState.go     |  2 +-
 .../readwrite/model/BACnetPropertyStatesState.go   |  2 +-
 .../model/BACnetPropertyStatesSystemStatus.go      |  2 +-
 .../model/BACnetPropertyStatesTimerState.go        |  2 +-
 .../model/BACnetPropertyStatesTimerTransition.go   |  2 +-
 .../readwrite/model/BACnetPropertyStatesUnits.go   |  2 +-
 .../model/BACnetPropertyStatesUnsignedValue.go     |  2 +-
 .../model/BACnetPropertyStatesWriteStatus.go       |  2 +-
 .../model/BACnetPropertyStatesZoneOccupanyState.go |  2 +-
 .../readwrite/model/BACnetPropertyValue.go         |  8 +--
 .../readwrite/model/BACnetPropertyValues.go        |  4 +-
 .../model/BACnetPropertyWriteDefinition.go         |  8 +--
 .../readwrite/model/BACnetProtocolLevelTagged.go   |  2 +-
 .../readwrite/model/BACnetReadAccessProperty.go    |  6 +-
 .../model/BACnetReadAccessPropertyReadResult.go    |  6 +-
 .../readwrite/model/BACnetReadAccessResult.go      |  4 +-
 .../model/BACnetReadAccessResultListOfResults.go   |  4 +-
 .../model/BACnetReadAccessSpecification.go         |  6 +-
 .../bacnetip/readwrite/model/BACnetRecipient.go    |  2 +-
 .../readwrite/model/BACnetRecipientAddress.go      |  2 +-
 .../readwrite/model/BACnetRecipientDevice.go       |  2 +-
 .../readwrite/model/BACnetRecipientEnclosed.go     |  6 +-
 .../readwrite/model/BACnetRecipientProcess.go      |  4 +-
 .../model/BACnetRecipientProcessEnclosed.go        |  6 +-
 .../readwrite/model/BACnetRelationshipTagged.go    |  2 +-
 .../readwrite/model/BACnetReliabilityTagged.go     |  2 +-
 .../readwrite/model/BACnetRestartReasonTagged.go   |  2 +-
 .../readwrite/model/BACnetResultFlagsTagged.go     |  4 +-
 .../bacnetip/readwrite/model/BACnetRouterEntry.go  |  8 +--
 .../model/BACnetRouterEntryStatusTagged.go         |  2 +-
 .../bacnetip/readwrite/model/BACnetScale.go        |  2 +-
 .../readwrite/model/BACnetScaleFloatScale.go       |  2 +-
 .../readwrite/model/BACnetScaleIntegerScale.go     |  2 +-
 .../readwrite/model/BACnetSecurityKeySet.go        |  8 +--
 .../readwrite/model/BACnetSecurityKeySetKeyIds.go  |  4 +-
 .../readwrite/model/BACnetSecurityLevelTagged.go   |  2 +-
 .../readwrite/model/BACnetSecurityPolicyTagged.go  |  2 +-
 .../readwrite/model/BACnetSegmentationTagged.go    |  2 +-
 .../model/BACnetServiceAckAtomicReadFile.go        |  4 +-
 .../model/BACnetServiceAckAtomicReadFileRecord.go  |  4 +-
 .../model/BACnetServiceAckAtomicReadFileStream.go  |  4 +-
 ...BACnetServiceAckAtomicReadFileStreamOrRecord.go |  6 +-
 .../model/BACnetServiceAckAtomicWriteFile.go       |  2 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |  6 +-
 .../model/BACnetServiceAckCreateObject.go          |  2 +-
 .../model/BACnetServiceAckGetAlarmSummary.go       |  6 +-
 .../model/BACnetServiceAckGetEnrollmentSummary.go  | 10 ++--
 .../model/BACnetServiceAckGetEventInformation.go   |  4 +-
 .../model/BACnetServiceAckReadProperty.go          |  8 +--
 .../readwrite/model/BACnetServiceAckReadRange.go   | 14 ++---
 .../readwrite/model/BACnetServiceAckVTData.go      |  6 +-
 .../readwrite/model/BACnetServiceAckVTOpen.go      |  2 +-
 .../model/BACnetServicesSupportedTagged.go         |  4 +-
 .../readwrite/model/BACnetSetpointReference.go     |  2 +-
 .../bacnetip/readwrite/model/BACnetShedLevel.go    |  2 +-
 .../readwrite/model/BACnetShedLevelAmount.go       |  2 +-
 .../readwrite/model/BACnetShedLevelLevel.go        |  2 +-
 .../readwrite/model/BACnetShedLevelPercent.go      |  2 +-
 .../readwrite/model/BACnetShedStateTagged.go       |  2 +-
 .../readwrite/model/BACnetSilencedStateTagged.go   |  2 +-
 .../bacnetip/readwrite/model/BACnetSpecialEvent.go |  6 +-
 .../model/BACnetSpecialEventListOfTimeValues.go    |  4 +-
 .../readwrite/model/BACnetSpecialEventPeriod.go    |  2 +-
 .../model/BACnetSpecialEventPeriodCalendarEntry.go |  2 +-
 .../BACnetSpecialEventPeriodCalendarReference.go   |  2 +-
 .../readwrite/model/BACnetStatusFlagsTagged.go     |  4 +-
 .../bacnetip/readwrite/model/BACnetTimeStamp.go    |  2 +-
 .../readwrite/model/BACnetTimeStampDateTime.go     |  2 +-
 .../readwrite/model/BACnetTimeStampEnclosed.go     |  6 +-
 .../readwrite/model/BACnetTimeStampSequence.go     |  2 +-
 .../readwrite/model/BACnetTimeStampTime.go         |  2 +-
 .../readwrite/model/BACnetTimeStampsEnclosed.go    |  4 +-
 .../bacnetip/readwrite/model/BACnetTimeValue.go    |  4 +-
 .../readwrite/model/BACnetTimerStateChangeValue.go |  2 +-
 .../model/BACnetTimerStateChangeValueBitString.go  |  2 +-
 .../model/BACnetTimerStateChangeValueBoolean.go    |  2 +-
 .../BACnetTimerStateChangeValueCharacterString.go  |  2 +-
 .../BACnetTimerStateChangeValueConstructedValue.go |  2 +-
 .../model/BACnetTimerStateChangeValueDate.go       |  2 +-
 .../model/BACnetTimerStateChangeValueDateTime.go   |  2 +-
 .../model/BACnetTimerStateChangeValueDouble.go     |  2 +-
 .../model/BACnetTimerStateChangeValueEnumerated.go |  2 +-
 .../model/BACnetTimerStateChangeValueInteger.go    |  2 +-
 .../BACnetTimerStateChangeValueLightingCommand.go  |  2 +-
 .../model/BACnetTimerStateChangeValueNoValue.go    |  2 +-
 .../model/BACnetTimerStateChangeValueNull.go       |  2 +-
 .../BACnetTimerStateChangeValueObjectidentifier.go |  2 +-
 .../BACnetTimerStateChangeValueOctetString.go      |  2 +-
 .../model/BACnetTimerStateChangeValueReal.go       |  2 +-
 .../model/BACnetTimerStateChangeValueTime.go       |  2 +-
 .../model/BACnetTimerStateChangeValueUnsigned.go   |  2 +-
 .../readwrite/model/BACnetTimerStateTagged.go      |  2 +-
 .../readwrite/model/BACnetTimerTransitionTagged.go |  2 +-
 .../model/BACnetUnconfirmedServiceChoiceTagged.go  |  2 +-
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |  8 +--
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |  6 +-
 ...UnconfirmedServiceRequestTimeSynchronization.go |  4 +-
 ...onfirmedServiceRequestUTCTimeSynchronization.go |  4 +-
 ...rmedServiceRequestUnconfirmedCOVNotification.go | 10 ++--
 ...iceRequestUnconfirmedCOVNotificationMultiple.go | 10 ++--
 ...edServiceRequestUnconfirmedEventNotification.go | 26 ++++-----
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |  6 +-
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |  8 +--
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |  6 +-
 .../BACnetUnconfirmedServiceRequestWhoHasObject.go |  2 +-
 ...onfirmedServiceRequestWhoHasObjectIdentifier.go |  2 +-
 ...netUnconfirmedServiceRequestWhoHasObjectName.go |  2 +-
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  |  4 +-
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |  8 +--
 .../bacnetip/readwrite/model/BACnetVMACEntry.go    |  4 +-
 .../readwrite/model/BACnetVTClassTagged.go         |  2 +-
 .../bacnetip/readwrite/model/BACnetVTSession.go    |  6 +-
 .../bacnetip/readwrite/model/BACnetValueSource.go  |  2 +-
 .../readwrite/model/BACnetValueSourceAddress.go    |  2 +-
 .../readwrite/model/BACnetValueSourceNone.go       |  2 +-
 .../readwrite/model/BACnetValueSourceObject.go     |  2 +-
 .../readwrite/model/BACnetVendorIdTagged.go        |  2 +-
 .../readwrite/model/BACnetWeekNDayTagged.go        |  2 +-
 .../model/BACnetWriteAccessSpecification.go        |  6 +-
 .../readwrite/model/BACnetWriteStatusTagged.go     |  2 +-
 .../model/BVLCDistributeBroadcastToNetwork.go      |  2 +-
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  |  2 +-
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |  2 +-
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |  2 +-
 .../readwrite/model/BVLCResultCodeTagged.go        |  2 +-
 .../bacnetip/readwrite/model/ChangeListAddError.go |  4 +-
 .../readwrite/model/ChangeListRemoveError.go       |  4 +-
 .../model/ConfirmedEventNotificationRequest.go     | 26 ++++-----
 .../model/ConfirmedPrivateTransferError.go         |  8 +--
 .../bacnetip/readwrite/model/CreateObjectError.go  |  4 +-
 plc4go/protocols/bacnetip/readwrite/model/Error.go |  4 +-
 .../bacnetip/readwrite/model/ErrorClassTagged.go   |  2 +-
 .../bacnetip/readwrite/model/ErrorCodeTagged.go    |  2 +-
 .../bacnetip/readwrite/model/ErrorEnclosed.go      |  6 +-
 .../readwrite/model/ListOfCovNotifications.go      |  6 +-
 .../readwrite/model/ListOfCovNotificationsList.go  |  4 +-
 .../readwrite/model/ListOfCovNotificationsValue.go |  8 +--
 .../bacnetip/readwrite/model/NLMSetMasterKey.go    |  2 +-
 .../readwrite/model/NLMUpdateKeyDistributionKey.go |  2 +-
 .../bacnetip/readwrite/model/NLMUpdateKeyUpdate.go |  2 +-
 plc4go/protocols/bacnetip/readwrite/model/NPDU.go  |  6 +-
 .../readwrite/model/NPDUNetworkPriorityTagged.go   |  2 +-
 .../readwrite/model/SecurityResponseCodeTagged.go  |  2 +-
 .../model/SubscribeCOVPropertyMultipleError.go     |  4 +-
 ...PropertyMultipleErrorFirstFailedSubscription.go | 10 ++--
 .../bacnetip/readwrite/model/VTCloseError.go       |  4 +-
 .../VTCloseErrorListOfVTSessionIdentifiers.go      |  4 +-
 .../readwrite/model/WritePropertyMultipleError.go  |  4 +-
 .../AirConditioningDataHumidityScheduleEntry.go    | 10 ++--
 .../model/AirConditioningDataHvacScheduleEntry.go  | 10 ++--
 ...irConditioningDataSetHumidityLowerGuardLimit.go |  6 +-
 .../AirConditioningDataSetHumiditySetbackLimit.go  |  6 +-
 ...irConditioningDataSetHumidityUpperGuardLimit.go |  6 +-
 .../AirConditioningDataSetHvacLowerGuardLimit.go   |  6 +-
 .../AirConditioningDataSetHvacSetbackLimit.go      |  6 +-
 .../AirConditioningDataSetHvacUpperGuardLimit.go   |  6 +-
 .../AirConditioningDataSetPlantHumidityLevel.go    | 10 ++--
 .../model/AirConditioningDataSetPlantHvacLevel.go  | 10 ++--
 .../AirConditioningDataSetZoneHumidityMode.go      | 10 ++--
 .../model/AirConditioningDataSetZoneHvacMode.go    | 10 ++--
 .../model/AirConditioningDataZoneHumidity.go       |  4 +-
 .../AirConditioningDataZoneHumidityPlantStatus.go  |  4 +-
 .../AirConditioningDataZoneHvacPlantStatus.go      |  4 +-
 .../model/AirConditioningDataZoneTemperature.go    |  4 +-
 plc4go/protocols/cbus/readwrite/model/CALData.go   |  2 +-
 .../cbus/readwrite/model/CALDataIdentifyReply.go   |  2 +-
 .../protocols/cbus/readwrite/model/CALDataReply.go |  2 +-
 .../protocols/cbus/readwrite/model/CALDataWrite.go |  2 +-
 plc4go/protocols/cbus/readwrite/model/CALReply.go  |  2 +-
 .../protocols/cbus/readwrite/model/CALReplyLong.go |  8 +--
 .../protocols/cbus/readwrite/model/CBusCommand.go  |  2 +-
 .../model/CBusCommandPointToMultiPoint.go          |  2 +-
 .../readwrite/model/CBusCommandPointToPoint.go     |  2 +-
 .../model/CBusCommandPointToPointToMultiPoint.go   |  2 +-
 .../cbus/readwrite/model/CBusMessageToClient.go    |  2 +-
 .../cbus/readwrite/model/CBusMessageToServer.go    |  2 +-
 .../model/CBusPointToMultiPointCommandNormal.go    |  2 +-
 .../model/CBusPointToMultiPointCommandStatus.go    |  2 +-
 .../readwrite/model/CBusPointToPointCommand.go     |  2 +-
 .../model/CBusPointToPointCommandDirect.go         |  2 +-
 .../model/CBusPointToPointCommandIndirect.go       |  6 +-
 .../model/CBusPointToPointToMultiPointCommand.go   |  4 +-
 .../CBusPointToPointToMultiPointCommandNormal.go   |  2 +-
 .../CBusPointToPointToMultiPointCommandStatus.go   |  2 +-
 .../protocols/cbus/readwrite/model/Confirmation.go |  4 +-
 .../cbus/readwrite/model/EncodedReplyCALReply.go   |  2 +-
 .../readwrite/model/ErrorReportingDataGeneric.go   |  2 +-
 .../model/ErrorReportingSystemCategory.go          |  2 +-
 .../model/IdentifyReplyCommandOutputUnitSummary.go |  2 +-
 .../model/InterfaceOptions1PowerUpSettings.go      |  2 +-
 .../cbus/readwrite/model/LightingDataLabel.go      |  2 +-
 .../model/MonitoredSALLongFormSmartMode.go         |  8 +--
 .../cbus/readwrite/model/MonitoredSALReply.go      |  2 +-
 .../model/MonitoredSALShortFormBasicMode.go        |  2 +-
 .../protocols/cbus/readwrite/model/NetworkRoute.go |  2 +-
 .../cbus/readwrite/model/ParameterChangeReply.go   |  2 +-
 .../model/ParameterValueApplicationAddress1.go     |  2 +-
 .../model/ParameterValueApplicationAddress2.go     |  2 +-
 .../model/ParameterValueCustomManufacturer.go      |  2 +-
 .../readwrite/model/ParameterValueCustomTypes.go   |  2 +-
 .../model/ParameterValueInterfaceOptions1.go       |  2 +-
 ...rameterValueInterfaceOptions1PowerUpSettings.go |  2 +-
 .../model/ParameterValueInterfaceOptions2.go       |  2 +-
 .../model/ParameterValueInterfaceOptions3.go       |  2 +-
 .../readwrite/model/ParameterValueSerialNumber.go  |  2 +-
 .../protocols/cbus/readwrite/model/PowerUpReply.go |  2 +-
 .../cbus/readwrite/model/ReplyEncodedReply.go      |  4 +-
 .../protocols/cbus/readwrite/model/ReplyNetwork.go |  4 +-
 .../model/ReplyOrConfirmationConfirmation.go       |  4 +-
 .../readwrite/model/ReplyOrConfirmationReply.go    |  4 +-
 plc4go/protocols/cbus/readwrite/model/Request.go   |  2 +-
 .../cbus/readwrite/model/RequestCommand.go         |  6 +-
 .../readwrite/model/RequestDirectCommandAccess.go  |  4 +-
 .../cbus/readwrite/model/RequestObsolete.go        |  4 +-
 plc4go/protocols/cbus/readwrite/model/SALData.go   |  2 +-
 .../cbus/readwrite/model/SALDataAccessControl.go   |  2 +-
 .../cbus/readwrite/model/SALDataAirConditioning.go |  2 +-
 .../cbus/readwrite/model/SALDataAudioAndVideo.go   |  2 +-
 .../readwrite/model/SALDataClockAndTimekeeping.go  |  2 +-
 .../cbus/readwrite/model/SALDataEnableControl.go   |  2 +-
 .../cbus/readwrite/model/SALDataErrorReporting.go  |  2 +-
 .../cbus/readwrite/model/SALDataHeating.go         |  2 +-
 .../cbus/readwrite/model/SALDataHvacActuator.go    |  2 +-
 .../readwrite/model/SALDataIrrigationControl.go    |  2 +-
 .../cbus/readwrite/model/SALDataLighting.go        |  2 +-
 .../cbus/readwrite/model/SALDataMeasurement.go     |  2 +-
 .../cbus/readwrite/model/SALDataMediaTransport.go  |  2 +-
 .../cbus/readwrite/model/SALDataMetering.go        |  2 +-
 .../model/SALDataPoolsSpasPondsFountainsControl.go |  2 +-
 .../cbus/readwrite/model/SALDataSecurity.go        |  2 +-
 .../model/SALDataTelephonyStatusAndControl.go      |  2 +-
 .../readwrite/model/SALDataTemperatureBroadcast.go |  2 +-
 .../cbus/readwrite/model/SALDataTriggerControl.go  |  2 +-
 .../cbus/readwrite/model/SALDataVentilation.go     |  2 +-
 .../readwrite/model/SecurityDataStatusReport1.go   |  6 +-
 .../model/SecurityDataSystemArmedDisarmed.go       |  2 +-
 .../readwrite/model/TriggerControlDataLabel.go     |  2 +-
 .../df1/readwrite/model/DF1SymbolMessageFrame.go   |  2 +-
 .../eip/readwrite/model/CipConnectedResponse.go    |  2 +-
 .../model/CipConnectionManagerCloseRequest.go      |  4 +-
 .../readwrite/model/CipConnectionManagerRequest.go | 10 ++--
 .../eip/readwrite/model/CipReadResponse.go         |  2 +-
 .../eip/readwrite/model/CipUnconnectedRequest.go   |  6 +-
 .../eip/readwrite/model/ConnectedDataItem.go       |  2 +-
 .../protocols/eip/readwrite/model/DataSegment.go   |  2 +-
 .../eip/readwrite/model/GetAttributeAllRequest.go  |  4 +-
 .../eip/readwrite/model/GetAttributeAllResponse.go |  2 +-
 .../eip/readwrite/model/LogicalSegment.go          |  2 +-
 .../eip/readwrite/model/MultipleServiceRequest.go  |  2 +-
 .../protocols/eip/readwrite/model/PortSegment.go   |  2 +-
 .../eip/readwrite/model/UnConnectedDataItem.go     |  2 +-
 .../firmata/readwrite/model/FirmataCommandSysex.go |  2 +-
 .../readwrite/model/FirmataMessageCommand.go       |  2 +-
 .../readwrite/model/ApduControlContainer.go        |  2 +-
 .../knxnetip/readwrite/model/ApduDataContainer.go  |  2 +-
 .../knxnetip/readwrite/model/ApduDataOther.go      |  2 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |  2 +-
 .../model/ComObjectTableRealisationType6.go        |  2 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |  6 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |  4 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |  2 +-
 .../readwrite/model/ConnectionStateRequest.go      |  2 +-
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      | 10 ++--
 .../knxnetip/readwrite/model/DescriptionRequest.go |  2 +-
 .../readwrite/model/DescriptionResponse.go         |  4 +-
 .../readwrite/model/DeviceConfigurationAck.go      |  2 +-
 .../readwrite/model/DeviceConfigurationRequest.go  |  4 +-
 .../readwrite/model/DeviceDescriptorType2.go       |  8 +--
 .../knxnetip/readwrite/model/DisconnectRequest.go  |  2 +-
 .../readwrite/model/HPAIControlEndpoint.go         |  2 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |  2 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |  2 +-
 .../knxnetip/readwrite/model/KnxManufacturer.go    | 26 +++++++--
 .../knxnetip/readwrite/model/LBusmonInd.go         |  2 +-
 .../protocols/knxnetip/readwrite/model/LDataCon.go |  2 +-
 .../knxnetip/readwrite/model/LDataExtended.go      |  4 +-
 .../protocols/knxnetip/readwrite/model/LDataInd.go |  2 +-
 .../protocols/knxnetip/readwrite/model/LDataReq.go |  2 +-
 .../knxnetip/readwrite/model/LPollData.go          |  2 +-
 .../knxnetip/readwrite/model/SearchRequest.go      |  2 +-
 .../knxnetip/readwrite/model/SearchResponse.go     |  6 +-
 .../knxnetip/readwrite/model/TunnelingRequest.go   |  4 +-
 .../knxnetip/readwrite/model/TunnelingResponse.go  |  2 +-
 .../modbus/readwrite/model/ModbusAsciiADU.go       |  2 +-
 .../modbus/readwrite/model/ModbusRtuADU.go         |  2 +-
 .../modbus/readwrite/model/ModbusTcpADU.go         |  2 +-
 .../readwrite/model/ActivateSessionRequest.go      |  8 +--
 .../readwrite/model/ActivateSessionResponse.go     |  4 +-
 .../opcua/readwrite/model/AddNodesItem.go          | 12 ++--
 .../opcua/readwrite/model/AddNodesRequest.go       |  2 +-
 .../opcua/readwrite/model/AddNodesResponse.go      |  2 +-
 .../opcua/readwrite/model/AddNodesResult.go        |  4 +-
 .../opcua/readwrite/model/AddReferencesItem.go     |  8 +--
 .../opcua/readwrite/model/AddReferencesRequest.go  |  2 +-
 .../opcua/readwrite/model/AddReferencesResponse.go |  2 +-
 .../opcua/readwrite/model/AggregateFilter.go       |  4 +-
 .../opcua/readwrite/model/AggregateFilterResult.go |  2 +-
 .../opcua/readwrite/model/AliasNameDataType.go     |  2 +-
 .../protocols/opcua/readwrite/model/Annotation.go  |  4 +-
 .../opcua/readwrite/model/AnnotationDataType.go    |  6 +-
 .../readwrite/model/AnonymousIdentityToken.go      |  2 +-
 .../readwrite/model/ApplicationDescription.go      | 10 ++--
 plc4go/protocols/opcua/readwrite/model/Argument.go |  6 +-
 .../opcua/readwrite/model/AttributeOperand.go      |  8 +--
 .../opcua/readwrite/model/AxisInformation.go       |  6 +-
 .../model/BinaryExtensionObjectWithMask.go         |  2 +-
 .../opcua/readwrite/model/BitFieldDefinition.go    |  4 +-
 .../model/BrokerConnectionTransportDataType.go     |  4 +-
 .../model/BrokerDataSetReaderTransportDataType.go  |  8 +--
 .../model/BrokerDataSetWriterTransportDataType.go  |  8 +--
 .../model/BrokerWriterGroupTransportDataType.go    |  6 +-
 .../opcua/readwrite/model/BrowseDescription.go     |  4 +-
 .../opcua/readwrite/model/BrowseNextRequest.go     |  2 +-
 .../opcua/readwrite/model/BrowseNextResponse.go    |  2 +-
 .../protocols/opcua/readwrite/model/BrowsePath.go  |  4 +-
 .../opcua/readwrite/model/BrowsePathResult.go      |  2 +-
 .../opcua/readwrite/model/BrowsePathTarget.go      |  2 +-
 .../opcua/readwrite/model/BrowseRequest.go         |  4 +-
 .../opcua/readwrite/model/BrowseResponse.go        |  2 +-
 .../opcua/readwrite/model/BrowseResult.go          |  4 +-
 .../protocols/opcua/readwrite/model/BuildInfo.go   | 10 ++--
 .../opcua/readwrite/model/ByteStringNodeId.go      |  2 +-
 .../opcua/readwrite/model/CallMethodRequest.go     |  4 +-
 .../opcua/readwrite/model/CallMethodResult.go      |  2 +-
 .../protocols/opcua/readwrite/model/CallRequest.go |  2 +-
 .../opcua/readwrite/model/CallResponse.go          |  2 +-
 .../opcua/readwrite/model/CancelRequest.go         |  2 +-
 .../opcua/readwrite/model/CancelResponse.go        |  2 +-
 .../readwrite/model/CloseSecureChannelRequest.go   |  2 +-
 .../readwrite/model/CloseSecureChannelResponse.go  |  2 +-
 .../opcua/readwrite/model/CloseSessionRequest.go   |  2 +-
 .../opcua/readwrite/model/CloseSessionResponse.go  |  2 +-
 .../readwrite/model/ContentFilterElementResult.go  |  2 +-
 .../readwrite/model/CreateMonitoredItemsRequest.go |  2 +-
 .../model/CreateMonitoredItemsResponse.go          |  2 +-
 .../opcua/readwrite/model/CreateSessionRequest.go  | 14 ++---
 .../opcua/readwrite/model/CreateSessionResponse.go | 12 ++--
 .../readwrite/model/CreateSubscriptionRequest.go   |  2 +-
 .../readwrite/model/CreateSubscriptionResponse.go  |  2 +-
 .../opcua/readwrite/model/CurrencyUnitType.go      |  4 +-
 .../opcua/readwrite/model/DataSetMetaDataType.go   |  8 +--
 .../opcua/readwrite/model/DataSetReaderDataType.go | 16 ++---
 .../opcua/readwrite/model/DataSetWriterDataType.go |  8 +--
 .../opcua/readwrite/model/DataTypeAttributes.go    |  4 +-
 .../opcua/readwrite/model/DataTypeDescription.go   |  4 +-
 .../protocols/opcua/readwrite/model/DataValue.go   |  4 +-
 .../model/DatagramConnectionTransport2DataType.go  |  4 +-
 .../model/DatagramConnectionTransportDataType.go   |  2 +-
 .../DatagramDataSetReaderTransportDataType.go      |  6 +-
 .../model/DatagramWriterGroupTransport2DataType.go |  6 +-
 .../opcua/readwrite/model/DeleteAtTimeDetails.go   |  2 +-
 .../opcua/readwrite/model/DeleteEventDetails.go    |  2 +-
 .../readwrite/model/DeleteMonitoredItemsRequest.go |  2 +-
 .../model/DeleteMonitoredItemsResponse.go          |  2 +-
 .../opcua/readwrite/model/DeleteNodesItem.go       |  2 +-
 .../opcua/readwrite/model/DeleteNodesRequest.go    |  2 +-
 .../opcua/readwrite/model/DeleteNodesResponse.go   |  2 +-
 .../readwrite/model/DeleteRawModifiedDetails.go    |  2 +-
 .../opcua/readwrite/model/DeleteReferencesItem.go  |  6 +-
 .../readwrite/model/DeleteReferencesRequest.go     |  2 +-
 .../readwrite/model/DeleteReferencesResponse.go    |  2 +-
 .../readwrite/model/DeleteSubscriptionsRequest.go  |  2 +-
 .../readwrite/model/DeleteSubscriptionsResponse.go |  2 +-
 .../opcua/readwrite/model/DiagnosticInfo.go        |  6 +-
 .../opcua/readwrite/model/EUInformation.go         |  6 +-
 .../opcua/readwrite/model/EndpointDescription.go   | 10 ++--
 .../opcua/readwrite/model/EndpointType.go          |  6 +-
 .../opcua/readwrite/model/EnumDescription.go       |  6 +-
 .../protocols/opcua/readwrite/model/EnumField.go   |  6 +-
 .../opcua/readwrite/model/EnumValueType.go         |  4 +-
 .../opcua/readwrite/model/EphemeralKeyType.go      |  4 +-
 .../protocols/opcua/readwrite/model/EventFilter.go |  2 +-
 .../opcua/readwrite/model/EventFilterResult.go     |  2 +-
 .../opcua/readwrite/model/ExpandedNodeId.go        |  4 +-
 .../opcua/readwrite/model/ExtensiblePayload.go     |  2 +-
 .../opcua/readwrite/model/ExtensionObject.go       |  2 +-
 .../readwrite/model/ExtensionObjectWithMask.go     |  2 +-
 .../opcua/readwrite/model/FieldMetaData.go         |  8 +--
 .../opcua/readwrite/model/FieldTargetDataType.go   | 10 ++--
 .../readwrite/model/FindServersOnNetworkRequest.go |  2 +-
 .../model/FindServersOnNetworkResponse.go          |  2 +-
 .../opcua/readwrite/model/FindServersRequest.go    |  4 +-
 .../opcua/readwrite/model/FindServersResponse.go   |  2 +-
 .../opcua/readwrite/model/GenericAttributeValue.go |  2 +-
 .../opcua/readwrite/model/GenericAttributes.go     |  4 +-
 .../opcua/readwrite/model/GetEndpointsRequest.go   |  4 +-
 .../opcua/readwrite/model/GetEndpointsResponse.go  |  2 +-
 .../protocols/opcua/readwrite/model/GuidNodeId.go  |  2 +-
 .../opcua/readwrite/model/HistoryReadRequest.go    |  4 +-
 .../opcua/readwrite/model/HistoryReadResponse.go   |  2 +-
 .../opcua/readwrite/model/HistoryReadResult.go     |  6 +-
 .../opcua/readwrite/model/HistoryReadValueId.go    |  8 +--
 .../opcua/readwrite/model/HistoryUpdateRequest.go  |  2 +-
 .../opcua/readwrite/model/HistoryUpdateResponse.go |  2 +-
 .../opcua/readwrite/model/HistoryUpdateResult.go   |  2 +-
 .../readwrite/model/IdentityMappingRuleType.go     |  2 +-
 .../opcua/readwrite/model/IssuedIdentityToken.go   |  6 +-
 .../opcua/readwrite/model/KeyValuePair.go          |  4 +-
 .../opcua/readwrite/model/LiteralOperand.go        |  2 +-
 .../opcua/readwrite/model/LocalizedText.go         |  4 +-
 .../readwrite/model/MdnsDiscoveryConfiguration.go  |  2 +-
 .../opcua/readwrite/model/MethodAttributes.go      |  4 +-
 .../model/ModelChangeStructureDataType.go          |  4 +-
 .../opcua/readwrite/model/ModificationInfo.go      |  2 +-
 .../readwrite/model/ModifyMonitoredItemsRequest.go |  2 +-
 .../model/ModifyMonitoredItemsResponse.go          |  2 +-
 .../readwrite/model/ModifySubscriptionRequest.go   |  2 +-
 .../readwrite/model/ModifySubscriptionResponse.go  |  2 +-
 .../readwrite/model/MonitoredItemCreateRequest.go  |  4 +-
 .../readwrite/model/MonitoredItemCreateResult.go   |  4 +-
 .../readwrite/model/MonitoredItemModifyRequest.go  |  2 +-
 .../readwrite/model/MonitoredItemModifyResult.go   |  4 +-
 .../readwrite/model/MonitoredItemNotification.go   |  2 +-
 .../opcua/readwrite/model/MonitoringParameters.go  |  2 +-
 .../readwrite/model/NetworkAddressDataType.go      |  2 +-
 .../readwrite/model/NetworkAddressUrlDataType.go   |  4 +-
 .../opcua/readwrite/model/NetworkGroupDataType.go  |  2 +-
 .../opcua/readwrite/model/NodeAttributes.go        |  4 +-
 plc4go/protocols/opcua/readwrite/model/NodeId.go   |  2 +-
 .../opcua/readwrite/model/NodeIdByteString.go      |  2 +-
 .../opcua/readwrite/model/NodeIdString.go          |  2 +-
 .../opcua/readwrite/model/NodeReference.go         |  4 +-
 .../opcua/readwrite/model/NodeTypeDescription.go   |  2 +-
 .../opcua/readwrite/model/ObjectAttributes.go      |  4 +-
 .../opcua/readwrite/model/ObjectTypeAttributes.go  |  4 +-
 plc4go/protocols/opcua/readwrite/model/OpcuaAPU.go |  2 +-
 .../readwrite/model/OpcuaAcknowledgeResponse.go    |  2 +-
 .../opcua/readwrite/model/OpcuaCloseRequest.go     |  4 +-
 .../opcua/readwrite/model/OpcuaHelloRequest.go     |  4 +-
 .../opcua/readwrite/model/OpcuaMessageError.go     |  2 +-
 .../opcua/readwrite/model/OpcuaMessageRequest.go   |  4 +-
 .../opcua/readwrite/model/OpcuaMessageResponse.go  |  4 +-
 .../opcua/readwrite/model/OpcuaOpenRequest.go      |  4 +-
 .../opcua/readwrite/model/OpcuaOpenResponse.go     |  4 +-
 .../readwrite/model/OpenChannelMessageRequest.go   |  6 +-
 .../readwrite/model/OpenChannelMessageResponse.go  |  6 +-
 .../readwrite/model/OpenSecureChannelRequest.go    |  4 +-
 .../readwrite/model/OpenSecureChannelResponse.go   |  6 +-
 .../protocols/opcua/readwrite/model/OptionSet.go   |  4 +-
 .../opcua/readwrite/model/ParsingResult.go         |  2 +-
 plc4go/protocols/opcua/readwrite/model/Payload.go  |  2 +-
 .../opcua/readwrite/model/PortableNodeId.go        |  4 +-
 .../opcua/readwrite/model/PortableQualifiedName.go |  4 +-
 .../readwrite/model/PriorityMappingEntryType.go    |  4 +-
 .../readwrite/model/ProgramDiagnostic2DataType.go  | 10 ++--
 .../readwrite/model/ProgramDiagnosticDataType.go   | 10 ++--
 .../model/PubSubConfigurationValueDataType.go      |  6 +-
 .../readwrite/model/PubSubConnectionDataType.go    | 10 ++--
 .../opcua/readwrite/model/PubSubGroupDataType.go   |  4 +-
 .../readwrite/model/PubSubKeyPushTargetDataType.go |  8 +--
 .../opcua/readwrite/model/PublishRequest.go        |  2 +-
 .../opcua/readwrite/model/PublishResponse.go       |  4 +-
 .../readwrite/model/PublishedDataSetDataType.go    |  6 +-
 .../readwrite/model/PublishedEventsDataType.go     |  4 +-
 .../readwrite/model/PublishedVariableDataType.go   |  6 +-
 .../opcua/readwrite/model/QualifiedName.go         |  2 +-
 .../opcua/readwrite/model/QueryDataDescription.go  |  4 +-
 .../opcua/readwrite/model/QueryDataSet.go          |  4 +-
 .../opcua/readwrite/model/QueryFirstRequest.go     |  6 +-
 .../opcua/readwrite/model/QueryFirstResponse.go    |  6 +-
 .../opcua/readwrite/model/QueryNextRequest.go      |  4 +-
 .../opcua/readwrite/model/QueryNextResponse.go     |  4 +-
 .../opcua/readwrite/model/ReadEventDetails.go      |  2 +-
 .../opcua/readwrite/model/ReadEventDetails2.go     |  2 +-
 .../opcua/readwrite/model/ReadProcessedDetails.go  |  2 +-
 .../protocols/opcua/readwrite/model/ReadRequest.go |  2 +-
 .../opcua/readwrite/model/ReadResponse.go          |  2 +-
 .../protocols/opcua/readwrite/model/ReadValueId.go |  6 +-
 .../opcua/readwrite/model/ReaderGroupDataType.go   |  8 +--
 .../readwrite/model/ReceiveQosPriorityDataType.go  |  2 +-
 .../readwrite/model/RedundantServerDataType.go     |  2 +-
 .../opcua/readwrite/model/ReferenceDescription.go  | 10 ++--
 .../model/ReferenceDescriptionDataType.go          |  6 +-
 .../readwrite/model/ReferenceListEntryDataType.go  |  4 +-
 .../readwrite/model/ReferenceTypeAttributes.go     |  6 +-
 .../opcua/readwrite/model/RegisterNodesRequest.go  |  2 +-
 .../opcua/readwrite/model/RegisterNodesResponse.go |  2 +-
 .../readwrite/model/RegisterServer2Request.go      |  4 +-
 .../readwrite/model/RegisterServer2Response.go     |  2 +-
 .../opcua/readwrite/model/RegisterServerRequest.go |  4 +-
 .../readwrite/model/RegisterServerResponse.go      |  2 +-
 .../opcua/readwrite/model/RegisteredServer.go      |  8 +--
 .../opcua/readwrite/model/RelativePathElement.go   |  4 +-
 .../opcua/readwrite/model/RepublishRequest.go      |  2 +-
 .../opcua/readwrite/model/RepublishResponse.go     |  4 +-
 .../opcua/readwrite/model/RequestHeader.go         |  6 +-
 .../opcua/readwrite/model/ResponseHeader.go        |  6 +-
 .../opcua/readwrite/model/RolePermissionType.go    |  2 +-
 .../opcua/readwrite/model/RootExtensionObject.go   |  2 +-
 .../opcua/readwrite/model/SecurityGroupDataType.go |  6 +-
 .../model/SemanticChangeStructureDataType.go       |  4 +-
 .../opcua/readwrite/model/ServerOnNetwork.go       |  4 +-
 .../opcua/readwrite/model/ServerStatusDataType.go  |  4 +-
 .../opcua/readwrite/model/ServiceFault.go          |  2 +-
 .../readwrite/model/SessionDiagnosticsDataType.go  | 68 +++++++++++-----------
 .../model/SessionSecurityDiagnosticsDataType.go    | 14 ++---
 .../readwrite/model/SetMonitoringModeRequest.go    |  2 +-
 .../readwrite/model/SetMonitoringModeResponse.go   |  2 +-
 .../readwrite/model/SetPublishingModeRequest.go    |  2 +-
 .../readwrite/model/SetPublishingModeResponse.go   |  2 +-
 .../opcua/readwrite/model/SetTriggeringRequest.go  |  2 +-
 .../opcua/readwrite/model/SetTriggeringResponse.go |  2 +-
 .../opcua/readwrite/model/SignatureData.go         |  4 +-
 .../readwrite/model/SignedSoftwareCertificate.go   |  4 +-
 .../readwrite/model/SimpleAttributeOperand.go      |  4 +-
 .../opcua/readwrite/model/SimpleTypeDescription.go |  6 +-
 .../model/StandaloneSubscribedDataSetDataType.go   |  6 +-
 .../StandaloneSubscribedDataSetRefDataType.go      |  2 +-
 .../readwrite/model/StatusChangeNotification.go    |  4 +-
 .../opcua/readwrite/model/StatusResult.go          |  4 +-
 .../opcua/readwrite/model/StringNodeId.go          |  2 +-
 .../opcua/readwrite/model/StructureDefinition.go   |  4 +-
 .../opcua/readwrite/model/StructureDescription.go  |  6 +-
 .../opcua/readwrite/model/StructureField.go        |  6 +-
 .../model/SubscribedDataSetMirrorDataType.go       |  2 +-
 .../model/SubscriptionDiagnosticsDataType.go       |  2 +-
 .../opcua/readwrite/model/TransactionErrorType.go  |  6 +-
 .../opcua/readwrite/model/TransferResult.go        |  2 +-
 .../model/TransferSubscriptionsRequest.go          |  2 +-
 .../model/TransferSubscriptionsResponse.go         |  2 +-
 .../model/TranslateBrowsePathsToNodeIdsRequest.go  |  2 +-
 .../model/TranslateBrowsePathsToNodeIdsResponse.go |  2 +-
 .../readwrite/model/TransmitQosPriorityDataType.go |  2 +-
 .../opcua/readwrite/model/UABinaryFileDataType.go  |  4 +-
 .../model/UadpDataSetReaderMessageDataType.go      |  2 +-
 .../readwrite/model/UnregisterNodesRequest.go      |  2 +-
 .../readwrite/model/UnregisterNodesResponse.go     |  2 +-
 .../opcua/readwrite/model/UpdateDataDetails.go     |  2 +-
 .../opcua/readwrite/model/UpdateEventDetails.go    |  4 +-
 .../readwrite/model/UpdateStructureDataDetails.go  |  2 +-
 .../opcua/readwrite/model/UserIdentityToken.go     |  2 +-
 .../readwrite/model/UserManagementDataType.go      |  4 +-
 .../opcua/readwrite/model/UserNameIdentityToken.go |  8 +--
 .../opcua/readwrite/model/UserTokenPolicy.go       |  8 +--
 .../opcua/readwrite/model/VariableAttributes.go    |  8 +--
 .../readwrite/model/VariableTypeAttributes.go      |  8 +--
 .../opcua/readwrite/model/ViewAttributes.go        |  4 +-
 .../opcua/readwrite/model/ViewDescription.go       |  2 +-
 .../opcua/readwrite/model/WriteRequest.go          |  2 +-
 .../opcua/readwrite/model/WriteResponse.go         |  2 +-
 .../protocols/opcua/readwrite/model/WriteValue.go  |  6 +-
 .../opcua/readwrite/model/WriterGroupDataType.go   | 10 ++--
 .../opcua/readwrite/model/X509IdentityToken.go     |  4 +-
 .../model/AlarmMessageAckObjectPushType.go         |  4 +-
 .../s7/readwrite/model/AlarmMessageAckPushType.go  |  2 +-
 .../readwrite/model/AlarmMessageObjectAckType.go   |  4 +-
 .../readwrite/model/AlarmMessageObjectPushType.go  |  8 +--
 .../readwrite/model/AlarmMessageObjectQueryType.go | 14 ++---
 .../s7/readwrite/model/AlarmMessagePushType.go     |  2 +-
 plc4go/protocols/s7/readwrite/model/COTPPacket.go  |  2 +-
 plc4go/protocols/s7/readwrite/model/S7Message.go   |  4 +-
 .../s7/readwrite/model/S7PayloadAlarm8.go          |  2 +-
 .../s7/readwrite/model/S7PayloadAlarmAckInd.go     |  2 +-
 .../s7/readwrite/model/S7PayloadAlarmS.go          |  2 +-
 .../s7/readwrite/model/S7PayloadAlarmSC.go         |  2 +-
 .../s7/readwrite/model/S7PayloadAlarmSQ.go         |  2 +-
 .../readwrite/model/S7PayloadDiagnosticMessage.go  |  2 +-
 .../s7/readwrite/model/S7PayloadNotify.go          |  2 +-
 .../s7/readwrite/model/S7PayloadNotify8.go         |  2 +-
 .../model/S7PayloadUserDataItemClkFResponse.go     |  2 +-
 .../model/S7PayloadUserDataItemClkResponse.go      |  2 +-
 .../model/S7PayloadUserDataItemClkSetRequest.go    |  2 +-
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |  2 +-
 .../model/S7VarRequestParameterItemAddress.go      |  2 +-
 plc4go/protocols/s7/readwrite/model/TPKTPacket.go  |  2 +-
 plc4go/spi/utils/common.go                         | 19 ++++++
 .../protocols/knxnetip/knx-master-data.mspec       |  6 +-
 1585 files changed, 2627 insertions(+), 2590 deletions(-)

diff --git a/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
index a963ac2172..0f57536ada 100644
--- a/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
@@ -1873,7 +1873,7 @@ func (m *_${type.name}) deepCopy() *_${type.name} {
 <#if type.propertyFields?has_content>
 	<#list type.propertyFields as field>
 		<#if field.type.isComplexTypeReference()>
-		m.${field.name?cap_first}.DeepCopy().(<#if helper.needsPointerAccess(field)>*</#if>${helper.getLanguageTypeNameForTypeReference(field.type)}),
+		utils.DeepCopy[<#if helper.needsPointerAccess(field)>*</#if>${helper.getLanguageTypeNameForTypeReference(field.type)}](m.${field.name?cap_first}),
 		<#elseif field.type.isArrayTypeReference()>
 			<#assign arrayElementTypeRef=field.type.asArrayTypeReference().orElseThrow().elementTypeReference/>
 		utils.DeepCopySlice[${helper.getLanguageTypeNameForTypeReference(arrayElementTypeRef)}, ${helper.getLanguageTypeNameForTypeReference(arrayElementTypeRef)}](m.${field.name?cap_first}),
diff --git a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go
index 452c510d28..24a940f476 100644
--- a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go
+++ b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadRequest.go
@@ -310,7 +310,7 @@ func (m *_CIPEncapsulationReadRequest) deepCopy() *_CIPEncapsulationReadRequest
 	}
 	_CIPEncapsulationReadRequestCopy := &_CIPEncapsulationReadRequest{
 		m.CIPEncapsulationPacketContract.(*_CIPEncapsulationPacket).deepCopy(),
-		m.Request.DeepCopy().(DF1RequestMessage),
+		utils.DeepCopy[DF1RequestMessage](m.Request),
 	}
 	m.CIPEncapsulationPacketContract.(*_CIPEncapsulationPacket)._SubType = m
 	return _CIPEncapsulationReadRequestCopy
diff --git a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go
index a51f2c6ddb..59835f9f61 100644
--- a/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go
+++ b/plc4go/protocols/abeth/readwrite/model/CIPEncapsulationReadResponse.go
@@ -323,7 +323,7 @@ func (m *_CIPEncapsulationReadResponse) deepCopy() *_CIPEncapsulationReadRespons
 	}
 	_CIPEncapsulationReadResponseCopy := &_CIPEncapsulationReadResponse{
 		m.CIPEncapsulationPacketContract.(*_CIPEncapsulationPacket).deepCopy(),
-		m.Response.DeepCopy().(DF1ResponseMessage),
+		utils.DeepCopy[DF1ResponseMessage](m.Response),
 		m.PacketLen,
 	}
 	m.CIPEncapsulationPacketContract.(*_CIPEncapsulationPacket)._SubType = m
diff --git a/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go b/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go
index 1537d9813d..cf0dee9b80 100644
--- a/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go
+++ b/plc4go/protocols/abeth/readwrite/model/DF1CommandRequestMessage.go
@@ -308,7 +308,7 @@ func (m *_DF1CommandRequestMessage) deepCopy() *_DF1CommandRequestMessage {
 	}
 	_DF1CommandRequestMessageCopy := &_DF1CommandRequestMessage{
 		m.DF1RequestMessageContract.(*_DF1RequestMessage).deepCopy(),
-		m.Command.DeepCopy().(DF1RequestCommand),
+		utils.DeepCopy[DF1RequestCommand](m.Command),
 	}
 	m.DF1RequestMessageContract.(*_DF1RequestMessage)._SubType = m
 	return _DF1CommandRequestMessageCopy
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscovery.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscovery.go
index 36fcde556c..f594bd3411 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscovery.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscovery.go
@@ -440,7 +440,7 @@ func (m *_AdsDiscovery) deepCopy() *_AdsDiscovery {
 	_AdsDiscoveryCopy := &_AdsDiscovery{
 		m.RequestId,
 		m.Operation,
-		m.AmsNetId.DeepCopy().(AmsNetId),
+		utils.DeepCopy[AmsNetId](m.AmsNetId),
 		m.PortNumber,
 		utils.DeepCopySlice[AdsDiscoveryBlock, AdsDiscoveryBlock](m.Blocks),
 	}
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockAmsNetId.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockAmsNetId.go
index f843edb5e1..acc5286a32 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockAmsNetId.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockAmsNetId.go
@@ -337,7 +337,7 @@ func (m *_AdsDiscoveryBlockAmsNetId) deepCopy() *_AdsDiscoveryBlockAmsNetId {
 	}
 	_AdsDiscoveryBlockAmsNetIdCopy := &_AdsDiscoveryBlockAmsNetId{
 		m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock).deepCopy(),
-		m.AmsNetId.DeepCopy().(AmsNetId),
+		utils.DeepCopy[AmsNetId](m.AmsNetId),
 	}
 	m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock)._SubType = m
 	return _AdsDiscoveryBlockAmsNetIdCopy
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockHostName.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockHostName.go
index d8eb02c360..2717e0f419 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockHostName.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockHostName.go
@@ -308,7 +308,7 @@ func (m *_AdsDiscoveryBlockHostName) deepCopy() *_AdsDiscoveryBlockHostName {
 	}
 	_AdsDiscoveryBlockHostNameCopy := &_AdsDiscoveryBlockHostName{
 		m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock).deepCopy(),
-		m.HostName.DeepCopy().(AmsString),
+		utils.DeepCopy[AmsString](m.HostName),
 	}
 	m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock)._SubType = m
 	return _AdsDiscoveryBlockHostNameCopy
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockPassword.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockPassword.go
index 334ed7f6e6..aabe42aacb 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockPassword.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockPassword.go
@@ -308,7 +308,7 @@ func (m *_AdsDiscoveryBlockPassword) deepCopy() *_AdsDiscoveryBlockPassword {
 	}
 	_AdsDiscoveryBlockPasswordCopy := &_AdsDiscoveryBlockPassword{
 		m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock).deepCopy(),
-		m.Password.DeepCopy().(AmsString),
+		utils.DeepCopy[AmsString](m.Password),
 	}
 	m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock)._SubType = m
 	return _AdsDiscoveryBlockPasswordCopy
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockRouteName.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockRouteName.go
index b1f70d8e39..41f879a19b 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockRouteName.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockRouteName.go
@@ -308,7 +308,7 @@ func (m *_AdsDiscoveryBlockRouteName) deepCopy() *_AdsDiscoveryBlockRouteName {
 	}
 	_AdsDiscoveryBlockRouteNameCopy := &_AdsDiscoveryBlockRouteName{
 		m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock).deepCopy(),
-		m.RouteName.DeepCopy().(AmsString),
+		utils.DeepCopy[AmsString](m.RouteName),
 	}
 	m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock)._SubType = m
 	return _AdsDiscoveryBlockRouteNameCopy
diff --git a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockUserName.go b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockUserName.go
index 81c16a1488..0c22c0da7e 100644
--- a/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockUserName.go
+++ b/plc4go/protocols/ads/discovery/readwrite/model/AdsDiscoveryBlockUserName.go
@@ -308,7 +308,7 @@ func (m *_AdsDiscoveryBlockUserName) deepCopy() *_AdsDiscoveryBlockUserName {
 	}
 	_AdsDiscoveryBlockUserNameCopy := &_AdsDiscoveryBlockUserName{
 		m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock).deepCopy(),
-		m.UserName.DeepCopy().(AmsString),
+		utils.DeepCopy[AmsString](m.UserName),
 	}
 	m.AdsDiscoveryBlockContract.(*_AdsDiscoveryBlock)._SubType = m
 	return _AdsDiscoveryBlockUserNameCopy
diff --git a/plc4go/protocols/ads/readwrite/model/AmsPacket.go b/plc4go/protocols/ads/readwrite/model/AmsPacket.go
index 8310bfd064..c2eabcdbd0 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsPacket.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsPacket.go
@@ -1251,9 +1251,9 @@ func (m *_AmsPacket) deepCopy() *_AmsPacket {
 	}
 	_AmsPacketCopy := &_AmsPacket{
 		nil, // will be set by child
-		m.TargetAmsNetId.DeepCopy().(AmsNetId),
+		utils.DeepCopy[AmsNetId](m.TargetAmsNetId),
 		m.TargetAmsPort,
-		m.SourceAmsNetId.DeepCopy().(AmsNetId),
+		utils.DeepCopy[AmsNetId](m.SourceAmsNetId),
 		m.SourceAmsPort,
 		m.ErrorCode,
 		m.InvokeId,
diff --git a/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go b/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go
index fa5b115092..c91277c7c9 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsSerialFrame.go
@@ -446,7 +446,7 @@ func (m *_AmsSerialFrame) deepCopy() *_AmsSerialFrame {
 		m.ReceiverAddress,
 		m.FragmentNumber,
 		m.Length,
-		m.Userdata.DeepCopy().(AmsPacket),
+		utils.DeepCopy[AmsPacket](m.Userdata),
 		m.Crc,
 	}
 	return _AmsSerialFrameCopy
diff --git a/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go b/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go
index 8cdef966ce..6e39da9ab0 100644
--- a/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go
+++ b/plc4go/protocols/ads/readwrite/model/AmsTCPPacket.go
@@ -309,7 +309,7 @@ func (m *_AmsTCPPacket) deepCopy() *_AmsTCPPacket {
 		return nil
 	}
 	_AmsTCPPacketCopy := &_AmsTCPPacket{
-		m.Userdata.DeepCopy().(AmsPacket),
+		utils.DeepCopy[AmsPacket](m.Userdata),
 		m.reservedField0,
 	}
 	return _AmsTCPPacketCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go b/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go
index 13aa917378..176f8917e7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUAbort.go
@@ -381,7 +381,7 @@ func (m *_APDUAbort) deepCopy() *_APDUAbort {
 		m.APDUContract.(*_APDU).deepCopy(),
 		m.Server,
 		m.OriginalInvokeId,
-		m.AbortReason.DeepCopy().(BACnetAbortReasonTagged),
+		utils.DeepCopy[BACnetAbortReasonTagged](m.AbortReason),
 		m.reservedField0,
 	}
 	m.APDUContract.(*_APDU)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go b/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go
index 15c058612f..f0fd98cd1a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUComplexAck.go
@@ -608,7 +608,7 @@ func (m *_APDUComplexAck) deepCopy() *_APDUComplexAck {
 		m.OriginalInvokeId,
 		utils.CopyPtr[uint8](m.SequenceNumber),
 		utils.CopyPtr[uint8](m.ProposedWindowSize),
-		m.ServiceAck.DeepCopy().(BACnetServiceAck),
+		utils.DeepCopy[BACnetServiceAck](m.ServiceAck),
 		utils.CopyPtr[BACnetConfirmedServiceChoice](m.SegmentServiceChoice),
 		utils.DeepCopySlice[byte, byte](m.Segment),
 		m.reservedField0,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go b/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go
index 9491c1e208..69791e4fbe 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -695,7 +695,7 @@ func (m *_APDUConfirmedRequest) deepCopy() *_APDUConfirmedRequest {
 		m.InvokeId,
 		utils.CopyPtr[uint8](m.SequenceNumber),
 		utils.CopyPtr[uint8](m.ProposedWindowSize),
-		m.ServiceRequest.DeepCopy().(BACnetConfirmedServiceRequest),
+		utils.DeepCopy[BACnetConfirmedServiceRequest](m.ServiceRequest),
 		utils.CopyPtr[BACnetConfirmedServiceChoice](m.SegmentServiceChoice),
 		utils.DeepCopySlice[byte, byte](m.Segment),
 		m.reservedField0,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUError.go b/plc4go/protocols/bacnetip/readwrite/model/APDUError.go
index 465e811be5..49ee203056 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUError.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUError.go
@@ -381,7 +381,7 @@ func (m *_APDUError) deepCopy() *_APDUError {
 		m.APDUContract.(*_APDU).deepCopy(),
 		m.OriginalInvokeId,
 		m.ErrorChoice,
-		m.Error.DeepCopy().(BACnetError),
+		utils.DeepCopy[BACnetError](m.Error),
 		m.reservedField0,
 	}
 	m.APDUContract.(*_APDU)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go b/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go
index cfb1dc71b7..e6512ed95c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUReject.go
@@ -352,7 +352,7 @@ func (m *_APDUReject) deepCopy() *_APDUReject {
 	_APDURejectCopy := &_APDUReject{
 		m.APDUContract.(*_APDU).deepCopy(),
 		m.OriginalInvokeId,
-		m.RejectReason.DeepCopy().(BACnetRejectReasonTagged),
+		utils.DeepCopy[BACnetRejectReasonTagged](m.RejectReason),
 		m.reservedField0,
 	}
 	m.APDUContract.(*_APDU)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go b/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
index 77364ff645..5b88abdb7c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
@@ -323,7 +323,7 @@ func (m *_APDUUnconfirmedRequest) deepCopy() *_APDUUnconfirmedRequest {
 	}
 	_APDUUnconfirmedRequestCopy := &_APDUUnconfirmedRequest{
 		m.APDUContract.(*_APDU).deepCopy(),
-		m.ServiceRequest.DeepCopy().(BACnetUnconfirmedServiceRequest),
+		utils.DeepCopy[BACnetUnconfirmedServiceRequest](m.ServiceRequest),
 		m.reservedField0,
 	}
 	m.APDUContract.(*_APDU)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go
index 8d75b3c006..fa6a37c280 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessAuthenticationFactorDisableTagged.go
@@ -394,7 +394,7 @@ func (m *_BACnetAccessAuthenticationFactorDisableTagged) deepCopy() *_BACnetAcce
 		return nil
 	}
 	_BACnetAccessAuthenticationFactorDisableTaggedCopy := &_BACnetAccessAuthenticationFactorDisableTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go
index 51e00af52d..a79c91a86c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableReasonTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetAccessCredentialDisableReasonTagged) deepCopy() *_BACnetAccessCr
 		return nil
 	}
 	_BACnetAccessCredentialDisableReasonTaggedCopy := &_BACnetAccessCredentialDisableReasonTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go
index 9872ebdde8..91bd18ae44 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessCredentialDisableTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetAccessCredentialDisableTagged) deepCopy() *_BACnetAccessCredenti
 		return nil
 	}
 	_BACnetAccessCredentialDisableTaggedCopy := &_BACnetAccessCredentialDisableTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go
index a72010caea..6fb0aecd64 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessEventTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetAccessEventTagged) deepCopy() *_BACnetAccessEventTagged {
 		return nil
 	}
 	_BACnetAccessEventTaggedCopy := &_BACnetAccessEventTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go
index 0d666a3624..7b8bbd905a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessPassbackModeTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetAccessPassbackModeTagged) deepCopy() *_BACnetAccessPassbackModeT
 		return nil
 	}
 	_BACnetAccessPassbackModeTaggedCopy := &_BACnetAccessPassbackModeTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go
index 4f5215c667..94e221c5bf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRule.go
@@ -477,11 +477,11 @@ func (m *_BACnetAccessRule) deepCopy() *_BACnetAccessRule {
 		return nil
 	}
 	_BACnetAccessRuleCopy := &_BACnetAccessRule{
-		m.TimeRangeSpecifier.DeepCopy().(BACnetAccessRuleTimeRangeSpecifierTagged),
-		m.TimeRange.DeepCopy().(BACnetDeviceObjectPropertyReferenceEnclosed),
-		m.LocationSpecifier.DeepCopy().(BACnetAccessRuleLocationSpecifierTagged),
-		m.Location.DeepCopy().(BACnetDeviceObjectReferenceEnclosed),
-		m.Enable.DeepCopy().(BACnetContextTagBoolean),
+		utils.DeepCopy[BACnetAccessRuleTimeRangeSpecifierTagged](m.TimeRangeSpecifier),
+		utils.DeepCopy[BACnetDeviceObjectPropertyReferenceEnclosed](m.TimeRange),
+		utils.DeepCopy[BACnetAccessRuleLocationSpecifierTagged](m.LocationSpecifier),
+		utils.DeepCopy[BACnetDeviceObjectReferenceEnclosed](m.Location),
+		utils.DeepCopy[BACnetContextTagBoolean](m.Enable),
 	}
 	return _BACnetAccessRuleCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go
index 8ab17216ea..8bd342efbc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleLocationSpecifierTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetAccessRuleLocationSpecifierTagged) deepCopy() *_BACnetAccessRule
 		return nil
 	}
 	_BACnetAccessRuleLocationSpecifierTaggedCopy := &_BACnetAccessRuleLocationSpecifierTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go
index 36871f4090..c46e9c80cd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessRuleTimeRangeSpecifierTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetAccessRuleTimeRangeSpecifierTagged) deepCopy() *_BACnetAccessRul
 		return nil
 	}
 	_BACnetAccessRuleTimeRangeSpecifierTaggedCopy := &_BACnetAccessRuleTimeRangeSpecifierTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go
index 05f3d2ce49..cb3a400ab0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessThreatLevel.go
@@ -279,7 +279,7 @@ func (m *_BACnetAccessThreatLevel) deepCopy() *_BACnetAccessThreatLevel {
 		return nil
 	}
 	_BACnetAccessThreatLevelCopy := &_BACnetAccessThreatLevel{
-		m.ThreatLevel.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ThreatLevel),
 	}
 	return _BACnetAccessThreatLevelCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go
index 02c7a27f64..04cfd598d0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessUserTypeTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetAccessUserTypeTagged) deepCopy() *_BACnetAccessUserTypeTagged {
 		return nil
 	}
 	_BACnetAccessUserTypeTaggedCopy := &_BACnetAccessUserTypeTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go
index c3b0ff77ff..181fac3e80 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccessZoneOccupancyStateTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetAccessZoneOccupancyStateTagged) deepCopy() *_BACnetAccessZoneOcc
 		return nil
 	}
 	_BACnetAccessZoneOccupancyStateTaggedCopy := &_BACnetAccessZoneOccupancyStateTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go
index a85473e2a4..f9e7abffbd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecord.go
@@ -432,10 +432,10 @@ func (m *_BACnetAccumulatorRecord) deepCopy() *_BACnetAccumulatorRecord {
 		return nil
 	}
 	_BACnetAccumulatorRecordCopy := &_BACnetAccumulatorRecord{
-		m.Timestamp.DeepCopy().(BACnetDateTimeEnclosed),
-		m.PresentValue.DeepCopy().(BACnetContextTagSignedInteger),
-		m.AccumulatedValue.DeepCopy().(BACnetContextTagSignedInteger),
-		m.AccumulatorStatus.DeepCopy().(BACnetAccumulatorRecordAccumulatorStatusTagged),
+		utils.DeepCopy[BACnetDateTimeEnclosed](m.Timestamp),
+		utils.DeepCopy[BACnetContextTagSignedInteger](m.PresentValue),
+		utils.DeepCopy[BACnetContextTagSignedInteger](m.AccumulatedValue),
+		utils.DeepCopy[BACnetAccumulatorRecordAccumulatorStatusTagged](m.AccumulatorStatus),
 	}
 	return _BACnetAccumulatorRecordCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go
index 4cd4cd0f68..585420f8bc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAccumulatorRecordAccumulatorStatusTagged.go
@@ -334,7 +334,7 @@ func (m *_BACnetAccumulatorRecordAccumulatorStatusTagged) deepCopy() *_BACnetAcc
 		return nil
 	}
 	_BACnetAccumulatorRecordAccumulatorStatusTaggedCopy := &_BACnetAccumulatorRecordAccumulatorStatusTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go
index e6838ec700..ca403b2465 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionCommand.go
@@ -672,15 +672,15 @@ func (m *_BACnetActionCommand) deepCopy() *_BACnetActionCommand {
 		return nil
 	}
 	_BACnetActionCommandCopy := &_BACnetActionCommand{
-		m.DeviceIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.PropertyIdentifier.DeepCopy().(BACnetPropertyIdentifierTagged),
-		m.ArrayIndex.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.PropertyValue.DeepCopy().(BACnetConstructedData),
-		m.Priority.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.PostDelay.DeepCopy().(BACnetContextTagBoolean),
-		m.QuitOnFailure.DeepCopy().(BACnetContextTagBoolean),
-		m.WriteSuccessful.DeepCopy().(BACnetContextTagBoolean),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.DeviceIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
+		utils.DeepCopy[BACnetPropertyIdentifierTagged](m.PropertyIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.ArrayIndex),
+		utils.DeepCopy[BACnetConstructedData](m.PropertyValue),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.Priority),
+		utils.DeepCopy[BACnetContextTagBoolean](m.PostDelay),
+		utils.DeepCopy[BACnetContextTagBoolean](m.QuitOnFailure),
+		utils.DeepCopy[BACnetContextTagBoolean](m.WriteSuccessful),
 	}
 	return _BACnetActionCommandCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go
index 9a55bf658a..3e6291a69a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionList.go
@@ -361,9 +361,9 @@ func (m *_BACnetActionList) deepCopy() *_BACnetActionList {
 		return nil
 	}
 	_BACnetActionListCopy := &_BACnetActionList{
-		m.InnerOpeningTag.DeepCopy().(BACnetOpeningTag),
+		utils.DeepCopy[BACnetOpeningTag](m.InnerOpeningTag),
 		utils.DeepCopySlice[BACnetActionCommand, BACnetActionCommand](m.Action),
-		m.InnerClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetClosingTag](m.InnerClosingTag),
 	}
 	return _BACnetActionListCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go
index 735f87188b..8029b62a9b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetActionTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetActionTagged) deepCopy() *_BACnetActionTagged {
 		return nil
 	}
 	_BACnetActionTaggedCopy := &_BACnetActionTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go
index 9460628d6d..a93bdebcea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddress.go
@@ -405,8 +405,8 @@ func (m *_BACnetAddress) deepCopy() *_BACnetAddress {
 		return nil
 	}
 	_BACnetAddressCopy := &_BACnetAddress{
-		m.NetworkNumber.DeepCopy().(BACnetApplicationTagUnsignedInteger),
-		m.MacAddress.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NetworkNumber),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.MacAddress),
 	}
 	return _BACnetAddressCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go
index 14cd3e6967..e191f2f89a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressBinding.go
@@ -330,8 +330,8 @@ func (m *_BACnetAddressBinding) deepCopy() *_BACnetAddressBinding {
 		return nil
 	}
 	_BACnetAddressBindingCopy := &_BACnetAddressBinding{
-		m.DeviceIdentifier.DeepCopy().(BACnetApplicationTagObjectIdentifier),
-		m.DeviceAddress.DeepCopy().(BACnetAddress),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.DeviceIdentifier),
+		utils.DeepCopy[BACnetAddress](m.DeviceAddress),
 	}
 	return _BACnetAddressBindingCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go
index 24582734db..0f560ec6f6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAddressEnclosed.go
@@ -394,9 +394,9 @@ func (m *_BACnetAddressEnclosed) deepCopy() *_BACnetAddressEnclosed {
 		return nil
 	}
 	_BACnetAddressEnclosedCopy := &_BACnetAddressEnclosed{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.Address.DeepCopy().(BACnetAddress),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetAddress](m.Address),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetAddressEnclosedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go
index 24511a4943..d6c05ede34 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTag.go
@@ -743,7 +743,7 @@ func (m *_BACnetApplicationTag) deepCopy() *_BACnetApplicationTag {
 	}
 	_BACnetApplicationTagCopy := &_BACnetApplicationTag{
 		nil, // will be set by child
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 	}
 	return _BACnetApplicationTagCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
index aab79f374d..1e8ad7944b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBitString.go
@@ -304,7 +304,7 @@ func (m *_BACnetApplicationTagBitString) deepCopy() *_BACnetApplicationTagBitStr
 	}
 	_BACnetApplicationTagBitStringCopy := &_BACnetApplicationTagBitString{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadBitString),
+		utils.DeepCopy[BACnetTagPayloadBitString](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagBitStringCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
index 85581e2311..ac0f9728f0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagBoolean.go
@@ -335,7 +335,7 @@ func (m *_BACnetApplicationTagBoolean) deepCopy() *_BACnetApplicationTagBoolean
 	}
 	_BACnetApplicationTagBooleanCopy := &_BACnetApplicationTagBoolean{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadBoolean),
+		utils.DeepCopy[BACnetTagPayloadBoolean](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagBooleanCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
index 3257907702..a2fbde523a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagCharacterString.go
@@ -335,7 +335,7 @@ func (m *_BACnetApplicationTagCharacterString) deepCopy() *_BACnetApplicationTag
 	}
 	_BACnetApplicationTagCharacterStringCopy := &_BACnetApplicationTagCharacterString{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadCharacterString),
+		utils.DeepCopy[BACnetTagPayloadCharacterString](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagCharacterStringCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go
index 4a71b3b3aa..6600b93d59 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDate.go
@@ -304,7 +304,7 @@ func (m *_BACnetApplicationTagDate) deepCopy() *_BACnetApplicationTagDate {
 	}
 	_BACnetApplicationTagDateCopy := &_BACnetApplicationTagDate{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadDate),
+		utils.DeepCopy[BACnetTagPayloadDate](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagDateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
index b6ade7006c..9867ca07de 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagDouble.go
@@ -335,7 +335,7 @@ func (m *_BACnetApplicationTagDouble) deepCopy() *_BACnetApplicationTagDouble {
 	}
 	_BACnetApplicationTagDoubleCopy := &_BACnetApplicationTagDouble{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadDouble),
+		utils.DeepCopy[BACnetTagPayloadDouble](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagDoubleCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
index 2fdf32b970..23e8b63611 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagEnumerated.go
@@ -335,7 +335,7 @@ func (m *_BACnetApplicationTagEnumerated) deepCopy() *_BACnetApplicationTagEnume
 	}
 	_BACnetApplicationTagEnumeratedCopy := &_BACnetApplicationTagEnumerated{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadEnumerated),
+		utils.DeepCopy[BACnetTagPayloadEnumerated](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagEnumeratedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
index eb4ba66f1f..6bb87cbe8e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagObjectIdentifier.go
@@ -357,7 +357,7 @@ func (m *_BACnetApplicationTagObjectIdentifier) deepCopy() *_BACnetApplicationTa
 	}
 	_BACnetApplicationTagObjectIdentifierCopy := &_BACnetApplicationTagObjectIdentifier{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadObjectIdentifier),
+		utils.DeepCopy[BACnetTagPayloadObjectIdentifier](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagObjectIdentifierCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
index 0ab1b0e983..2069ed1953 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagOctetString.go
@@ -304,7 +304,7 @@ func (m *_BACnetApplicationTagOctetString) deepCopy() *_BACnetApplicationTagOcte
 	}
 	_BACnetApplicationTagOctetStringCopy := &_BACnetApplicationTagOctetString{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadOctetString),
+		utils.DeepCopy[BACnetTagPayloadOctetString](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagOctetStringCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go
index 48c8203cf5..f440bb58b5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagReal.go
@@ -335,7 +335,7 @@ func (m *_BACnetApplicationTagReal) deepCopy() *_BACnetApplicationTagReal {
 	}
 	_BACnetApplicationTagRealCopy := &_BACnetApplicationTagReal{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadReal),
+		utils.DeepCopy[BACnetTagPayloadReal](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagRealCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
index 7257955a0c..27ac6b2495 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go
@@ -335,7 +335,7 @@ func (m *_BACnetApplicationTagSignedInteger) deepCopy() *_BACnetApplicationTagSi
 	}
 	_BACnetApplicationTagSignedIntegerCopy := &_BACnetApplicationTagSignedInteger{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadSignedInteger),
+		utils.DeepCopy[BACnetTagPayloadSignedInteger](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagSignedIntegerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go
index 332fbbc748..7f97fa69e7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagTime.go
@@ -304,7 +304,7 @@ func (m *_BACnetApplicationTagTime) deepCopy() *_BACnetApplicationTagTime {
 	}
 	_BACnetApplicationTagTimeCopy := &_BACnetApplicationTagTime{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadTime),
+		utils.DeepCopy[BACnetTagPayloadTime](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
index 4a38507d61..872e29cc98 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagUnsignedInteger.go
@@ -335,7 +335,7 @@ func (m *_BACnetApplicationTagUnsignedInteger) deepCopy() *_BACnetApplicationTag
 	}
 	_BACnetApplicationTagUnsignedIntegerCopy := &_BACnetApplicationTagUnsignedInteger{
 		m.BACnetApplicationTagContract.(*_BACnetApplicationTag).deepCopy(),
-		m.Payload.DeepCopy().(BACnetTagPayloadUnsignedInteger),
+		utils.DeepCopy[BACnetTagPayloadUnsignedInteger](m.Payload),
 	}
 	m.BACnetApplicationTagContract.(*_BACnetApplicationTag)._SubType = m
 	return _BACnetApplicationTagUnsignedIntegerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go
index a17d1e1c1f..3dc2e243b6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedAccessRights.go
@@ -330,8 +330,8 @@ func (m *_BACnetAssignedAccessRights) deepCopy() *_BACnetAssignedAccessRights {
 		return nil
 	}
 	_BACnetAssignedAccessRightsCopy := &_BACnetAssignedAccessRights{
-		m.AssignedAccessRights.DeepCopy().(BACnetDeviceObjectReferenceEnclosed),
-		m.Enable.DeepCopy().(BACnetContextTagBoolean),
+		utils.DeepCopy[BACnetDeviceObjectReferenceEnclosed](m.AssignedAccessRights),
+		utils.DeepCopy[BACnetContextTagBoolean](m.Enable),
 	}
 	return _BACnetAssignedAccessRightsCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go
index 152c7e25e2..8cc3330779 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCalls.go
@@ -279,7 +279,7 @@ func (m *_BACnetAssignedLandingCalls) deepCopy() *_BACnetAssignedLandingCalls {
 		return nil
 	}
 	_BACnetAssignedLandingCallsCopy := &_BACnetAssignedLandingCalls{
-		m.LandingCalls.DeepCopy().(BACnetAssignedLandingCallsLandingCallsList),
+		utils.DeepCopy[BACnetAssignedLandingCallsLandingCallsList](m.LandingCalls),
 	}
 	return _BACnetAssignedLandingCallsCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go
index d66deaafaf..1dd2130c18 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsList.go
@@ -375,9 +375,9 @@ func (m *_BACnetAssignedLandingCallsLandingCallsList) deepCopy() *_BACnetAssigne
 		return nil
 	}
 	_BACnetAssignedLandingCallsLandingCallsListCopy := &_BACnetAssignedLandingCallsLandingCallsList{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
 		utils.DeepCopySlice[BACnetAssignedLandingCallsLandingCallsListEntry, BACnetAssignedLandingCallsLandingCallsListEntry](m.LandingCalls),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetAssignedLandingCallsLandingCallsListCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go
index 3d206f18d8..ae7fac70ab 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAssignedLandingCallsLandingCallsListEntry.go
@@ -331,8 +331,8 @@ func (m *_BACnetAssignedLandingCallsLandingCallsListEntry) deepCopy() *_BACnetAs
 		return nil
 	}
 	_BACnetAssignedLandingCallsLandingCallsListEntryCopy := &_BACnetAssignedLandingCallsLandingCallsListEntry{
-		m.FloorNumber.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.Direction.DeepCopy().(BACnetLiftCarDirectionTagged),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.FloorNumber),
+		utils.DeepCopy[BACnetLiftCarDirectionTagged](m.Direction),
 	}
 	return _BACnetAssignedLandingCallsLandingCallsListEntryCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go
index 7771cf247d..4fb971a18a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactor.go
@@ -381,9 +381,9 @@ func (m *_BACnetAuthenticationFactor) deepCopy() *_BACnetAuthenticationFactor {
 		return nil
 	}
 	_BACnetAuthenticationFactorCopy := &_BACnetAuthenticationFactor{
-		m.FormatType.DeepCopy().(BACnetAuthenticationFactorTypeTagged),
-		m.FormatClass.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.Value.DeepCopy().(BACnetContextTagOctetString),
+		utils.DeepCopy[BACnetAuthenticationFactorTypeTagged](m.FormatType),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.FormatClass),
+		utils.DeepCopy[BACnetContextTagOctetString](m.Value),
 	}
 	return _BACnetAuthenticationFactorCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go
index da0716694c..9abed1bb7a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorEnclosed.go
@@ -394,9 +394,9 @@ func (m *_BACnetAuthenticationFactorEnclosed) deepCopy() *_BACnetAuthenticationF
 		return nil
 	}
 	_BACnetAuthenticationFactorEnclosedCopy := &_BACnetAuthenticationFactorEnclosed{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.AuthenticationFactor.DeepCopy().(BACnetAuthenticationFactor),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetAuthenticationFactor](m.AuthenticationFactor),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetAuthenticationFactorEnclosedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go
index 2130aea5d9..0c72315650 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorFormat.go
@@ -375,9 +375,9 @@ func (m *_BACnetAuthenticationFactorFormat) deepCopy() *_BACnetAuthenticationFac
 		return nil
 	}
 	_BACnetAuthenticationFactorFormatCopy := &_BACnetAuthenticationFactorFormat{
-		m.FormatType.DeepCopy().(BACnetAuthenticationFactorTypeTagged),
-		m.VendorId.DeepCopy().(BACnetVendorIdTagged),
-		m.VendorFormat.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetAuthenticationFactorTypeTagged](m.FormatType),
+		utils.DeepCopy[BACnetVendorIdTagged](m.VendorId),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.VendorFormat),
 	}
 	return _BACnetAuthenticationFactorFormatCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go
index 8f220188af..410b029502 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationFactorTypeTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetAuthenticationFactorTypeTagged) deepCopy() *_BACnetAuthenticatio
 		return nil
 	}
 	_BACnetAuthenticationFactorTypeTaggedCopy := &_BACnetAuthenticationFactorTypeTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go
index cdbadf10c6..0dbb1dd477 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicy.go
@@ -381,9 +381,9 @@ func (m *_BACnetAuthenticationPolicy) deepCopy() *_BACnetAuthenticationPolicy {
 		return nil
 	}
 	_BACnetAuthenticationPolicyCopy := &_BACnetAuthenticationPolicy{
-		m.Policy.DeepCopy().(BACnetAuthenticationPolicyList),
-		m.OrderEnforced.DeepCopy().(BACnetContextTagBoolean),
-		m.Timeout.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetAuthenticationPolicyList](m.Policy),
+		utils.DeepCopy[BACnetContextTagBoolean](m.OrderEnforced),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.Timeout),
 	}
 	return _BACnetAuthenticationPolicyCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go
index 3e81a51bff..7e6c292373 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyList.go
@@ -374,9 +374,9 @@ func (m *_BACnetAuthenticationPolicyList) deepCopy() *_BACnetAuthenticationPolic
 		return nil
 	}
 	_BACnetAuthenticationPolicyListCopy := &_BACnetAuthenticationPolicyList{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
 		utils.DeepCopySlice[BACnetAuthenticationPolicyListEntry, BACnetAuthenticationPolicyListEntry](m.Entries),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetAuthenticationPolicyListCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go
index 7099a4149c..34f3804b3e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationPolicyListEntry.go
@@ -330,8 +330,8 @@ func (m *_BACnetAuthenticationPolicyListEntry) deepCopy() *_BACnetAuthentication
 		return nil
 	}
 	_BACnetAuthenticationPolicyListEntryCopy := &_BACnetAuthenticationPolicyListEntry{
-		m.CredentialDataInput.DeepCopy().(BACnetDeviceObjectReferenceEnclosed),
-		m.Index.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetDeviceObjectReferenceEnclosed](m.CredentialDataInput),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.Index),
 	}
 	return _BACnetAuthenticationPolicyListEntryCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go
index 526027e42b..e503d0ab4b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthenticationStatusTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetAuthenticationStatusTagged) deepCopy() *_BACnetAuthenticationSta
 		return nil
 	}
 	_BACnetAuthenticationStatusTaggedCopy := &_BACnetAuthenticationStatusTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go
index 30ba462623..2030ae27f0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationExemptionTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetAuthorizationExemptionTagged) deepCopy() *_BACnetAuthorizationEx
 		return nil
 	}
 	_BACnetAuthorizationExemptionTaggedCopy := &_BACnetAuthorizationExemptionTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go
index 8894e04a6e..dfa62f9235 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetAuthorizationModeTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetAuthorizationModeTagged) deepCopy() *_BACnetAuthorizationModeTag
 		return nil
 	}
 	_BACnetAuthorizationModeTaggedCopy := &_BACnetAuthorizationModeTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go
index d35a9884f5..77d14fd9c9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBDTEntry.go
@@ -327,8 +327,8 @@ func (m *_BACnetBDTEntry) deepCopy() *_BACnetBDTEntry {
 		return nil
 	}
 	_BACnetBDTEntryCopy := &_BACnetBDTEntry{
-		m.BbmdAddress.DeepCopy().(BACnetHostNPortEnclosed),
-		m.BroadcastMask.DeepCopy().(BACnetContextTagOctetString),
+		utils.DeepCopy[BACnetHostNPortEnclosed](m.BbmdAddress),
+		utils.DeepCopy[BACnetContextTagOctetString](m.BroadcastMask),
 	}
 	return _BACnetBDTEntryCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go
index 6933ffedfa..acd5930642 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBackupStateTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetBackupStateTagged) deepCopy() *_BACnetBackupStateTagged {
 		return nil
 	}
 	_BACnetBackupStateTaggedCopy := &_BACnetBackupStateTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go
index 411aa5972c..c24d66899e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryLightingPVTagged.go
@@ -393,7 +393,7 @@ func (m *_BACnetBinaryLightingPVTagged) deepCopy() *_BACnetBinaryLightingPVTagge
 		return nil
 	}
 	_BACnetBinaryLightingPVTaggedCopy := &_BACnetBinaryLightingPVTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.ProprietaryValue,
 		m.TagNumber,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go
index c814065cb9..05543485bb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetBinaryPVTagged.go
@@ -333,7 +333,7 @@ func (m *_BACnetBinaryPVTagged) deepCopy() *_BACnetBinaryPVTagged {
 		return nil
 	}
 	_BACnetBinaryPVTaggedCopy := &_BACnetBinaryPVTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go
index 8b070b6642..f8969bff7d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscription.go
@@ -483,11 +483,11 @@ func (m *_BACnetCOVMultipleSubscription) deepCopy() *_BACnetCOVMultipleSubscript
 		return nil
 	}
 	_BACnetCOVMultipleSubscriptionCopy := &_BACnetCOVMultipleSubscription{
-		m.Recipient.DeepCopy().(BACnetRecipientProcessEnclosed),
-		m.IssueConfirmedNotifications.DeepCopy().(BACnetContextTagBoolean),
-		m.TimeRemaining.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.MaxNotificationDelay.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ListOfCovSubscriptionSpecification.DeepCopy().(BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification),
+		utils.DeepCopy[BACnetRecipientProcessEnclosed](m.Recipient),
+		utils.DeepCopy[BACnetContextTagBoolean](m.IssueConfirmedNotifications),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.TimeRemaining),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.MaxNotificationDelay),
+		utils.DeepCopy[BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification](m.ListOfCovSubscriptionSpecification),
 	}
 	return _BACnetCOVMultipleSubscriptionCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go
index 317eac56df..ddd4a47463 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification.go
@@ -375,9 +375,9 @@ func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification) deepC
 		return nil
 	}
 	_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationCopy := &_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecification{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
 		utils.DeepCopySlice[BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry, BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry](m.ListOfCovSubscriptionSpecificationEntry),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go
index d95625d99d..b525b35a77 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry.go
@@ -331,8 +331,8 @@ func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry)
 		return nil
 	}
 	_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryCopy := &_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntry{
-		m.MonitoredObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.ListOfCovReferences.DeepCopy().(BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.MonitoredObjectIdentifier),
+		utils.DeepCopy[BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences](m.ListOfCovReferences),
 	}
 	return _BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go
index 205da5db20..79346526ce 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences.go
@@ -375,9 +375,9 @@ func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryLi
 		return nil
 	}
 	_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesCopy := &_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferences{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
 		utils.DeepCopySlice[BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry, BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry](m.ListOfCovReferences),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go
index 10e2b87661..d924af2f44 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry.go
@@ -379,9 +379,9 @@ func (m *_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryLi
 		return nil
 	}
 	_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntryCopy := &_BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntry{
-		m.MonitoredProperty.DeepCopy().(BACnetPropertyReferenceEnclosed),
-		m.CovIncrement.DeepCopy().(BACnetContextTagReal),
-		m.Timestamped.DeepCopy().(BACnetContextTagBoolean),
+		utils.DeepCopy[BACnetPropertyReferenceEnclosed](m.MonitoredProperty),
+		utils.DeepCopy[BACnetContextTagReal](m.CovIncrement),
+		utils.DeepCopy[BACnetContextTagBoolean](m.Timestamped),
 	}
 	return _BACnetCOVMultipleSubscriptionListOfCovSubscriptionSpecificationEntryListOfCovReferencesEntryCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go
index 2d88eedc8f..12c8a925c8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCOVSubscription.go
@@ -480,11 +480,11 @@ func (m *_BACnetCOVSubscription) deepCopy() *_BACnetCOVSubscription {
 		return nil
 	}
 	_BACnetCOVSubscriptionCopy := &_BACnetCOVSubscription{
-		m.Recipient.DeepCopy().(BACnetRecipientProcessEnclosed),
-		m.MonitoredPropertyReference.DeepCopy().(BACnetObjectPropertyReferenceEnclosed),
-		m.IssueConfirmedNotifications.DeepCopy().(BACnetContextTagBoolean),
-		m.TimeRemaining.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.CovIncrement.DeepCopy().(BACnetContextTagReal),
+		utils.DeepCopy[BACnetRecipientProcessEnclosed](m.Recipient),
+		utils.DeepCopy[BACnetObjectPropertyReferenceEnclosed](m.MonitoredPropertyReference),
+		utils.DeepCopy[BACnetContextTagBoolean](m.IssueConfirmedNotifications),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.TimeRemaining),
+		utils.DeepCopy[BACnetContextTagReal](m.CovIncrement),
 	}
 	return _BACnetCOVSubscriptionCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go
index eb85c7c912..1a013f6b93 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntry.go
@@ -463,7 +463,7 @@ func (m *_BACnetCalendarEntry) deepCopy() *_BACnetCalendarEntry {
 	}
 	_BACnetCalendarEntryCopy := &_BACnetCalendarEntry{
 		nil, // will be set by child
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
 	}
 	return _BACnetCalendarEntryCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go
index 312a3e9066..15cf1b3f58 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDate.go
@@ -304,7 +304,7 @@ func (m *_BACnetCalendarEntryDate) deepCopy() *_BACnetCalendarEntryDate {
 	}
 	_BACnetCalendarEntryDateCopy := &_BACnetCalendarEntryDate{
 		m.BACnetCalendarEntryContract.(*_BACnetCalendarEntry).deepCopy(),
-		m.DateValue.DeepCopy().(BACnetContextTagDate),
+		utils.DeepCopy[BACnetContextTagDate](m.DateValue),
 	}
 	m.BACnetCalendarEntryContract.(*_BACnetCalendarEntry)._SubType = m
 	return _BACnetCalendarEntryDateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go
index d79c391c21..61ff98894d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryDateRange.go
@@ -304,7 +304,7 @@ func (m *_BACnetCalendarEntryDateRange) deepCopy() *_BACnetCalendarEntryDateRang
 	}
 	_BACnetCalendarEntryDateRangeCopy := &_BACnetCalendarEntryDateRange{
 		m.BACnetCalendarEntryContract.(*_BACnetCalendarEntry).deepCopy(),
-		m.DateRange.DeepCopy().(BACnetDateRangeEnclosed),
+		utils.DeepCopy[BACnetDateRangeEnclosed](m.DateRange),
 	}
 	m.BACnetCalendarEntryContract.(*_BACnetCalendarEntry)._SubType = m
 	return _BACnetCalendarEntryDateRangeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go
index be73907eac..c5769173f8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryEnclosed.go
@@ -394,9 +394,9 @@ func (m *_BACnetCalendarEntryEnclosed) deepCopy() *_BACnetCalendarEntryEnclosed
 		return nil
 	}
 	_BACnetCalendarEntryEnclosedCopy := &_BACnetCalendarEntryEnclosed{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.CalendarEntry.DeepCopy().(BACnetCalendarEntry),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetCalendarEntry](m.CalendarEntry),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetCalendarEntryEnclosedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go
index a6e977919a..4547f61149 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetCalendarEntryWeekNDay.go
@@ -304,7 +304,7 @@ func (m *_BACnetCalendarEntryWeekNDay) deepCopy() *_BACnetCalendarEntryWeekNDay
 	}
 	_BACnetCalendarEntryWeekNDayCopy := &_BACnetCalendarEntryWeekNDay{
 		m.BACnetCalendarEntryContract.(*_BACnetCalendarEntry).deepCopy(),
-		m.WeekNDay.DeepCopy().(BACnetWeekNDayTagged),
+		utils.DeepCopy[BACnetWeekNDayTagged](m.WeekNDay),
 	}
 	m.BACnetCalendarEntryContract.(*_BACnetCalendarEntry)._SubType = m
 	return _BACnetCalendarEntryWeekNDayCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go
index 87f3cf7f65..48e7c28096 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValue.go
@@ -763,7 +763,7 @@ func (m *_BACnetChannelValue) deepCopy() *_BACnetChannelValue {
 	}
 	_BACnetChannelValueCopy := &_BACnetChannelValue{
 		nil, // will be set by child
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
 	}
 	return _BACnetChannelValueCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go
index 91b8172b5f..e8a2e74e3b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBitString.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueBitString) deepCopy() *_BACnetChannelValueBitString
 	}
 	_BACnetChannelValueBitStringCopy := &_BACnetChannelValueBitString{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.BitStringValue.DeepCopy().(BACnetApplicationTagBitString),
+		utils.DeepCopy[BACnetApplicationTagBitString](m.BitStringValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueBitStringCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go
index 0b45f57f82..37f7c14e8e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueBoolean.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueBoolean) deepCopy() *_BACnetChannelValueBoolean {
 	}
 	_BACnetChannelValueBooleanCopy := &_BACnetChannelValueBoolean{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.BooleanValue.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.BooleanValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueBooleanCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go
index 9c1923e3e1..878f2842fa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueCharacterString.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueCharacterString) deepCopy() *_BACnetChannelValueChar
 	}
 	_BACnetChannelValueCharacterStringCopy := &_BACnetChannelValueCharacterString{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.CharacterStringValue.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.CharacterStringValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueCharacterStringCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go
index e4ba5d113f..196db66f59 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDate.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueDate) deepCopy() *_BACnetChannelValueDate {
 	}
 	_BACnetChannelValueDateCopy := &_BACnetChannelValueDate{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.DateValue.DeepCopy().(BACnetApplicationTagDate),
+		utils.DeepCopy[BACnetApplicationTagDate](m.DateValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueDateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go
index f1c93db5fa..09ecc15346 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueDouble.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueDouble) deepCopy() *_BACnetChannelValueDouble {
 	}
 	_BACnetChannelValueDoubleCopy := &_BACnetChannelValueDouble{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.DoubleValue.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.DoubleValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueDoubleCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go
index 55861e877d..6559801dfe 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueEnumerated.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueEnumerated) deepCopy() *_BACnetChannelValueEnumerate
 	}
 	_BACnetChannelValueEnumeratedCopy := &_BACnetChannelValueEnumerated{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.EnumeratedValue.DeepCopy().(BACnetApplicationTagEnumerated),
+		utils.DeepCopy[BACnetApplicationTagEnumerated](m.EnumeratedValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueEnumeratedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go
index 2c485170bb..f2da12b6c6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueInteger.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueInteger) deepCopy() *_BACnetChannelValueInteger {
 	}
 	_BACnetChannelValueIntegerCopy := &_BACnetChannelValueInteger{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.IntegerValue.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.IntegerValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueIntegerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go
index eca264aa2d..8eef49e908 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueLightingCommand.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueLightingCommand) deepCopy() *_BACnetChannelValueLigh
 	}
 	_BACnetChannelValueLightingCommandCopy := &_BACnetChannelValueLightingCommand{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.LigthingCommandValue.DeepCopy().(BACnetLightingCommandEnclosed),
+		utils.DeepCopy[BACnetLightingCommandEnclosed](m.LigthingCommandValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueLightingCommandCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go
index 3644eb1e0f..179a28410c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueNull.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueNull) deepCopy() *_BACnetChannelValueNull {
 	}
 	_BACnetChannelValueNullCopy := &_BACnetChannelValueNull{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.NullValue.DeepCopy().(BACnetApplicationTagNull),
+		utils.DeepCopy[BACnetApplicationTagNull](m.NullValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueNullCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go
index f899479d0d..5ab61820d9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueObjectidentifier.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueObjectidentifier) deepCopy() *_BACnetChannelValueObj
 	}
 	_BACnetChannelValueObjectidentifierCopy := &_BACnetChannelValueObjectidentifier{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.ObjectidentifierValue.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.ObjectidentifierValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueObjectidentifierCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go
index 85d3ad1ea1..e016cb3345 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueOctetString.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueOctetString) deepCopy() *_BACnetChannelValueOctetStr
 	}
 	_BACnetChannelValueOctetStringCopy := &_BACnetChannelValueOctetString{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.OctetStringValue.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.OctetStringValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueOctetStringCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go
index dd895a2e89..a53a14775e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueReal.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueReal) deepCopy() *_BACnetChannelValueReal {
 	}
 	_BACnetChannelValueRealCopy := &_BACnetChannelValueReal{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.RealValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.RealValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueRealCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go
index acf260ac0d..e79265eaf5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueTime.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueTime) deepCopy() *_BACnetChannelValueTime {
 	}
 	_BACnetChannelValueTimeCopy := &_BACnetChannelValueTime{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.TimeValue.DeepCopy().(BACnetApplicationTagTime),
+		utils.DeepCopy[BACnetApplicationTagTime](m.TimeValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go
index ddedcaa167..78b50483a4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetChannelValueUnsigned.go
@@ -304,7 +304,7 @@ func (m *_BACnetChannelValueUnsigned) deepCopy() *_BACnetChannelValueUnsigned {
 	}
 	_BACnetChannelValueUnsignedCopy := &_BACnetChannelValueUnsigned{
 		m.BACnetChannelValueContract.(*_BACnetChannelValue).deepCopy(),
-		m.UnsignedValue.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.UnsignedValue),
 	}
 	m.BACnetChannelValueContract.(*_BACnetChannelValue)._SubType = m
 	return _BACnetChannelValueUnsignedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go
index 866f9a56f5..f905fbe575 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOV.go
@@ -433,7 +433,7 @@ func (m *_BACnetClientCOV) deepCopy() *_BACnetClientCOV {
 	}
 	_BACnetClientCOVCopy := &_BACnetClientCOV{
 		nil, // will be set by child
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
 	}
 	return _BACnetClientCOVCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go
index afa0db300e..7d7a3bfb0f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVNone.go
@@ -304,7 +304,7 @@ func (m *_BACnetClientCOVNone) deepCopy() *_BACnetClientCOVNone {
 	}
 	_BACnetClientCOVNoneCopy := &_BACnetClientCOVNone{
 		m.BACnetClientCOVContract.(*_BACnetClientCOV).deepCopy(),
-		m.DefaultIncrement.DeepCopy().(BACnetApplicationTagNull),
+		utils.DeepCopy[BACnetApplicationTagNull](m.DefaultIncrement),
 	}
 	m.BACnetClientCOVContract.(*_BACnetClientCOV)._SubType = m
 	return _BACnetClientCOVNoneCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go
index e37cbdb77c..b4fb7be3bf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClientCOVObject.go
@@ -304,7 +304,7 @@ func (m *_BACnetClientCOVObject) deepCopy() *_BACnetClientCOVObject {
 	}
 	_BACnetClientCOVObjectCopy := &_BACnetClientCOVObject{
 		m.BACnetClientCOVContract.(*_BACnetClientCOV).deepCopy(),
-		m.RealIncrement.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.RealIncrement),
 	}
 	m.BACnetClientCOVContract.(*_BACnetClientCOV)._SubType = m
 	return _BACnetClientCOVObjectCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go
index aa902580d5..0c9f479acc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetClosingTag.go
@@ -307,7 +307,7 @@ func (m *_BACnetClosingTag) deepCopy() *_BACnetClosingTag {
 		return nil
 	}
 	_BACnetClosingTagCopy := &_BACnetClosingTag{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.TagNumberArgument,
 	}
 	return _BACnetClosingTagCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
index f625f16648..e11018ef19 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -569,12 +569,12 @@ func (m *_BACnetConfirmedServiceRequestAcknowledgeAlarm) deepCopy() *_BACnetConf
 	}
 	_BACnetConfirmedServiceRequestAcknowledgeAlarmCopy := &_BACnetConfirmedServiceRequestAcknowledgeAlarm{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.AcknowledgingProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.EventObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.EventStateAcknowledged.DeepCopy().(BACnetEventStateTagged),
-		m.Timestamp.DeepCopy().(BACnetTimeStampEnclosed),
-		m.AcknowledgmentSource.DeepCopy().(BACnetContextTagCharacterString),
-		m.TimeOfAcknowledgment.DeepCopy().(BACnetTimeStampEnclosed),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.AcknowledgingProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.EventObjectIdentifier),
+		utils.DeepCopy[BACnetEventStateTagged](m.EventStateAcknowledged),
+		utils.DeepCopy[BACnetTimeStampEnclosed](m.Timestamp),
+		utils.DeepCopy[BACnetContextTagCharacterString](m.AcknowledgmentSource),
+		utils.DeepCopy[BACnetTimeStampEnclosed](m.TimeOfAcknowledgment),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestAcknowledgeAlarmCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
index 4abce29760..7b4c148e3e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
@@ -459,10 +459,10 @@ func (m *_BACnetConfirmedServiceRequestAddListElement) deepCopy() *_BACnetConfir
 	}
 	_BACnetConfirmedServiceRequestAddListElementCopy := &_BACnetConfirmedServiceRequestAddListElement{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.PropertyIdentifier.DeepCopy().(BACnetPropertyIdentifierTagged),
-		m.ArrayIndex.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ListOfElements.DeepCopy().(BACnetConstructedData),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
+		utils.DeepCopy[BACnetPropertyIdentifierTagged](m.PropertyIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.ArrayIndex),
+		utils.DeepCopy[BACnetConstructedData](m.ListOfElements),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestAddListElementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
index 307075cc83..57f8abf67e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
@@ -361,8 +361,8 @@ func (m *_BACnetConfirmedServiceRequestAtomicReadFile) deepCopy() *_BACnetConfir
 	}
 	_BACnetConfirmedServiceRequestAtomicReadFileCopy := &_BACnetConfirmedServiceRequestAtomicReadFile{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.FileIdentifier.DeepCopy().(BACnetApplicationTagObjectIdentifier),
-		m.AccessMethod.DeepCopy().(BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.FileIdentifier),
+		utils.DeepCopy[BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord](m.AccessMethod),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestAtomicReadFileCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
index 33af2f313d..2c49260c5e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileRecord.go
@@ -357,8 +357,8 @@ func (m *_BACnetConfirmedServiceRequestAtomicReadFileRecord) deepCopy() *_BACnet
 	}
 	_BACnetConfirmedServiceRequestAtomicReadFileRecordCopy := &_BACnetConfirmedServiceRequestAtomicReadFileRecord{
 		m.BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordContract.(*_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord).deepCopy(),
-		m.FileStartRecord.DeepCopy().(BACnetApplicationTagSignedInteger),
-		m.RequestRecordCount.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.FileStartRecord),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RequestRecordCount),
 	}
 	m.BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordContract.(*_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord)._SubType = m
 	return _BACnetConfirmedServiceRequestAtomicReadFileRecordCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
index 20e65be345..45999767a3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStream.go
@@ -357,8 +357,8 @@ func (m *_BACnetConfirmedServiceRequestAtomicReadFileStream) deepCopy() *_BACnet
 	}
 	_BACnetConfirmedServiceRequestAtomicReadFileStreamCopy := &_BACnetConfirmedServiceRequestAtomicReadFileStream{
 		m.BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordContract.(*_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord).deepCopy(),
-		m.FileStartPosition.DeepCopy().(BACnetApplicationTagSignedInteger),
-		m.RequestOctetCount.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.FileStartPosition),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RequestOctetCount),
 	}
 	m.BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordContract.(*_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord)._SubType = m
 	return _BACnetConfirmedServiceRequestAtomicReadFileStreamCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
index ee8b3607ec..2f91a6bddf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord.go
@@ -536,9 +536,9 @@ func (m *_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord) deepCopy()
 	}
 	_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordCopy := &_BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecord{
 		nil, // will be set by child
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 	}
 	return _BACnetConfirmedServiceRequestAtomicReadFileStreamOrRecordCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
index 876f8994f0..65d2dbceb1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
@@ -511,11 +511,11 @@ func (m *_BACnetConfirmedServiceRequestAtomicWriteFile) deepCopy() *_BACnetConfi
 	}
 	_BACnetConfirmedServiceRequestAtomicWriteFileCopy := &_BACnetConfirmedServiceRequestAtomicWriteFile{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.DeviceIdentifier.DeepCopy().(BACnetApplicationTagObjectIdentifier),
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.FileStartPosition.DeepCopy().(BACnetApplicationTagSignedInteger),
-		m.FileData.DeepCopy().(BACnetApplicationTagOctetString),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.DeviceIdentifier),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.FileStartPosition),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.FileData),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestAtomicWriteFileCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index 4f90e8e11a..b6c90ec0a8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -517,11 +517,11 @@ func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotification) deepCopy() *_BA
 	}
 	_BACnetConfirmedServiceRequestConfirmedCOVNotificationCopy := &_BACnetConfirmedServiceRequestConfirmedCOVNotification{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.SubscriberProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.InitiatingDeviceIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.MonitoredObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.LifetimeInSeconds.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ListOfValues.DeepCopy().(BACnetPropertyValues),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.SubscriberProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.InitiatingDeviceIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.MonitoredObjectIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.LifetimeInSeconds),
+		utils.DeepCopy[BACnetPropertyValues](m.ListOfValues),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestConfirmedCOVNotificationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
index 4278990bf3..1b55944469 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
@@ -514,11 +514,11 @@ func (m *_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) deepCop
 	}
 	_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleCopy := &_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.SubscriberProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.InitiatingDeviceIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.TimeRemaining.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.Timestamp.DeepCopy().(BACnetTimeStampEnclosed),
-		m.ListOfCovNotifications.DeepCopy().(ListOfCovNotificationsList),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.SubscriberProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.InitiatingDeviceIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.TimeRemaining),
+		utils.DeepCopy[BACnetTimeStampEnclosed](m.Timestamp),
+		utils.DeepCopy[ListOfCovNotificationsList](m.ListOfCovNotifications),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
index fb0f548ab6..c2d2d508a1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -921,19 +921,19 @@ func (m *_BACnetConfirmedServiceRequestConfirmedEventNotification) deepCopy() *_
 	}
 	_BACnetConfirmedServiceRequestConfirmedEventNotificationCopy := &_BACnetConfirmedServiceRequestConfirmedEventNotification{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.InitiatingDeviceIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.EventObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.Timestamp.DeepCopy().(BACnetTimeStampEnclosed),
-		m.NotificationClass.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.Priority.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.EventType.DeepCopy().(BACnetEventTypeTagged),
-		m.MessageText.DeepCopy().(BACnetContextTagCharacterString),
-		m.NotifyType.DeepCopy().(BACnetNotifyTypeTagged),
-		m.AckRequired.DeepCopy().(BACnetContextTagBoolean),
-		m.FromState.DeepCopy().(BACnetEventStateTagged),
-		m.ToState.DeepCopy().(BACnetEventStateTagged),
-		m.EventValues.DeepCopy().(BACnetNotificationParameters),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.ProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.InitiatingDeviceIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.EventObjectIdentifier),
+		utils.DeepCopy[BACnetTimeStampEnclosed](m.Timestamp),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.NotificationClass),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.Priority),
+		utils.DeepCopy[BACnetEventTypeTagged](m.EventType),
+		utils.DeepCopy[BACnetContextTagCharacterString](m.MessageText),
+		utils.DeepCopy[BACnetNotifyTypeTagged](m.NotifyType),
+		utils.DeepCopy[BACnetContextTagBoolean](m.AckRequired),
+		utils.DeepCopy[BACnetEventStateTagged](m.FromState),
+		utils.DeepCopy[BACnetEventStateTagged](m.ToState),
+		utils.DeepCopy[BACnetNotificationParameters](m.EventValues),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestConfirmedEventNotificationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
index 31c929eae4..de0d6016ff 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
@@ -410,9 +410,9 @@ func (m *_BACnetConfirmedServiceRequestConfirmedPrivateTransfer) deepCopy() *_BA
 	}
 	_BACnetConfirmedServiceRequestConfirmedPrivateTransferCopy := &_BACnetConfirmedServiceRequestConfirmedPrivateTransfer{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.VendorId.DeepCopy().(BACnetVendorIdTagged),
-		m.ServiceNumber.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ServiceParameters.DeepCopy().(BACnetConstructedData),
+		utils.DeepCopy[BACnetVendorIdTagged](m.VendorId),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.ServiceNumber),
+		utils.DeepCopy[BACnetConstructedData](m.ServiceParameters),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestConfirmedPrivateTransferCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
index d4fdac11c1..96c8fca74b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
@@ -462,10 +462,10 @@ func (m *_BACnetConfirmedServiceRequestConfirmedTextMessage) deepCopy() *_BACnet
 	}
 	_BACnetConfirmedServiceRequestConfirmedTextMessageCopy := &_BACnetConfirmedServiceRequestConfirmedTextMessage{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.TextMessageSourceDevice.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.MessageClass.DeepCopy().(BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass),
-		m.MessagePriority.DeepCopy().(BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged),
-		m.Message.DeepCopy().(BACnetContextTagCharacterString),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.TextMessageSourceDevice),
+		utils.DeepCopy[BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass](m.MessageClass),
+		utils.DeepCopy[BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged](m.MessagePriority),
+		utils.DeepCopy[BACnetContextTagCharacterString](m.Message),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestConfirmedTextMessageCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go
index c95158b790..1af42bcc84 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass.go
@@ -551,9 +551,9 @@ func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass) deepCop
 	}
 	_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCopy := &_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass{
 		nil, // will be set by child
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go
index 7799b36280..317c563cc6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter.go
@@ -305,7 +305,7 @@ func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter
 	}
 	_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacterCopy := &_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacter{
 		m.BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassContract.(*_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass).deepCopy(),
-		m.CharacterValue.DeepCopy().(BACnetContextTagCharacterString),
+		utils.DeepCopy[BACnetContextTagCharacterString](m.CharacterValue),
 	}
 	m.BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassContract.(*_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass)._SubType = m
 	return _BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassCharacterCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go
index 738f365c63..bceca9a5db 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric.go
@@ -305,7 +305,7 @@ func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric)
 	}
 	_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumericCopy := &_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumeric{
 		m.BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassContract.(*_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass).deepCopy(),
-		m.NumericValue.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.NumericValue),
 	}
 	m.BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassContract.(*_BACnetConfirmedServiceRequestConfirmedTextMessageMessageClass)._SubType = m
 	return _BACnetConfirmedServiceRequestConfirmedTextMessageMessageClassNumericCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go
index 6f74865d50..c5b2e3f1fc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged.go
@@ -334,7 +334,7 @@ func (m *_BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged
 		return nil
 	}
 	_BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTaggedCopy := &_BACnetConfirmedServiceRequestConfirmedTextMessageMessagePriorityTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
index af1f4f5a82..5b8aa02e07 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
@@ -357,8 +357,8 @@ func (m *_BACnetConfirmedServiceRequestCreateObject) deepCopy() *_BACnetConfirme
 	}
 	_BACnetConfirmedServiceRequestCreateObjectCopy := &_BACnetConfirmedServiceRequestCreateObject{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ObjectSpecifier.DeepCopy().(BACnetConfirmedServiceRequestCreateObjectObjectSpecifier),
-		m.ListOfValues.DeepCopy().(BACnetPropertyValues),
+		utils.DeepCopy[BACnetConfirmedServiceRequestCreateObjectObjectSpecifier](m.ObjectSpecifier),
+		utils.DeepCopy[BACnetPropertyValues](m.ListOfValues),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestCreateObjectCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
index 2e9f18825a..5a7af98245 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObjectObjectSpecifier.go
@@ -532,10 +532,10 @@ func (m *_BACnetConfirmedServiceRequestCreateObjectObjectSpecifier) deepCopy() *
 		return nil
 	}
 	_BACnetConfirmedServiceRequestCreateObjectObjectSpecifierCopy := &_BACnetConfirmedServiceRequestCreateObjectObjectSpecifier{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.RawObjectType.DeepCopy().(BACnetContextTagEnumerated),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetContextTagEnumerated](m.RawObjectType),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetConfirmedServiceRequestCreateObjectObjectSpecifierCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
index 9936429ddb..7cc6976b1d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
@@ -308,7 +308,7 @@ func (m *_BACnetConfirmedServiceRequestDeleteObject) deepCopy() *_BACnetConfirme
 	}
 	_BACnetConfirmedServiceRequestDeleteObjectCopy := &_BACnetConfirmedServiceRequestDeleteObject{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ObjectIdentifier.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.ObjectIdentifier),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestDeleteObjectCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
index d79599212f..c59539d98d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
@@ -407,9 +407,9 @@ func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControl) deepCopy() *_
 	}
 	_BACnetConfirmedServiceRequestDeviceCommunicationControlCopy := &_BACnetConfirmedServiceRequestDeviceCommunicationControl{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.TimeDuration.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.EnableDisable.DeepCopy().(BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged),
-		m.Password.DeepCopy().(BACnetContextTagCharacterString),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.TimeDuration),
+		utils.DeepCopy[BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged](m.EnableDisable),
+		utils.DeepCopy[BACnetContextTagCharacterString](m.Password),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestDeviceCommunicationControlCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go
index d044227e56..caf9b9e443 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged.go
@@ -334,7 +334,7 @@ func (m *_BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTa
 		return nil
 	}
 	_BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTaggedCopy := &_BACnetConfirmedServiceRequestDeviceCommunicationControlEnableDisableTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
index 5fe72be44b..b0623e1abe 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
@@ -554,12 +554,12 @@ func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummary) deepCopy() *_BACnet
 	}
 	_BACnetConfirmedServiceRequestGetEnrollmentSummaryCopy := &_BACnetConfirmedServiceRequestGetEnrollmentSummary{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.AcknowledgmentFilter.DeepCopy().(BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged),
-		m.EnrollmentFilter.DeepCopy().(BACnetRecipientProcessEnclosed),
-		m.EventStateFilter.DeepCopy().(BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged),
-		m.EventTypeFilter.DeepCopy().(BACnetEventTypeTagged),
-		m.PriorityFilter.DeepCopy().(BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter),
-		m.NotificationClassFilter.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged](m.AcknowledgmentFilter),
+		utils.DeepCopy[BACnetRecipientProcessEnclosed](m.EnrollmentFilter),
+		utils.DeepCopy[BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged](m.EventStateFilter),
+		utils.DeepCopy[BACnetEventTypeTagged](m.EventTypeFilter),
+		utils.DeepCopy[BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter](m.PriorityFilter),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.NotificationClassFilter),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestGetEnrollmentSummaryCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go
index 866107f5b1..107b5bf03d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged.go
@@ -334,7 +334,7 @@ func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilter
 		return nil
 	}
 	_BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTaggedCopy := &_BACnetConfirmedServiceRequestGetEnrollmentSummaryAcknowledgementFilterTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go
index 035f1a1abd..51224d8e71 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged.go
@@ -334,7 +334,7 @@ func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagge
 		return nil
 	}
 	_BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTaggedCopy := &_BACnetConfirmedServiceRequestGetEnrollmentSummaryEventStateFilterTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go
index 1d7c98e9a2..f2bcb8685e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter.go
@@ -446,10 +446,10 @@ func (m *_BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter) deepC
 		return nil
 	}
 	_BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilterCopy := &_BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilter{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.MinPriority.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.MaxPriority.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.MinPriority),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.MaxPriority),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetConfirmedServiceRequestGetEnrollmentSummaryPriorityFilterCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
index 1680c73519..9e556b59eb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
@@ -306,7 +306,7 @@ func (m *_BACnetConfirmedServiceRequestGetEventInformation) deepCopy() *_BACnetC
 	}
 	_BACnetConfirmedServiceRequestGetEventInformationCopy := &_BACnetConfirmedServiceRequestGetEventInformation{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.LastReceivedObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.LastReceivedObjectIdentifier),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestGetEventInformationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
index 42a955e06e..41b53dd682 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
@@ -462,10 +462,10 @@ func (m *_BACnetConfirmedServiceRequestLifeSafetyOperation) deepCopy() *_BACnetC
 	}
 	_BACnetConfirmedServiceRequestLifeSafetyOperationCopy := &_BACnetConfirmedServiceRequestLifeSafetyOperation{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.RequestingProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.RequestingSource.DeepCopy().(BACnetContextTagCharacterString),
-		m.Request.DeepCopy().(BACnetLifeSafetyOperationTagged),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.RequestingProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagCharacterString](m.RequestingSource),
+		utils.DeepCopy[BACnetLifeSafetyOperationTagged](m.Request),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestLifeSafetyOperationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index bad11a7ca9..04473324e7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -409,9 +409,9 @@ func (m *_BACnetConfirmedServiceRequestReadProperty) deepCopy() *_BACnetConfirme
 	}
 	_BACnetConfirmedServiceRequestReadPropertyCopy := &_BACnetConfirmedServiceRequestReadProperty{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.PropertyIdentifier.DeepCopy().(BACnetPropertyIdentifierTagged),
-		m.ArrayIndex.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
+		utils.DeepCopy[BACnetPropertyIdentifierTagged](m.PropertyIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.ArrayIndex),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestReadPropertyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
index f1557929c3..86bdc451ec 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
@@ -458,10 +458,10 @@ func (m *_BACnetConfirmedServiceRequestReadRange) deepCopy() *_BACnetConfirmedSe
 	}
 	_BACnetConfirmedServiceRequestReadRangeCopy := &_BACnetConfirmedServiceRequestReadRange{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.PropertyIdentifier.DeepCopy().(BACnetPropertyIdentifierTagged),
-		m.PropertyArrayIndex.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ReadRange.DeepCopy().(BACnetConfirmedServiceRequestReadRangeRange),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
+		utils.DeepCopy[BACnetPropertyIdentifierTagged](m.PropertyIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.PropertyArrayIndex),
+		utils.DeepCopy[BACnetConfirmedServiceRequestReadRangeRange](m.ReadRange),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestReadRangeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
index 9668b2cd35..cdf75b487a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRange.go
@@ -561,9 +561,9 @@ func (m *_BACnetConfirmedServiceRequestReadRangeRange) deepCopy() *_BACnetConfir
 	}
 	_BACnetConfirmedServiceRequestReadRangeRangeCopy := &_BACnetConfirmedServiceRequestReadRangeRange{
 		nil, // will be set by child
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 	}
 	return _BACnetConfirmedServiceRequestReadRangeRangeCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go
index a65dd73d24..67a5c8793c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByPosition.go
@@ -357,8 +357,8 @@ func (m *_BACnetConfirmedServiceRequestReadRangeRangeByPosition) deepCopy() *_BA
 	}
 	_BACnetConfirmedServiceRequestReadRangeRangeByPositionCopy := &_BACnetConfirmedServiceRequestReadRangeRangeByPosition{
 		m.BACnetConfirmedServiceRequestReadRangeRangeContract.(*_BACnetConfirmedServiceRequestReadRangeRange).deepCopy(),
-		m.ReferenceIndex.DeepCopy().(BACnetApplicationTagUnsignedInteger),
-		m.Count.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ReferenceIndex),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.Count),
 	}
 	m.BACnetConfirmedServiceRequestReadRangeRangeContract.(*_BACnetConfirmedServiceRequestReadRangeRange)._SubType = m
 	return _BACnetConfirmedServiceRequestReadRangeRangeByPositionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go
index 8852411edf..54c8b3b247 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber.go
@@ -357,8 +357,8 @@ func (m *_BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber) deepCopy(
 	}
 	_BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumberCopy := &_BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumber{
 		m.BACnetConfirmedServiceRequestReadRangeRangeContract.(*_BACnetConfirmedServiceRequestReadRangeRange).deepCopy(),
-		m.ReferenceSequenceNumber.DeepCopy().(BACnetApplicationTagUnsignedInteger),
-		m.Count.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ReferenceSequenceNumber),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.Count),
 	}
 	m.BACnetConfirmedServiceRequestReadRangeRangeContract.(*_BACnetConfirmedServiceRequestReadRangeRange)._SubType = m
 	return _BACnetConfirmedServiceRequestReadRangeRangeBySequenceNumberCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go
index 12d9be1ce4..e794c0d2af 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRangeRangeByTime.go
@@ -357,8 +357,8 @@ func (m *_BACnetConfirmedServiceRequestReadRangeRangeByTime) deepCopy() *_BACnet
 	}
 	_BACnetConfirmedServiceRequestReadRangeRangeByTimeCopy := &_BACnetConfirmedServiceRequestReadRangeRangeByTime{
 		m.BACnetConfirmedServiceRequestReadRangeRangeContract.(*_BACnetConfirmedServiceRequestReadRangeRange).deepCopy(),
-		m.ReferenceTime.DeepCopy().(BACnetDateTime),
-		m.Count.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetDateTime](m.ReferenceTime),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.Count),
 	}
 	m.BACnetConfirmedServiceRequestReadRangeRangeContract.(*_BACnetConfirmedServiceRequestReadRangeRange)._SubType = m
 	return _BACnetConfirmedServiceRequestReadRangeRangeByTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
index 991060e77b..01c6483e81 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
@@ -358,8 +358,8 @@ func (m *_BACnetConfirmedServiceRequestReinitializeDevice) deepCopy() *_BACnetCo
 	}
 	_BACnetConfirmedServiceRequestReinitializeDeviceCopy := &_BACnetConfirmedServiceRequestReinitializeDevice{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ReinitializedStateOfDevice.DeepCopy().(BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged),
-		m.Password.DeepCopy().(BACnetContextTagCharacterString),
+		utils.DeepCopy[BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged](m.ReinitializedStateOfDevice),
+		utils.DeepCopy[BACnetContextTagCharacterString](m.Password),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestReinitializeDeviceCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
index b678196e9a..56bc66be7a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
@@ -334,7 +334,7 @@ func (m *_BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDev
 		return nil
 	}
 	_BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTaggedCopy := &_BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged{
-		m.Header.DeepCopy().(BACnetTagHeader),
+		utils.DeepCopy[BACnetTagHeader](m.Header),
 		m.Value,
 		m.TagNumber,
 		m.TagClass,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
index 93f9c3f62d..4de2b804c9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
@@ -459,10 +459,10 @@ func (m *_BACnetConfirmedServiceRequestRemoveListElement) deepCopy() *_BACnetCon
 	}
 	_BACnetConfirmedServiceRequestRemoveListElementCopy := &_BACnetConfirmedServiceRequestRemoveListElement{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.PropertyIdentifier.DeepCopy().(BACnetPropertyIdentifierTagged),
-		m.ArrayIndex.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ListOfElements.DeepCopy().(BACnetConstructedData),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
+		utils.DeepCopy[BACnetPropertyIdentifierTagged](m.PropertyIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.ArrayIndex),
+		utils.DeepCopy[BACnetConstructedData](m.ListOfElements),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestRemoveListElementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
index 354d72e579..a21dcb8aae 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -458,10 +458,10 @@ func (m *_BACnetConfirmedServiceRequestSubscribeCOV) deepCopy() *_BACnetConfirme
 	}
 	_BACnetConfirmedServiceRequestSubscribeCOVCopy := &_BACnetConfirmedServiceRequestSubscribeCOV{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.SubscriberProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.MonitoredObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.IssueConfirmed.DeepCopy().(BACnetContextTagBoolean),
-		m.LifetimeInSeconds.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.SubscriberProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.MonitoredObjectIdentifier),
+		utils.DeepCopy[BACnetContextTagBoolean](m.IssueConfirmed),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.LifetimeInSeconds),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestSubscribeCOVCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
index b21b8cc9f0..65c1f9825c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
@@ -560,12 +560,12 @@ func (m *_BACnetConfirmedServiceRequestSubscribeCOVProperty) deepCopy() *_BACnet
 	}
 	_BACnetConfirmedServiceRequestSubscribeCOVPropertyCopy := &_BACnetConfirmedServiceRequestSubscribeCOVProperty{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.SubscriberProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.MonitoredObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.IssueConfirmedNotifications.DeepCopy().(BACnetContextTagBoolean),
-		m.Lifetime.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.MonitoredPropertyIdentifier.DeepCopy().(BACnetPropertyReferenceEnclosed),
-		m.CovIncrement.DeepCopy().(BACnetContextTagReal),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.SubscriberProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.MonitoredObjectIdentifier),
+		utils.DeepCopy[BACnetContextTagBoolean](m.IssueConfirmedNotifications),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.Lifetime),
+		utils.DeepCopy[BACnetPropertyReferenceEnclosed](m.MonitoredPropertyIdentifier),
+		utils.DeepCopy[BACnetContextTagReal](m.CovIncrement),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestSubscribeCOVPropertyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
index 267986fe98..7e7da21763 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
@@ -508,11 +508,11 @@ func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) deepCopy()
 	}
 	_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleCopy := &_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.SubscriberProcessIdentifier.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.IssueConfirmedNotifications.DeepCopy().(BACnetContextTagBoolean),
-		m.Lifetime.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.MaxNotificationDelay.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.ListOfCovSubscriptionSpecifications.DeepCopy().(BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.SubscriberProcessIdentifier),
+		utils.DeepCopy[BACnetContextTagBoolean](m.IssueConfirmedNotifications),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.Lifetime),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.MaxNotificationDelay),
+		utils.DeepCopy[BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList](m.ListOfCovSubscriptionSpecifications),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
index a0895b6e3b..249a813d38 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications.go
@@ -413,10 +413,10 @@ func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubs
 		return nil
 	}
 	_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsCopy := &_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications{
-		m.MonitoredObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.MonitoredObjectIdentifier),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
 		utils.DeepCopySlice[BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference, BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference](m.ListOfCovReferences),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 	}
 	return _BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
index cb5d3a6976..bdb9780587 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList.go
@@ -375,9 +375,9 @@ func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubs
 		return nil
 	}
 	_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsListCopy := &_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsList{
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
 		utils.DeepCopySlice[BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications, BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications](m.Specifications),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 	}
 	return _BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsListCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
index 3f24aa27fb..e14c52c81b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference.go
@@ -379,9 +379,9 @@ func (m *_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubs
 		return nil
 	}
 	_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReferenceCopy := &_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReference{
-		m.MonitoredProperty.DeepCopy().(BACnetPropertyReferenceEnclosed),
-		m.CovIncrement.DeepCopy().(BACnetContextTagReal),
-		m.Timestamped.DeepCopy().(BACnetContextTagBoolean),
+		utils.DeepCopy[BACnetPropertyReferenceEnclosed](m.MonitoredProperty),
+		utils.DeepCopy[BACnetContextTagReal](m.CovIncrement),
+		utils.DeepCopy[BACnetContextTagBoolean](m.Timestamped),
 	}
 	return _BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsReferenceCopy
 }
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
index 91f6427e06..efc0a47b30 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
@@ -412,9 +412,9 @@ func (m *_BACnetConfirmedServiceRequestVTData) deepCopy() *_BACnetConfirmedServi
 	}
 	_BACnetConfirmedServiceRequestVTDataCopy := &_BACnetConfirmedServiceRequestVTData{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.VtSessionIdentifier.DeepCopy().(BACnetApplicationTagUnsignedInteger),
-		m.VtNewData.DeepCopy().(BACnetApplicationTagOctetString),
-		m.VtDataFlag.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.VtSessionIdentifier),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.VtNewData),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.VtDataFlag),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestVTDataCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
index 6842159d81..f8e7a3c6a4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
@@ -360,8 +360,8 @@ func (m *_BACnetConfirmedServiceRequestVTOpen) deepCopy() *_BACnetConfirmedServi
 	}
 	_BACnetConfirmedServiceRequestVTOpenCopy := &_BACnetConfirmedServiceRequestVTOpen{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.VtClass.DeepCopy().(BACnetVTClassTagged),
-		m.LocalVtSessionIdentifier.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetVTClassTagged](m.VtClass),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LocalVtSessionIdentifier),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestVTOpenCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 80c8e50c6e..ca92bd0b78 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -511,11 +511,11 @@ func (m *_BACnetConfirmedServiceRequestWriteProperty) deepCopy() *_BACnetConfirm
 	}
 	_BACnetConfirmedServiceRequestWritePropertyCopy := &_BACnetConfirmedServiceRequestWriteProperty{
 		m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest).deepCopy(),
-		m.ObjectIdentifier.DeepCopy().(BACnetContextTagObjectIdentifier),
-		m.PropertyIdentifier.DeepCopy().(BACnetPropertyIdentifierTagged),
-		m.ArrayIndex.DeepCopy().(BACnetContextTagUnsignedInteger),
-		m.PropertyValue.DeepCopy().(BACnetConstructedData),
-		m.Priority.DeepCopy().(BACnetContextTagUnsignedInteger),
+		utils.DeepCopy[BACnetContextTagObjectIdentifier](m.ObjectIdentifier),
+		utils.DeepCopy[BACnetPropertyIdentifierTagged](m.PropertyIdentifier),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.ArrayIndex),
+		utils.DeepCopy[BACnetConstructedData](m.PropertyValue),
+		utils.DeepCopy[BACnetContextTagUnsignedInteger](m.Priority),
 	}
 	m.BACnetConfirmedServiceRequestContract.(*_BACnetConfirmedServiceRequest)._SubType = m
 	return _BACnetConfirmedServiceRequestWritePropertyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
index 9678b111f6..280fd337cb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
@@ -16935,9 +16935,9 @@ func (m *_BACnetConstructedData) deepCopy() *_BACnetConstructedData {
 	}
 	_BACnetConstructedDataCopy := &_BACnetConstructedData{
 		nil, // will be set by child
-		m.OpeningTag.DeepCopy().(BACnetOpeningTag),
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
-		m.ClosingTag.DeepCopy().(BACnetClosingTag),
+		utils.DeepCopy[BACnetOpeningTag](m.OpeningTag),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
+		utils.DeepCopy[BACnetClosingTag](m.ClosingTag),
 		m.TagNumber,
 		m.ArrayIndexArgument,
 	}
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go
index b50de518ea..60fda0448f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDULength.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAPDULength) deepCopy() *_BACnetConstructedDataAPD
 	}
 	_BACnetConstructedDataAPDULengthCopy := &_BACnetConstructedDataAPDULength{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ApduLength.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ApduLength),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAPDULengthCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go
index f219441d6f..ea43a0a7ff 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUSegmentTimeout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAPDUSegmentTimeout) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataAPDUSegmentTimeoutCopy := &_BACnetConstructedDataAPDUSegmentTimeout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ApduSegmentTimeout.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ApduSegmentTimeout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAPDUSegmentTimeoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go
index ddaa038a82..66cef44a23 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAPDUTimeout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAPDUTimeout) deepCopy() *_BACnetConstructedDataAP
 	}
 	_BACnetConstructedDataAPDUTimeoutCopy := &_BACnetConstructedDataAPDUTimeout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ApduTimeout.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ApduTimeout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAPDUTimeoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go
index e82ceb3ca1..90f23e1085 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAbsenteeLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAbsenteeLimit) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataAbsenteeLimitCopy := &_BACnetConstructedDataAbsenteeLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AbsenteeLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.AbsenteeLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAbsenteeLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go
index eddc54aac0..549a749b38 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccessDoorPresentValue) deepCopy() *_BACnetConstr
 	}
 	_BACnetConstructedDataAccessDoorPresentValueCopy := &_BACnetConstructedDataAccessDoorPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetDoorValueTagged),
+		utils.DeepCopy[BACnetDoorValueTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessDoorPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go
index 2c6b8d77ac..b0509ddad4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoorRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccessDoorRelinquishDefault) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataAccessDoorRelinquishDefaultCopy := &_BACnetConstructedDataAccessDoorRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetDoorValueTagged),
+		utils.DeepCopy[BACnetDoorValueTagged](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessDoorRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go
index 7dec511b7d..1455720e58 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessDoors.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataAccessDoors) deepCopy() *_BACnetConstructedDataAc
 	}
 	_BACnetConstructedDataAccessDoorsCopy := &_BACnetConstructedDataAccessDoors{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetDeviceObjectReference, BACnetDeviceObjectReference](m.AccessDoors),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go
index c41fd8f4eb..bd0f21edc7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEvent.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAccessEvent) deepCopy() *_BACnetConstructedDataAc
 	}
 	_BACnetConstructedDataAccessEventCopy := &_BACnetConstructedDataAccessEvent{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AccessEvent.DeepCopy().(BACnetAccessEventTagged),
+		utils.DeepCopy[BACnetAccessEventTagged](m.AccessEvent),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessEventCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go
index b8cbe4dd3c..2b46e4f2c3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventAuthenticationFactor.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccessEventAuthenticationFactor) deepCopy() *_BAC
 	}
 	_BACnetConstructedDataAccessEventAuthenticationFactorCopy := &_BACnetConstructedDataAccessEventAuthenticationFactor{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AccessEventAuthenticationFactor.DeepCopy().(BACnetAuthenticationFactor),
+		utils.DeepCopy[BACnetAuthenticationFactor](m.AccessEventAuthenticationFactor),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessEventAuthenticationFactorCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go
index 96167b301b..538e156a2c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventCredential.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccessEventCredential) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataAccessEventCredentialCopy := &_BACnetConstructedDataAccessEventCredential{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AccessEventCredential.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.AccessEventCredential),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessEventCredentialCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTag.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTag.go
index e60a19da87..740b9486ee 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTag.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTag.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAccessEventTag) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataAccessEventTagCopy := &_BACnetConstructedDataAccessEventTag{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AccessEventTag.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.AccessEventTag),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessEventTagCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTime.go
index 678d64ba48..aa2164ff04 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessEventTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAccessEventTime) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataAccessEventTimeCopy := &_BACnetConstructedDataAccessEventTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AccessEventTime.DeepCopy().(BACnetTimeStamp),
+		utils.DeepCopy[BACnetTimeStamp](m.AccessEventTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessEventTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessZoneAdjustValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessZoneAdjustValue.go
index 459e5a7c8f..fb6e0fc690 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessZoneAdjustValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccessZoneAdjustValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccessZoneAdjustValue) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataAccessZoneAdjustValueCopy := &_BACnetConstructedDataAccessZoneAdjustValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AdjustValue.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.AdjustValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccessZoneAdjustValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompaniment.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompaniment.go
index 6c52e49098..8a57731a63 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompaniment.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompaniment.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAccompaniment) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataAccompanimentCopy := &_BACnetConstructedDataAccompaniment{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Accompaniment.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.Accompaniment),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccompanimentCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompanimentTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompanimentTime.go
index cf1306530c..b09ebd9140 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompanimentTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccompanimentTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAccompanimentTime) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataAccompanimentTimeCopy := &_BACnetConstructedDataAccompanimentTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AccompanimentTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.AccompanimentTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccompanimentTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultHighLimit.go
index 1f460eeafd..117a7e61fa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccumulatorFaultHighLimit) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataAccumulatorFaultHighLimitCopy := &_BACnetConstructedDataAccumulatorFaultHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultHighLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FaultHighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccumulatorFaultHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultLowLimit.go
index e98b7bd191..d7b40f95e2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorFaultLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccumulatorFaultLowLimit) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataAccumulatorFaultLowLimitCopy := &_BACnetConstructedDataAccumulatorFaultLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultLowLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FaultLowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccumulatorFaultLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorHighLimit.go
index 737827d313..077e144fac 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorHighLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAccumulatorHighLimit) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataAccumulatorHighLimitCopy := &_BACnetConstructedDataAccumulatorHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.HighLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.HighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccumulatorHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorLowLimit.go
index 2dc32db2a1..7b663649a4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorLowLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAccumulatorLowLimit) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataAccumulatorLowLimitCopy := &_BACnetConstructedDataAccumulatorLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LowLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccumulatorLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMaxPresValue.go
index d9cd6ba233..5cc31a65ff 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMaxPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccumulatorMaxPresValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataAccumulatorMaxPresValueCopy := &_BACnetConstructedDataAccumulatorMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccumulatorMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMinPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMinPresValue.go
index 56a3e3c36a..fed6a50fe6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMinPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAccumulatorMinPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAccumulatorMinPresValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataAccumulatorMinPresValueCopy := &_BACnetConstructedDataAccumulatorMinPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinPresValue.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MinPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAccumulatorMinPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckRequired.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckRequired.go
index c98019fc6b..4ad895f1fa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckRequired.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckRequired.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAckRequired) deepCopy() *_BACnetConstructedDataAc
 	}
 	_BACnetConstructedDataAckRequiredCopy := &_BACnetConstructedDataAckRequired{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AckRequired.DeepCopy().(BACnetEventTransitionBitsTagged),
+		utils.DeepCopy[BACnetEventTransitionBitsTagged](m.AckRequired),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAckRequiredCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckedTransitions.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckedTransitions.go
index 3a126fcf2f..ca8728e5b1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckedTransitions.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAckedTransitions.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAckedTransitions) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataAckedTransitionsCopy := &_BACnetConstructedDataAckedTransitions{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AckedTransitions.DeepCopy().(BACnetEventTransitionBitsTagged),
+		utils.DeepCopy[BACnetEventTransitionBitsTagged](m.AckedTransitions),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAckedTransitionsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAction.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAction.go
index be24bdb6c8..3900332a4c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAction.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAction.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataAction) deepCopy() *_BACnetConstructedDataAction
 	}
 	_BACnetConstructedDataActionCopy := &_BACnetConstructedDataAction{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetActionList, BACnetActionList](m.ActionLists),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActionText.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActionText.go
index b21bd9c1d9..48d34c0ad5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActionText.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActionText.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataActionText) deepCopy() *_BACnetConstructedDataAct
 	}
 	_BACnetConstructedDataActionTextCopy := &_BACnetConstructedDataActionText{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.ActionText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActivationTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActivationTime.go
index 6780e73551..9d296a1e11 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActivationTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActivationTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataActivationTime) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataActivationTimeCopy := &_BACnetConstructedDataActivationTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ActivationTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.ActivationTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataActivationTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveAuthenticationPolicy.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveAuthenticationPolicy.go
index d4ede3968a..44b4bd9381 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveAuthenticationPolicy.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveAuthenticationPolicy.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataActiveAuthenticationPolicy) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataActiveAuthenticationPolicyCopy := &_BACnetConstructedDataActiveAuthenticationPolicy{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ActiveAuthenticationPolicy.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ActiveAuthenticationPolicy),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataActiveAuthenticationPolicyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveText.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveText.go
index 85bac88cf1..01fe932c52 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveText.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActiveText.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataActiveText) deepCopy() *_BACnetConstructedDataAct
 	}
 	_BACnetConstructedDataActiveTextCopy := &_BACnetConstructedDataActiveText{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ActiveText.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.ActiveText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataActiveTextCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActualShedLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActualShedLevel.go
index 2ad5ee4124..c2b9898bca 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActualShedLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataActualShedLevel.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataActualShedLevel) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataActualShedLevelCopy := &_BACnetConstructedDataActualShedLevel{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ActualShedLevel.DeepCopy().(BACnetShedLevel),
+		utils.DeepCopy[BACnetShedLevel](m.ActualShedLevel),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataActualShedLevelCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAdjustValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAdjustValue.go
index f92ca4c4f2..7ed2cbe2f1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAdjustValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAdjustValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAdjustValue) deepCopy() *_BACnetConstructedDataAd
 	}
 	_BACnetConstructedDataAdjustValueCopy := &_BACnetConstructedDataAdjustValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AdjustValue.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.AdjustValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAdjustValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValue.go
index 4f16d87bcb..338e613648 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAlarmValue) deepCopy() *_BACnetConstructedDataAla
 	}
 	_BACnetConstructedDataAlarmValueCopy := &_BACnetConstructedDataAlarmValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BinaryPv.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.BinaryPv),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAlarmValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValues.go
index f1ca732b92..4e942b937d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlarmValues.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataAlarmValues) deepCopy() *_BACnetConstructedDataAl
 	}
 	_BACnetConstructedDataAlarmValuesCopy := &_BACnetConstructedDataAlarmValues{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetLifeSafetyStateTagged, BACnetLifeSafetyStateTagged](m.AlarmValues),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlertEnrollmentPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlertEnrollmentPresentValue.go
index fe3a3d882a..c71a6ff9dd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlertEnrollmentPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlertEnrollmentPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAlertEnrollmentPresentValue) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataAlertEnrollmentPresentValueCopy := &_BACnetConstructedDataAlertEnrollmentPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAlertEnrollmentPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlignIntervals.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlignIntervals.go
index 8c58dc34d3..edb96e5a5f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlignIntervals.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAlignIntervals.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAlignIntervals) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataAlignIntervalsCopy := &_BACnetConstructedDataAlignIntervals{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AlignIntervals.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.AlignIntervals),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAlignIntervalsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllWritesSuccessful.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllWritesSuccessful.go
index 421fe8d412..026830dd8d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllWritesSuccessful.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllWritesSuccessful.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAllWritesSuccessful) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataAllWritesSuccessfulCopy := &_BACnetConstructedDataAllWritesSuccessful{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AllWritesSuccessful.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.AllWritesSuccessful),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAllWritesSuccessfulCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllowGroupDelayInhibit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllowGroupDelayInhibit.go
index 2650a8ffd3..ea6c18ac6e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllowGroupDelayInhibit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAllowGroupDelayInhibit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAllowGroupDelayInhibit) deepCopy() *_BACnetConstr
 	}
 	_BACnetConstructedDataAllowGroupDelayInhibitCopy := &_BACnetConstructedDataAllowGroupDelayInhibit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AllowGroupDelayInhibit.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.AllowGroupDelayInhibit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAllowGroupDelayInhibitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultHighLimit.go
index e68ee7768b..2439778790 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogInputFaultHighLimit) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataAnalogInputFaultHighLimitCopy := &_BACnetConstructedDataAnalogInputFaultHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultHighLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.FaultHighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogInputFaultHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultLowLimit.go
index 2707a4a8bd..197ac04f75 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputFaultLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogInputFaultLowLimit) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataAnalogInputFaultLowLimitCopy := &_BACnetConstructedDataAnalogInputFaultLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultLowLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.FaultLowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogInputFaultLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputInterfaceValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputInterfaceValue.go
index e995b3061d..a64725a844 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputInterfaceValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputInterfaceValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogInputInterfaceValue) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataAnalogInputInterfaceValueCopy := &_BACnetConstructedDataAnalogInputInterfaceValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InterfaceValue.DeepCopy().(BACnetOptionalREAL),
+		utils.DeepCopy[BACnetOptionalREAL](m.InterfaceValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogInputInterfaceValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputMaxPresValue.go
index 40f8f4ca38..a3957d0796 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputMaxPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogInputMaxPresValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataAnalogInputMaxPresValueCopy := &_BACnetConstructedDataAnalogInputMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogInputMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputPresentValue.go
index 9d1e53b198..239643dde4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogInputPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogInputPresentValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataAnalogInputPresentValueCopy := &_BACnetConstructedDataAnalogInputPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogInputPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputInterfaceValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputInterfaceValue.go
index 9b1eb276a1..894a835e9a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputInterfaceValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputInterfaceValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogOutputInterfaceValue) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataAnalogOutputInterfaceValueCopy := &_BACnetConstructedDataAnalogOutputInterfaceValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InterfaceValue.DeepCopy().(BACnetOptionalREAL),
+		utils.DeepCopy[BACnetOptionalREAL](m.InterfaceValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogOutputInterfaceValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputMaxPresValue.go
index ddeeb21ff2..319aae5603 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputMaxPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogOutputMaxPresValue) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataAnalogOutputMaxPresValueCopy := &_BACnetConstructedDataAnalogOutputMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogOutputMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputPresentValue.go
index 0423f3105b..f5a4ef2e2c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogOutputPresentValue) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataAnalogOutputPresentValueCopy := &_BACnetConstructedDataAnalogOutputPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogOutputPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputRelinquishDefault.go
index 4e45ceac46..f1b4150fb0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogOutputRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogOutputRelinquishDefault) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataAnalogOutputRelinquishDefaultCopy := &_BACnetConstructedDataAnalogOutputRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogOutputRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultHighLimit.go
index 1abbddfbf4..e8fbfded7c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogValueFaultHighLimit) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataAnalogValueFaultHighLimitCopy := &_BACnetConstructedDataAnalogValueFaultHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultHighLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.FaultHighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogValueFaultHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultLowLimit.go
index 318fed1246..e0790122c4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueFaultLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogValueFaultLowLimit) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataAnalogValueFaultLowLimitCopy := &_BACnetConstructedDataAnalogValueFaultLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultLowLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.FaultLowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogValueFaultLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueMaxPresValue.go
index e9426549e8..d10da94129 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueMaxPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogValueMaxPresValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataAnalogValueMaxPresValueCopy := &_BACnetConstructedDataAnalogValueMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogValueMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValuePresentValue.go
index 2bd0082086..e138c71c6a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogValuePresentValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataAnalogValuePresentValueCopy := &_BACnetConstructedDataAnalogValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueRelinquishDefault.go
index dd10ab1551..556113aec0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAnalogValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataAnalogValueRelinquishDefault) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataAnalogValueRelinquishDefaultCopy := &_BACnetConstructedDataAnalogValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAnalogValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataApplicationSoftwareVersion.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataApplicationSoftwareVersion.go
index f33479d4ea..4039071d11 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataApplicationSoftwareVersion.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataApplicationSoftwareVersion.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataApplicationSoftwareVersion) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataApplicationSoftwareVersionCopy := &_BACnetConstructedDataApplicationSoftwareVersion{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ApplicationSoftwareVersion.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.ApplicationSoftwareVersion),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataApplicationSoftwareVersionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataArchive.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataArchive.go
index 7f0fb5f5f0..b22959634e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataArchive.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataArchive.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataArchive) deepCopy() *_BACnetConstructedDataArchiv
 	}
 	_BACnetConstructedDataArchiveCopy := &_BACnetConstructedDataArchive{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Archive.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.Archive),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataArchiveCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedAccessRights.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedAccessRights.go
index cd8bfb8eb9..36e2649c20 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedAccessRights.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedAccessRights.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataAssignedAccessRights) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataAssignedAccessRightsCopy := &_BACnetConstructedDataAssignedAccessRights{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetAssignedAccessRights, BACnetAssignedAccessRights](m.AssignedAccessRights),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedLandingCalls.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedLandingCalls.go
index c9a26c92b2..044ce5a750 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedLandingCalls.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAssignedLandingCalls.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataAssignedLandingCalls) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataAssignedLandingCallsCopy := &_BACnetConstructedDataAssignedLandingCalls{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetAssignedLandingCalls, BACnetAssignedLandingCalls](m.AssignedLandingCalls),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAttemptedSamples.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAttemptedSamples.go
index 0f212b765f..66c2364470 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAttemptedSamples.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAttemptedSamples.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAttemptedSamples) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataAttemptedSamplesCopy := &_BACnetConstructedDataAttemptedSamples{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AttemptedSamples.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.AttemptedSamples),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAttemptedSamplesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationFactors.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationFactors.go
index f8ba2dbef2..9d0825b2be 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationFactors.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationFactors.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataAuthenticationFactors) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataAuthenticationFactorsCopy := &_BACnetConstructedDataAuthenticationFactors{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetCredentialAuthenticationFactor, BACnetCredentialAuthenticationFactor](m.AuthenticationFactors),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyList.go
index 64f2fb09ac..6641830d80 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyList.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataAuthenticationPolicyList) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataAuthenticationPolicyListCopy := &_BACnetConstructedDataAuthenticationPolicyList{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetAuthenticationPolicy, BACnetAuthenticationPolicy](m.AuthenticationPolicyList),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyNames.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyNames.go
index 68254a0739..6d7cff2723 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyNames.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationPolicyNames.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataAuthenticationPolicyNames) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataAuthenticationPolicyNamesCopy := &_BACnetConstructedDataAuthenticationPolicyNames{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.AuthenticationPolicyNames),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationStatus.go
index d10b68c44f..92f28108ea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthenticationStatus.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAuthenticationStatus) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataAuthenticationStatusCopy := &_BACnetConstructedDataAuthenticationStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AuthenticationStatus.DeepCopy().(BACnetAuthenticationStatusTagged),
+		utils.DeepCopy[BACnetAuthenticationStatusTagged](m.AuthenticationStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAuthenticationStatusCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthorizationMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthorizationMode.go
index 9ca043ea88..5b29198def 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthorizationMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAuthorizationMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAuthorizationMode) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataAuthorizationModeCopy := &_BACnetConstructedDataAuthorizationMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AuthorizationMode.DeepCopy().(BACnetAuthorizationModeTagged),
+		utils.DeepCopy[BACnetAuthorizationModeTagged](m.AuthorizationMode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAuthorizationModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAutoSlaveDiscovery.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAutoSlaveDiscovery.go
index faec89544c..d25a3d78d7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAutoSlaveDiscovery.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAutoSlaveDiscovery.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAutoSlaveDiscovery) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataAutoSlaveDiscoveryCopy := &_BACnetConstructedDataAutoSlaveDiscovery{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AutoSlaveDiscovery.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.AutoSlaveDiscovery),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAutoSlaveDiscoveryCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAverageValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAverageValue.go
index fa986ef654..1c9672788c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAverageValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataAverageValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataAverageValue) deepCopy() *_BACnetConstructedDataA
 	}
 	_BACnetConstructedDataAverageValueCopy := &_BACnetConstructedDataAverageValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AverageValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.AverageValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataAverageValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPGlobalAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPGlobalAddress.go
index c344177f6b..654e32264f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPGlobalAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPGlobalAddress.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBACnetIPGlobalAddress) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataBACnetIPGlobalAddressCopy := &_BACnetConstructedDataBACnetIPGlobalAddress{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BacnetIpGlobalAddress.DeepCopy().(BACnetHostNPort),
+		utils.DeepCopy[BACnetHostNPort](m.BacnetIpGlobalAddress),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPGlobalAddressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMode.go
index df512e74e9..1144517ab7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBACnetIPMode) deepCopy() *_BACnetConstructedDataB
 	}
 	_BACnetConstructedDataBACnetIPModeCopy := &_BACnetConstructedDataBACnetIPMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BacnetIpMode.DeepCopy().(BACnetIPModeTagged),
+		utils.DeepCopy[BACnetIPModeTagged](m.BacnetIpMode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMulticastAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMulticastAddress.go
index 8190e3e13c..9b000b40a5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMulticastAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPMulticastAddress.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBACnetIPMulticastAddress) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataBACnetIPMulticastAddressCopy := &_BACnetConstructedDataBACnetIPMulticastAddress{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpMulticastAddress.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.IpMulticastAddress),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPMulticastAddressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPNATTraversal.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPNATTraversal.go
index 75a664443d..67ccac7631 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPNATTraversal.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPNATTraversal.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBACnetIPNATTraversal) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataBACnetIPNATTraversalCopy := &_BACnetConstructedDataBACnetIPNATTraversal{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BacnetIPNATTraversal.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.BacnetIPNATTraversal),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPNATTraversalCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPUDPPort.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPUDPPort.go
index cec7afb9d9..e569222bc1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPUDPPort.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPUDPPort.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBACnetIPUDPPort) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataBACnetIPUDPPortCopy := &_BACnetConstructedDataBACnetIPUDPPort{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpUdpPort.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.IpUdpPort),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPUDPPortCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6Mode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6Mode.go
index 1c3baf344e..83da704abe 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6Mode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6Mode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBACnetIPv6Mode) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataBACnetIPv6ModeCopy := &_BACnetConstructedDataBACnetIPv6Mode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BacnetIpv6Mode.DeepCopy().(BACnetIPModeTagged),
+		utils.DeepCopy[BACnetIPModeTagged](m.BacnetIpv6Mode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPv6ModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6MulticastAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6MulticastAddress.go
index 5ef6b65e0a..8decb5dca3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6MulticastAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6MulticastAddress.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBACnetIPv6MulticastAddress) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataBACnetIPv6MulticastAddressCopy := &_BACnetConstructedDataBACnetIPv6MulticastAddress{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6MulticastAddress.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.Ipv6MulticastAddress),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPv6MulticastAddressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6UDPPort.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6UDPPort.go
index 3a79f1d00e..9898a5ca3a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6UDPPort.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBACnetIPv6UDPPort.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBACnetIPv6UDPPort) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataBACnetIPv6UDPPortCopy := &_BACnetConstructedDataBACnetIPv6UDPPort{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6UdpPort.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Ipv6UdpPort),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBACnetIPv6UDPPortCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBBMDAcceptFDRegistrations.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBBMDAcceptFDRegistrations.go
index dc68cdd1c1..e71370de60 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBBMDAcceptFDRegistrations.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBBMDAcceptFDRegistrations.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBBMDAcceptFDRegistrations) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataBBMDAcceptFDRegistrationsCopy := &_BACnetConstructedDataBBMDAcceptFDRegistrations{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BbmdAcceptFDRegistrations.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.BbmdAcceptFDRegistrations),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBBMDAcceptFDRegistrationsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupAndRestoreState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupAndRestoreState.go
index d61d358062..773ae9712e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupAndRestoreState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupAndRestoreState.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBackupAndRestoreState) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataBackupAndRestoreStateCopy := &_BACnetConstructedDataBackupAndRestoreState{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BackupAndRestoreState.DeepCopy().(BACnetBackupStateTagged),
+		utils.DeepCopy[BACnetBackupStateTagged](m.BackupAndRestoreState),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBackupAndRestoreStateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupFailureTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupFailureTimeout.go
index 418d5a1ae8..5335e518f2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupFailureTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupFailureTimeout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBackupFailureTimeout) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataBackupFailureTimeoutCopy := &_BACnetConstructedDataBackupFailureTimeout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BackupFailureTimeout.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.BackupFailureTimeout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBackupFailureTimeoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupPreparationTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupPreparationTime.go
index 47bfd6e017..11b21c0116 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupPreparationTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBackupPreparationTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBackupPreparationTime) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataBackupPreparationTimeCopy := &_BACnetConstructedDataBackupPreparationTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BackupPreparationTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.BackupPreparationTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBackupPreparationTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBaseDeviceSecurityPolicy.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBaseDeviceSecurityPolicy.go
index b12e212d52..a491a77aa7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBaseDeviceSecurityPolicy.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBaseDeviceSecurityPolicy.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBaseDeviceSecurityPolicy) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataBaseDeviceSecurityPolicyCopy := &_BACnetConstructedDataBaseDeviceSecurityPolicy{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BaseDeviceSecurityPolicy.DeepCopy().(BACnetSecurityLevelTagged),
+		utils.DeepCopy[BACnetSecurityLevelTagged](m.BaseDeviceSecurityPolicy),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBaseDeviceSecurityPolicyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBelongsTo.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBelongsTo.go
index 9fdf105976..85b58b5892 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBelongsTo.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBelongsTo.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBelongsTo) deepCopy() *_BACnetConstructedDataBelo
 	}
 	_BACnetConstructedDataBelongsToCopy := &_BACnetConstructedDataBelongsTo{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BelongsTo.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.BelongsTo),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBelongsToCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBias.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBias.go
index 6d6b07c496..71066775cb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBias.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBias.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBias) deepCopy() *_BACnetConstructedDataBias {
 	}
 	_BACnetConstructedDataBiasCopy := &_BACnetConstructedDataBias{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Bias.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.Bias),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBiasCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputInterfaceValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputInterfaceValue.go
index 4890015059..de78b09dcf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputInterfaceValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputInterfaceValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryInputInterfaceValue) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataBinaryInputInterfaceValueCopy := &_BACnetConstructedDataBinaryInputInterfaceValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InterfaceValue.DeepCopy().(BACnetOptionalBinaryPV),
+		utils.DeepCopy[BACnetOptionalBinaryPV](m.InterfaceValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryInputInterfaceValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputPresentValue.go
index 9b45269d62..f777e6a290 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryInputPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryInputPresentValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataBinaryInputPresentValueCopy := &_BACnetConstructedDataBinaryInputPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryInputPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputFeedbackValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputFeedbackValue.go
index f23197bef2..942887255e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputFeedbackValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputFeedbackValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryLightingOutputFeedbackValue) deepCopy() *_B
 	}
 	_BACnetConstructedDataBinaryLightingOutputFeedbackValueCopy := &_BACnetConstructedDataBinaryLightingOutputFeedbackValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FeedbackValue.DeepCopy().(BACnetBinaryLightingPVTagged),
+		utils.DeepCopy[BACnetBinaryLightingPVTagged](m.FeedbackValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryLightingOutputFeedbackValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputPresentValue.go
index 987fe086f0..614739d0bb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryLightingOutputPresentValue) deepCopy() *_BA
 	}
 	_BACnetConstructedDataBinaryLightingOutputPresentValueCopy := &_BACnetConstructedDataBinaryLightingOutputPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetBinaryLightingPVTagged),
+		utils.DeepCopy[BACnetBinaryLightingPVTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryLightingOutputPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputRelinquishDefault.go
index cf7f626991..00933775a6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryLightingOutputRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryLightingOutputRelinquishDefault) deepCopy()
 	}
 	_BACnetConstructedDataBinaryLightingOutputRelinquishDefaultCopy := &_BACnetConstructedDataBinaryLightingOutputRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetBinaryLightingPVTagged),
+		utils.DeepCopy[BACnetBinaryLightingPVTagged](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryLightingOutputRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputFeedbackValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputFeedbackValue.go
index f98bf2faee..94c7cb6c47 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputFeedbackValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputFeedbackValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryOutputFeedbackValue) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataBinaryOutputFeedbackValueCopy := &_BACnetConstructedDataBinaryOutputFeedbackValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FeedbackValue.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.FeedbackValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryOutputFeedbackValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputInterfaceValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputInterfaceValue.go
index 1976e3abdb..704c5a606c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputInterfaceValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputInterfaceValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryOutputInterfaceValue) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataBinaryOutputInterfaceValueCopy := &_BACnetConstructedDataBinaryOutputInterfaceValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InterfaceValue.DeepCopy().(BACnetOptionalBinaryPV),
+		utils.DeepCopy[BACnetOptionalBinaryPV](m.InterfaceValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryOutputInterfaceValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputPresentValue.go
index c24dd9e8fb..7de53b8941 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryOutputPresentValue) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataBinaryOutputPresentValueCopy := &_BACnetConstructedDataBinaryOutputPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryOutputPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputRelinquishDefault.go
index 69a58b1c0d..7f425e5520 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryOutputRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryOutputRelinquishDefault) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataBinaryOutputRelinquishDefaultCopy := &_BACnetConstructedDataBinaryOutputRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryOutputRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValuePresentValue.go
index 0cedca0435..9126a34551 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryValuePresentValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataBinaryValuePresentValueCopy := &_BACnetConstructedDataBinaryValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValueRelinquishDefault.go
index 4198eb42bc..d7b059e76b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBinaryValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBinaryValueRelinquishDefault) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataBinaryValueRelinquishDefaultCopy := &_BACnetConstructedDataBinaryValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBinaryValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitMask.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitMask.go
index 7d6bbaaae0..a400456984 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitMask.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitMask.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBitMask) deepCopy() *_BACnetConstructedDataBitMas
 	}
 	_BACnetConstructedDataBitMaskCopy := &_BACnetConstructedDataBitMask{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BitString.DeepCopy().(BACnetApplicationTagBitString),
+		utils.DeepCopy[BACnetApplicationTagBitString](m.BitString),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBitMaskCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueAlarmValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueAlarmValues.go
index 6c0741f2cd..e05d24ecfc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueAlarmValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueAlarmValues.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataBitStringValueAlarmValues) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataBitStringValueAlarmValuesCopy := &_BACnetConstructedDataBitStringValueAlarmValues{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagBitString, BACnetApplicationTagBitString](m.AlarmValues),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValuePresentValue.go
index 10db305f33..af2985d869 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBitStringValuePresentValue) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataBitStringValuePresentValueCopy := &_BACnetConstructedDataBitStringValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagBitString),
+		utils.DeepCopy[BACnetApplicationTagBitString](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBitStringValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueRelinquishDefault.go
index 9b57e6e81f..ab0cc8ce4d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitStringValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataBitStringValueRelinquishDefault) deepCopy() *_BAC
 	}
 	_BACnetConstructedDataBitStringValueRelinquishDefaultCopy := &_BACnetConstructedDataBitStringValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagBitString),
+		utils.DeepCopy[BACnetApplicationTagBitString](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBitStringValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitText.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitText.go
index 42736f2112..9263e8f33a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitText.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBitText.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataBitText) deepCopy() *_BACnetConstructedDataBitTex
 	}
 	_BACnetConstructedDataBitTextCopy := &_BACnetConstructedDataBitText{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.BitText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBlinkWarnEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBlinkWarnEnable.go
index 2a4b9f76f2..0d3bb96996 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBlinkWarnEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBlinkWarnEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBlinkWarnEnable) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataBlinkWarnEnableCopy := &_BACnetConstructedDataBlinkWarnEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BlinkWarnEnable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.BlinkWarnEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBlinkWarnEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBufferSize.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBufferSize.go
index 22916f534c..5b289ed09a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBufferSize.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataBufferSize.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataBufferSize) deepCopy() *_BACnetConstructedDataBuf
 	}
 	_BACnetConstructedDataBufferSizeCopy := &_BACnetConstructedDataBufferSize{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BufferSize.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.BufferSize),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataBufferSizeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVIncrement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVIncrement.go
index 7da34c93f7..826a6bbe6f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVIncrement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVIncrement.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCOVIncrement) deepCopy() *_BACnetConstructedDataC
 	}
 	_BACnetConstructedDataCOVIncrementCopy := &_BACnetConstructedDataCOVIncrement{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovIncrement.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.CovIncrement),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCOVIncrementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVPeriod.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVPeriod.go
index 26e7533ddb..86a57faf23 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVPeriod.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVPeriod.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCOVPeriod) deepCopy() *_BACnetConstructedDataCOVP
 	}
 	_BACnetConstructedDataCOVPeriodCopy := &_BACnetConstructedDataCOVPeriod{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovPeriod.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CovPeriod),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCOVPeriodCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVResubscriptionInterval.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVResubscriptionInterval.go
index e93afc77f9..d84ef2eb2f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVResubscriptionInterval.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVResubscriptionInterval.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataCOVResubscriptionInterval) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataCOVResubscriptionIntervalCopy := &_BACnetConstructedDataCOVResubscriptionInterval{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovResubscriptionInterval.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CovResubscriptionInterval),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCOVResubscriptionIntervalCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVUPeriod.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVUPeriod.go
index 90c538e35f..490611c887 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVUPeriod.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCOVUPeriod.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCOVUPeriod) deepCopy() *_BACnetConstructedDataCOV
 	}
 	_BACnetConstructedDataCOVUPeriodCopy := &_BACnetConstructedDataCOVUPeriod{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovuPeriod.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CovuPeriod),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCOVUPeriodCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCalendarPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCalendarPresentValue.go
index 1b8801e031..ded42f6dc6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCalendarPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCalendarPresentValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCalendarPresentValue) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataCalendarPresentValueCopy := &_BACnetConstructedDataCalendarPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCalendarPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarAssignedDirection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarAssignedDirection.go
index e70ac5129b..f06a5c8e6b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarAssignedDirection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarAssignedDirection.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarAssignedDirection) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataCarAssignedDirectionCopy := &_BACnetConstructedDataCarAssignedDirection{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AssignedDirection.DeepCopy().(BACnetLiftCarDirectionTagged),
+		utils.DeepCopy[BACnetLiftCarDirectionTagged](m.AssignedDirection),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarAssignedDirectionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorCommand.go
index 6fd897c0d1..36e686da39 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorCommand.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataCarDoorCommand) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataCarDoorCommandCopy := &_BACnetConstructedDataCarDoorCommand{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetLiftCarDoorCommandTagged, BACnetLiftCarDoorCommandTagged](m.CarDoorCommand),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorStatus.go
index 45ff05aef3..18fb74298c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorStatus.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataCarDoorStatus) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataCarDoorStatusCopy := &_BACnetConstructedDataCarDoorStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetDoorStatusTagged, BACnetDoorStatusTagged](m.CarDoorStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorText.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorText.go
index 14054f89d7..2ec147e037 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorText.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorText.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataCarDoorText) deepCopy() *_BACnetConstructedDataCa
 	}
 	_BACnetConstructedDataCarDoorTextCopy := &_BACnetConstructedDataCarDoorText{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.CarDoorText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorZone.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorZone.go
index 12c9de3bd4..f4d5f95b09 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorZone.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDoorZone.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarDoorZone) deepCopy() *_BACnetConstructedDataCa
 	}
 	_BACnetConstructedDataCarDoorZoneCopy := &_BACnetConstructedDataCarDoorZone{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CarDoorZone.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.CarDoorZone),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarDoorZoneCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDriveStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDriveStatus.go
index 6b70043523..042de4955f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDriveStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarDriveStatus.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarDriveStatus) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataCarDriveStatusCopy := &_BACnetConstructedDataCarDriveStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CarDriveStatus.DeepCopy().(BACnetLiftCarDriveStatusTagged),
+		utils.DeepCopy[BACnetLiftCarDriveStatusTagged](m.CarDriveStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarDriveStatusCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoad.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoad.go
index 15a2431982..6a80518bc8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoad.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoad.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarLoad) deepCopy() *_BACnetConstructedDataCarLoa
 	}
 	_BACnetConstructedDataCarLoadCopy := &_BACnetConstructedDataCarLoad{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CarLoad.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.CarLoad),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarLoadCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoadUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoadUnits.go
index 8870402bc5..0b33aaff60 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoadUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarLoadUnits.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarLoadUnits) deepCopy() *_BACnetConstructedDataC
 	}
 	_BACnetConstructedDataCarLoadUnitsCopy := &_BACnetConstructedDataCarLoadUnits{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Units.DeepCopy().(BACnetEngineeringUnitsTagged),
+		utils.DeepCopy[BACnetEngineeringUnitsTagged](m.Units),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarLoadUnitsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMode.go
index d70d3e776b..5b447544b1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarMode) deepCopy() *_BACnetConstructedDataCarMod
 	}
 	_BACnetConstructedDataCarModeCopy := &_BACnetConstructedDataCarMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CarMode.DeepCopy().(BACnetLiftCarModeTagged),
+		utils.DeepCopy[BACnetLiftCarModeTagged](m.CarMode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMovingDirection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMovingDirection.go
index 148ea29440..6c5146bebb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMovingDirection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarMovingDirection.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarMovingDirection) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataCarMovingDirectionCopy := &_BACnetConstructedDataCarMovingDirection{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CarMovingDirection.DeepCopy().(BACnetLiftCarDirectionTagged),
+		utils.DeepCopy[BACnetLiftCarDirectionTagged](m.CarMovingDirection),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarMovingDirectionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarPosition.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarPosition.go
index b088176ccb..6fbe511a38 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarPosition.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCarPosition.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCarPosition) deepCopy() *_BACnetConstructedDataCa
 	}
 	_BACnetConstructedDataCarPositionCopy := &_BACnetConstructedDataCarPosition{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CarPosition.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CarPosition),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCarPositionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateCount.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateCount.go
index 929df9b05f..756383967a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateCount.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateCount.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataChangeOfStateCount) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataChangeOfStateCountCopy := &_BACnetConstructedDataChangeOfStateCount{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ChangeIfStateCount.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ChangeIfStateCount),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataChangeOfStateCountCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateTime.go
index 7ff0aad905..63c7e95f1b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangeOfStateTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataChangeOfStateTime) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataChangeOfStateTimeCopy := &_BACnetConstructedDataChangeOfStateTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ChangeOfStateTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.ChangeOfStateTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataChangeOfStateTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangesPending.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangesPending.go
index 94f6d3aa07..862b79ac3d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangesPending.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChangesPending.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataChangesPending) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataChangesPendingCopy := &_BACnetConstructedDataChangesPending{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ChangesPending.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.ChangesPending),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataChangesPendingCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelListOfObjectPropertyReferences.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelListOfObjectPropertyReferences.go
index 3a3ec302ec..fdafe07df3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelListOfObjectPropertyReferences.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelListOfObjectPropertyReferences.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataChannelListOfObjectPropertyReferences) deepCopy()
 	}
 	_BACnetConstructedDataChannelListOfObjectPropertyReferencesCopy := &_BACnetConstructedDataChannelListOfObjectPropertyReferences{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetDeviceObjectPropertyReference, BACnetDeviceObjectPropertyReference](m.References),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelNumber.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelNumber.go
index ee479cf7d9..777e0d831f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelNumber.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelNumber.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataChannelNumber) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataChannelNumberCopy := &_BACnetConstructedDataChannelNumber{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ChannelNumber.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ChannelNumber),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataChannelNumberCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelPresentValue.go
index fbc5179095..d2a9e1c676 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataChannelPresentValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataChannelPresentValue) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataChannelPresentValueCopy := &_BACnetConstructedDataChannelPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetChannelValue),
+		utils.DeepCopy[BACnetChannelValue](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataChannelPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueAlarmValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueAlarmValues.go
index ee8e32fc2c..93ec94383c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueAlarmValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueAlarmValues.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataCharacterStringValueAlarmValues) deepCopy() *_BAC
 	}
 	_BACnetConstructedDataCharacterStringValueAlarmValuesCopy := &_BACnetConstructedDataCharacterStringValueAlarmValues{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetOptionalCharacterString, BACnetOptionalCharacterString](m.AlarmValues),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueFaultValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueFaultValues.go
index af9262587e..900d34e6af 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueFaultValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueFaultValues.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataCharacterStringValueFaultValues) deepCopy() *_BAC
 	}
 	_BACnetConstructedDataCharacterStringValueFaultValuesCopy := &_BACnetConstructedDataCharacterStringValueFaultValues{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetOptionalCharacterString, BACnetOptionalCharacterString](m.FaultValues),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValuePresentValue.go
index 8ef00bbb35..49fd0a43f7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataCharacterStringValuePresentValue) deepCopy() *_BA
 	}
 	_BACnetConstructedDataCharacterStringValuePresentValueCopy := &_BACnetConstructedDataCharacterStringValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCharacterStringValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueRelinquishDefault.go
index 9fa5868742..27a8688280 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCharacterStringValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataCharacterStringValueRelinquishDefault) deepCopy()
 	}
 	_BACnetConstructedDataCharacterStringValueRelinquishDefaultCopy := &_BACnetConstructedDataCharacterStringValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCharacterStringValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataClientCOVIncrement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataClientCOVIncrement.go
index 74921440bd..024cf9b99d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataClientCOVIncrement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataClientCOVIncrement.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataClientCOVIncrement) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataClientCOVIncrementCopy := &_BACnetConstructedDataClientCOVIncrement{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovIncrement.DeepCopy().(BACnetClientCOV),
+		utils.DeepCopy[BACnetClientCOV](m.CovIncrement),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataClientCOVIncrementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommand.go
index e9406b3f92..30e0ffc229 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommand.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCommand) deepCopy() *_BACnetConstructedDataComman
 	}
 	_BACnetConstructedDataCommandCopy := &_BACnetConstructedDataCommand{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Command.DeepCopy().(BACnetNetworkPortCommandTagged),
+		utils.DeepCopy[BACnetNetworkPortCommandTagged](m.Command),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCommandCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandAction.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandAction.go
index 90653e7be7..4cba9493f1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandAction.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandAction.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataCommandAction) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataCommandActionCopy := &_BACnetConstructedDataCommandAction{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetActionList, BACnetActionList](m.ActionLists),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandTimeArray.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandTimeArray.go
index 622c39701a..47cce2d46c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandTimeArray.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCommandTimeArray.go
@@ -379,7 +379,7 @@ func (m *_BACnetConstructedDataCommandTimeArray) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataCommandTimeArrayCopy := &_BACnetConstructedDataCommandTimeArray{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetTimeStamp, BACnetTimeStamp](m.CommandTimeArray),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataConfigurationFiles.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataConfigurationFiles.go
index d9b513a2b5..0ab6685e6b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataConfigurationFiles.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataConfigurationFiles.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataConfigurationFiles) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataConfigurationFilesCopy := &_BACnetConstructedDataConfigurationFiles{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagObjectIdentifier, BACnetApplicationTagObjectIdentifier](m.ConfigurationFiles),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlGroups.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlGroups.go
index 8bf931d038..1f35f923a5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlGroups.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlGroups.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataControlGroups) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataControlGroupsCopy := &_BACnetConstructedDataControlGroups{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagUnsignedInteger, BACnetApplicationTagUnsignedInteger](m.ControlGroups),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableReference.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableReference.go
index 6cd9c21946..2b9f73f032 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableReference.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableReference.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataControlledVariableReference) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataControlledVariableReferenceCopy := &_BACnetConstructedDataControlledVariableReference{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ControlledVariableReference.DeepCopy().(BACnetObjectPropertyReference),
+		utils.DeepCopy[BACnetObjectPropertyReference](m.ControlledVariableReference),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataControlledVariableReferenceCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableUnits.go
index 45e4742292..d4c78e6551 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableUnits.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataControlledVariableUnits) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataControlledVariableUnitsCopy := &_BACnetConstructedDataControlledVariableUnits{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Units.DeepCopy().(BACnetEngineeringUnitsTagged),
+		utils.DeepCopy[BACnetEngineeringUnitsTagged](m.Units),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataControlledVariableUnitsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableValue.go
index 196982bee0..7f0412aff5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataControlledVariableValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataControlledVariableValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataControlledVariableValueCopy := &_BACnetConstructedDataControlledVariableValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ControlledVariableValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.ControlledVariableValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataControlledVariableValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCount.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCount.go
index 784ae583a8..0430921ee8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCount.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCount.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCount) deepCopy() *_BACnetConstructedDataCount {
 	}
 	_BACnetConstructedDataCountCopy := &_BACnetConstructedDataCount{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Count.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Count),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCountCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountBeforeChange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountBeforeChange.go
index 3be9e523a3..5ae833931c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountBeforeChange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountBeforeChange.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCountBeforeChange) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataCountBeforeChangeCopy := &_BACnetConstructedDataCountBeforeChange{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CountBeforeChange.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CountBeforeChange),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCountBeforeChangeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountChangeTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountChangeTime.go
index fd19b9ed88..1a9508bd9f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountChangeTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCountChangeTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCountChangeTime) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataCountChangeTimeCopy := &_BACnetConstructedDataCountChangeTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CountChangeTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.CountChangeTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCountChangeTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputPresentValue.go
index e7a4efd521..bae03b3f03 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataCredentialDataInputPresentValue) deepCopy() *_BAC
 	}
 	_BACnetConstructedDataCredentialDataInputPresentValueCopy := &_BACnetConstructedDataCredentialDataInputPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetAuthenticationFactor),
+		utils.DeepCopy[BACnetAuthenticationFactor](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCredentialDataInputPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputUpdateTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputUpdateTime.go
index 5f08878e0b..e85ae734b9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputUpdateTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDataInputUpdateTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataCredentialDataInputUpdateTime) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataCredentialDataInputUpdateTimeCopy := &_BACnetConstructedDataCredentialDataInputUpdateTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.UpdateTime.DeepCopy().(BACnetTimeStamp),
+		utils.DeepCopy[BACnetTimeStamp](m.UpdateTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCredentialDataInputUpdateTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDisable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDisable.go
index da3c425f24..53129714c7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDisable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialDisable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCredentialDisable) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataCredentialDisableCopy := &_BACnetConstructedDataCredentialDisable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CredentialDisable.DeepCopy().(BACnetAccessCredentialDisableTagged),
+		utils.DeepCopy[BACnetAccessCredentialDisableTagged](m.CredentialDisable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCredentialDisableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialStatus.go
index 0e52f6f777..5160d4670f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCredentialStatus.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataCredentialStatus) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataCredentialStatusCopy := &_BACnetConstructedDataCredentialStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.BinaryPv.DeepCopy().(BACnetBinaryPVTagged),
+		utils.DeepCopy[BACnetBinaryPVTagged](m.BinaryPv),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCredentialStatusCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCurrentCommandPriority.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCurrentCommandPriority.go
index a855798b40..d6c1496964 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCurrentCommandPriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataCurrentCommandPriority.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataCurrentCommandPriority) deepCopy() *_BACnetConstr
 	}
 	_BACnetConstructedDataCurrentCommandPriorityCopy := &_BACnetConstructedDataCurrentCommandPriority{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CurrentCommandPriority.DeepCopy().(BACnetOptionalUnsigned),
+		utils.DeepCopy[BACnetOptionalUnsigned](m.CurrentCommandPriority),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataCurrentCommandPriorityCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatabaseRevision.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatabaseRevision.go
index 8e8770cfbb..9e4da6d7c5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatabaseRevision.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatabaseRevision.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDatabaseRevision) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataDatabaseRevisionCopy := &_BACnetConstructedDataDatabaseRevision{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DatabaseRevision.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DatabaseRevision),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDatabaseRevisionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValuePresentValue.go
index 6e0da8f93d..770e710204 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDatePatternValuePresentValue) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataDatePatternValuePresentValueCopy := &_BACnetConstructedDataDatePatternValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagDate),
+		utils.DeepCopy[BACnetApplicationTagDate](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDatePatternValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValueRelinquishDefault.go
index ca57fe76e3..8ededecf4e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDatePatternValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDatePatternValueRelinquishDefault) deepCopy() *_B
 	}
 	_BACnetConstructedDataDatePatternValueRelinquishDefaultCopy := &_BACnetConstructedDataDatePatternValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagDate),
+		utils.DeepCopy[BACnetApplicationTagDate](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDatePatternValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValuePresentValue.go
index 3019b4cac2..c86089f8fb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDateTimePatternValuePresentValue) deepCopy() *_BA
 	}
 	_BACnetConstructedDataDateTimePatternValuePresentValueCopy := &_BACnetConstructedDataDateTimePatternValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDateTimePatternValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValueRelinquishDefault.go
index 243e69d5fc..fbae086dbf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimePatternValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDateTimePatternValueRelinquishDefault) deepCopy()
 	}
 	_BACnetConstructedDataDateTimePatternValueRelinquishDefaultCopy := &_BACnetConstructedDataDateTimePatternValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDateTimePatternValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValuePresentValue.go
index c1ee840475..2239856ddc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDateTimeValuePresentValue) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataDateTimeValuePresentValueCopy := &_BACnetConstructedDataDateTimeValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDateTimeValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValueRelinquishDefault.go
index 567e6198cc..74fdde4271 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateTimeValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDateTimeValueRelinquishDefault) deepCopy() *_BACn
 	}
 	_BACnetConstructedDataDateTimeValueRelinquishDefaultCopy := &_BACnetConstructedDataDateTimeValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDateTimeValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValuePresentValue.go
index 0ec824aee5..8c8ba90a16 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDateValuePresentValue) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataDateValuePresentValueCopy := &_BACnetConstructedDataDateValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagDate),
+		utils.DeepCopy[BACnetApplicationTagDate](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDateValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValueRelinquishDefault.go
index d7cf9f620e..2a24bc291c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDateValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDateValueRelinquishDefault) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataDateValueRelinquishDefaultCopy := &_BACnetConstructedDataDateValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagDate),
+		utils.DeepCopy[BACnetApplicationTagDate](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDateValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaylightSavingsStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaylightSavingsStatus.go
index 1d2c2680f1..e4bf8f28d4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaylightSavingsStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaylightSavingsStatus.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDaylightSavingsStatus) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataDaylightSavingsStatusCopy := &_BACnetConstructedDataDaylightSavingsStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DaylightSavingsStatus.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.DaylightSavingsStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDaylightSavingsStatusCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaysRemaining.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaysRemaining.go
index 0c3d5fb2c4..19ba0aec09 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaysRemaining.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDaysRemaining.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDaysRemaining) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataDaysRemainingCopy := &_BACnetConstructedDataDaysRemaining{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DaysRemaining.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.DaysRemaining),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDaysRemainingCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeadband.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeadband.go
index d80dae2186..ef49f366c6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeadband.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeadband.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDeadband) deepCopy() *_BACnetConstructedDataDeadb
 	}
 	_BACnetConstructedDataDeadbandCopy := &_BACnetConstructedDataDeadband{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Deadband.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.Deadband),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDeadbandCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultFadeTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultFadeTime.go
index 48878e89e1..d5b419c93e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultFadeTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultFadeTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDefaultFadeTime) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataDefaultFadeTimeCopy := &_BACnetConstructedDataDefaultFadeTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DefaultFadeTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DefaultFadeTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDefaultFadeTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultRampRate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultRampRate.go
index 66d213930e..b74b422c26 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultRampRate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultRampRate.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDefaultRampRate) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataDefaultRampRateCopy := &_BACnetConstructedDataDefaultRampRate{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DefaultRampRate.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.DefaultRampRate),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDefaultRampRateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultStepIncrement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultStepIncrement.go
index afc7777e0b..c6f56abdea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultStepIncrement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultStepIncrement.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDefaultStepIncrement) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataDefaultStepIncrementCopy := &_BACnetConstructedDataDefaultStepIncrement{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DefaultStepIncrement.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.DefaultStepIncrement),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDefaultStepIncrementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultSubordinateRelationship.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultSubordinateRelationship.go
index c2dc1eb7f3..6aaa036c74 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultSubordinateRelationship.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultSubordinateRelationship.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDefaultSubordinateRelationship) deepCopy() *_BACn
 	}
 	_BACnetConstructedDataDefaultSubordinateRelationshipCopy := &_BACnetConstructedDataDefaultSubordinateRelationship{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DefaultSubordinateRelationship.DeepCopy().(BACnetRelationshipTagged),
+		utils.DeepCopy[BACnetRelationshipTagged](m.DefaultSubordinateRelationship),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDefaultSubordinateRelationshipCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultTimeout.go
index 2f588392d8..e18046f5b2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDefaultTimeout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDefaultTimeout) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataDefaultTimeoutCopy := &_BACnetConstructedDataDefaultTimeout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DefaultTimeout.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DefaultTimeout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDefaultTimeoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeployedProfileLocation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeployedProfileLocation.go
index 0b15cb161d..84429cf23b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeployedProfileLocation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeployedProfileLocation.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDeployedProfileLocation) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataDeployedProfileLocationCopy := &_BACnetConstructedDataDeployedProfileLocation{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DeployedProfileLocation.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.DeployedProfileLocation),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDeployedProfileLocationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstant.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstant.go
index 9a19e5584b..d7175e593f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstant.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstant.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDerivativeConstant) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataDerivativeConstantCopy := &_BACnetConstructedDataDerivativeConstant{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DerivativeConstant.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.DerivativeConstant),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDerivativeConstantCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstantUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstantUnits.go
index 15ebb17761..cc6139c96e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstantUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDerivativeConstantUnits.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDerivativeConstantUnits) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataDerivativeConstantUnitsCopy := &_BACnetConstructedDataDerivativeConstantUnits{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Units.DeepCopy().(BACnetEngineeringUnitsTagged),
+		utils.DeepCopy[BACnetEngineeringUnitsTagged](m.Units),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDerivativeConstantUnitsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescription.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescription.go
index a1563e41ca..037caf3d7d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescription.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescription.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDescription) deepCopy() *_BACnetConstructedDataDe
 	}
 	_BACnetConstructedDataDescriptionCopy := &_BACnetConstructedDataDescription{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Description.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.Description),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDescriptionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescriptionOfHalt.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescriptionOfHalt.go
index 873e872d03..deae76cd7f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescriptionOfHalt.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDescriptionOfHalt.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDescriptionOfHalt) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataDescriptionOfHaltCopy := &_BACnetConstructedDataDescriptionOfHalt{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DescriptionForHalt.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.DescriptionForHalt),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDescriptionOfHaltCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxInfoFrames.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxInfoFrames.go
index 89f535b3d5..8690d88f81 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxInfoFrames.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxInfoFrames.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDeviceMaxInfoFrames) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataDeviceMaxInfoFramesCopy := &_BACnetConstructedDataDeviceMaxInfoFrames{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxInfoFrames.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxInfoFrames),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDeviceMaxInfoFramesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxMaster.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxMaster.go
index 5c732518e9..ea26ede5b2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxMaster.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceMaxMaster.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDeviceMaxMaster) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataDeviceMaxMasterCopy := &_BACnetConstructedDataDeviceMaxMaster{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxMaster.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxMaster),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDeviceMaxMasterCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceType.go
index 258296d529..1f136ec564 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDeviceType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDeviceType) deepCopy() *_BACnetConstructedDataDev
 	}
 	_BACnetConstructedDataDeviceTypeCopy := &_BACnetConstructedDataDeviceType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DeviceType.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.DeviceType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDeviceTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDirectReading.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDirectReading.go
index d60f13fc81..4a9cc982ef 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDirectReading.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDirectReading.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDirectReading) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataDirectReadingCopy := &_BACnetConstructedDataDirectReading{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DirectReading.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.DirectReading),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDirectReadingCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDistributionKeyRevision.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDistributionKeyRevision.go
index 14eb3391ad..0eaf29bbd2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDistributionKeyRevision.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDistributionKeyRevision.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDistributionKeyRevision) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataDistributionKeyRevisionCopy := &_BACnetConstructedDataDistributionKeyRevision{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DistributionKeyRevision.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DistributionKeyRevision),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDistributionKeyRevisionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoNotHide.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoNotHide.go
index 198011e3f3..8c74164165 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoNotHide.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoNotHide.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDoNotHide) deepCopy() *_BACnetConstructedDataDoNo
 	}
 	_BACnetConstructedDataDoNotHideCopy := &_BACnetConstructedDataDoNotHide{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DoNotHide.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.DoNotHide),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDoNotHideCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorAlarmState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorAlarmState.go
index 9a12a026c2..669b93b3ce 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorAlarmState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorAlarmState.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDoorAlarmState) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataDoorAlarmStateCopy := &_BACnetConstructedDataDoorAlarmState{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DoorAlarmState.DeepCopy().(BACnetDoorAlarmStateTagged),
+		utils.DeepCopy[BACnetDoorAlarmStateTagged](m.DoorAlarmState),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDoorAlarmStateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorExtendedPulseTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorExtendedPulseTime.go
index afe780afe2..9c8af6b4d3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorExtendedPulseTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorExtendedPulseTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataDoorExtendedPulseTime) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataDoorExtendedPulseTimeCopy := &_BACnetConstructedDataDoorExtendedPulseTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DoorExtendedPulseTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DoorExtendedPulseTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDoorExtendedPulseTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorMembers.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorMembers.go
index 79d058004b..fb928b3074 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorMembers.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorMembers.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataDoorMembers) deepCopy() *_BACnetConstructedDataDo
 	}
 	_BACnetConstructedDataDoorMembersCopy := &_BACnetConstructedDataDoorMembers{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetDeviceObjectReference, BACnetDeviceObjectReference](m.DoorMembers),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorOpenTooLongTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorOpenTooLongTime.go
index b1c2c86443..2fbcc036af 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorOpenTooLongTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorOpenTooLongTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDoorOpenTooLongTime) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataDoorOpenTooLongTimeCopy := &_BACnetConstructedDataDoorOpenTooLongTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DoorOpenTooLongTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DoorOpenTooLongTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDoorOpenTooLongTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorPulseTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorPulseTime.go
index 0a37dab44d..e9ac8e3dea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorPulseTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorPulseTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDoorPulseTime) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataDoorPulseTimeCopy := &_BACnetConstructedDataDoorPulseTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DoorPulseTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DoorPulseTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDoorPulseTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorStatus.go
index 9f8e506623..43b46b1cfc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorStatus.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDoorStatus) deepCopy() *_BACnetConstructedDataDoo
 	}
 	_BACnetConstructedDataDoorStatusCopy := &_BACnetConstructedDataDoorStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DoorStatus.DeepCopy().(BACnetDoorStatusTagged),
+		utils.DeepCopy[BACnetDoorStatusTagged](m.DoorStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDoorStatusCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorUnlockDelayTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorUnlockDelayTime.go
index 8a2865e964..62b4b0db29 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorUnlockDelayTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDoorUnlockDelayTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDoorUnlockDelayTime) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataDoorUnlockDelayTimeCopy := &_BACnetConstructedDataDoorUnlockDelayTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DoorUnlockDelayTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DoorUnlockDelayTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDoorUnlockDelayTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDutyWindow.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDutyWindow.go
index 42c8b071d8..b323a79f03 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDutyWindow.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataDutyWindow.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataDutyWindow) deepCopy() *_BACnetConstructedDataDut
 	}
 	_BACnetConstructedDataDutyWindowCopy := &_BACnetConstructedDataDutyWindow{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DutyWindow.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.DutyWindow),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataDutyWindowCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEffectivePeriod.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEffectivePeriod.go
index 9cb3b3702d..7c3fccbea2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEffectivePeriod.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEffectivePeriod.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEffectivePeriod) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataEffectivePeriodCopy := &_BACnetConstructedDataEffectivePeriod{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DateRange.DeepCopy().(BACnetDateRange),
+		utils.DeepCopy[BACnetDateRange](m.DateRange),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEffectivePeriodCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressActive.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressActive.go
index b1657bfd39..5f6ff22c21 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressActive.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressActive.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEgressActive) deepCopy() *_BACnetConstructedDataE
 	}
 	_BACnetConstructedDataEgressActiveCopy := &_BACnetConstructedDataEgressActive{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EgressActive.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.EgressActive),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEgressActiveCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressTime.go
index d43b860ec6..1a7daef23a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEgressTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEgressTime) deepCopy() *_BACnetConstructedDataEgr
 	}
 	_BACnetConstructedDataEgressTimeCopy := &_BACnetConstructedDataEgressTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EgressTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.EgressTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEgressTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElapsedActiveTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElapsedActiveTime.go
index 1e2a954985..e82d5921c0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElapsedActiveTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElapsedActiveTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataElapsedActiveTime) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataElapsedActiveTimeCopy := &_BACnetConstructedDataElapsedActiveTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ElapsedActiveTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ElapsedActiveTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataElapsedActiveTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElement.go
index 42d2c44b8e..56801fc6c9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElement.go
@@ -568,10 +568,10 @@ func (m *_BACnetConstructedDataElement) deepCopy() *_BACnetConstructedDataElemen
 		return nil
 	}
 	_BACnetConstructedDataElementCopy := &_BACnetConstructedDataElement{
-		m.PeekedTagHeader.DeepCopy().(BACnetTagHeader),
-		m.ApplicationTag.DeepCopy().(BACnetApplicationTag),
-		m.ContextTag.DeepCopy().(BACnetContextTag),
-		m.ConstructedData.DeepCopy().(BACnetConstructedData),
+		utils.DeepCopy[BACnetTagHeader](m.PeekedTagHeader),
+		utils.DeepCopy[BACnetApplicationTag](m.ApplicationTag),
+		utils.DeepCopy[BACnetContextTag](m.ContextTag),
+		utils.DeepCopy[BACnetConstructedData](m.ConstructedData),
 		m.ObjectTypeArgument,
 		m.PropertyIdentifierArgument,
 		m.ArrayIndexArgument,
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroup.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroup.go
index 7a21e99e62..42717dd1cd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroup.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroup.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataElevatorGroup) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataElevatorGroupCopy := &_BACnetConstructedDataElevatorGroup{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ElevatorGroup.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.ElevatorGroup),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataElevatorGroupCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroupGroupMembers.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroupGroupMembers.go
index eae8c767a6..03f9e6051c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroupGroupMembers.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataElevatorGroupGroupMembers.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataElevatorGroupGroupMembers) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataElevatorGroupGroupMembersCopy := &_BACnetConstructedDataElevatorGroupGroupMembers{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagObjectIdentifier, BACnetApplicationTagObjectIdentifier](m.GroupMembers),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnable.go
index 05918035c9..47cf6fc98b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEnable) deepCopy() *_BACnetConstructedDataEnable
 	}
 	_BACnetConstructedDataEnableCopy := &_BACnetConstructedDataEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Enable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.Enable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeter.go
index be876f62f0..4c9311ad51 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeter.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEnergyMeter) deepCopy() *_BACnetConstructedDataEn
 	}
 	_BACnetConstructedDataEnergyMeterCopy := &_BACnetConstructedDataEnergyMeter{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EnergyMeter.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.EnergyMeter),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEnergyMeterCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeterRef.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeterRef.go
index 7a27b0319b..96e00121e6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeterRef.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEnergyMeterRef.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEnergyMeterRef) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataEnergyMeterRefCopy := &_BACnetConstructedDataEnergyMeterRef{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EnergyMeterRef.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.EnergyMeterRef),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEnergyMeterRefCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataErrorLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataErrorLimit.go
index 657be95f07..8eed90e518 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataErrorLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataErrorLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataErrorLimit) deepCopy() *_BACnetConstructedDataErr
 	}
 	_BACnetConstructedDataErrorLimitCopy := &_BACnetConstructedDataErrorLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ErrorLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.ErrorLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataErrorLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEscalatorMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEscalatorMode.go
index 9103eac3ca..73f41d7601 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEscalatorMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEscalatorMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEscalatorMode) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataEscalatorModeCopy := &_BACnetConstructedDataEscalatorMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EscalatorMode.DeepCopy().(BACnetEscalatorModeTagged),
+		utils.DeepCopy[BACnetEscalatorModeTagged](m.EscalatorMode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEscalatorModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibit.go
index aab0b475b9..cd15e8a486 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataEventAlgorithmInhibit) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataEventAlgorithmInhibitCopy := &_BACnetConstructedDataEventAlgorithmInhibit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EventAlgorithmInhibit.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.EventAlgorithmInhibit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEventAlgorithmInhibitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibitRef.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibitRef.go
index b38e1c1945..b7777067cd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibitRef.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventAlgorithmInhibitRef.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataEventAlgorithmInhibitRef) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataEventAlgorithmInhibitRefCopy := &_BACnetConstructedDataEventAlgorithmInhibitRef{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EventAlgorithmInhibitRef.DeepCopy().(BACnetObjectPropertyReference),
+		utils.DeepCopy[BACnetObjectPropertyReference](m.EventAlgorithmInhibitRef),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEventAlgorithmInhibitRefCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventDetectionEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventDetectionEnable.go
index bd3a0329a1..08e8e006f2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventDetectionEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventDetectionEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEventDetectionEnable) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataEventDetectionEnableCopy := &_BACnetConstructedDataEventDetectionEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EventDetectionEnable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.EventDetectionEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEventDetectionEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventEnable.go
index 0b82bbda39..4877f5796b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEventEnable) deepCopy() *_BACnetConstructedDataEv
 	}
 	_BACnetConstructedDataEventEnableCopy := &_BACnetConstructedDataEventEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EventEnable.DeepCopy().(BACnetEventTransitionBitsTagged),
+		utils.DeepCopy[BACnetEventTransitionBitsTagged](m.EventEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEventEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTexts.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTexts.go
index e14fd22248..2dda0d1808 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTexts.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTexts.go
@@ -451,7 +451,7 @@ func (m *_BACnetConstructedDataEventMessageTexts) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataEventMessageTextsCopy := &_BACnetConstructedDataEventMessageTexts{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetOptionalCharacterString, BACnetOptionalCharacterString](m.EventMessageTexts),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTextsConfig.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTextsConfig.go
index 683fdcb662..0ddfe20edb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTextsConfig.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventMessageTextsConfig.go
@@ -452,7 +452,7 @@ func (m *_BACnetConstructedDataEventMessageTextsConfig) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataEventMessageTextsConfigCopy := &_BACnetConstructedDataEventMessageTextsConfig{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetOptionalCharacterString, BACnetOptionalCharacterString](m.EventMessageTextsConfig),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventParameters.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventParameters.go
index 0697bdac14..b65b3a2cc3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventParameters.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventParameters.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEventParameters) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataEventParametersCopy := &_BACnetConstructedDataEventParameters{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EventParameter.DeepCopy().(BACnetEventParameter),
+		utils.DeepCopy[BACnetEventParameter](m.EventParameter),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEventParametersCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventState.go
index 01aeea7845..2f52a77094 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventState.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEventState) deepCopy() *_BACnetConstructedDataEve
 	}
 	_BACnetConstructedDataEventStateCopy := &_BACnetConstructedDataEventState{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EventState.DeepCopy().(BACnetEventStateTagged),
+		utils.DeepCopy[BACnetEventStateTagged](m.EventState),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEventStateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventTimeStamps.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventTimeStamps.go
index 524c1d345d..ac0d04bfb3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventTimeStamps.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventTimeStamps.go
@@ -451,7 +451,7 @@ func (m *_BACnetConstructedDataEventTimeStamps) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataEventTimeStampsCopy := &_BACnetConstructedDataEventTimeStamps{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetTimeStamp, BACnetTimeStamp](m.EventTimeStamps),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventType.go
index 3e83657ace..6831ba7cb2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataEventType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataEventType) deepCopy() *_BACnetConstructedDataEven
 	}
 	_BACnetConstructedDataEventTypeCopy := &_BACnetConstructedDataEventType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.EventType.DeepCopy().(BACnetEventTypeTagged),
+		utils.DeepCopy[BACnetEventTypeTagged](m.EventType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataEventTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExceptionSchedule.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExceptionSchedule.go
index 754b26331a..781204542c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExceptionSchedule.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExceptionSchedule.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataExceptionSchedule) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataExceptionScheduleCopy := &_BACnetConstructedDataExceptionSchedule{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetSpecialEvent, BACnetSpecialEvent](m.ExceptionSchedule),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExecutionDelay.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExecutionDelay.go
index 390e9697f5..880fb0bd3f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExecutionDelay.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExecutionDelay.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataExecutionDelay) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataExecutionDelayCopy := &_BACnetConstructedDataExecutionDelay{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagUnsignedInteger, BACnetApplicationTagUnsignedInteger](m.ExecutionDelay),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpectedShedLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpectedShedLevel.go
index 28e6320987..70e7039289 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpectedShedLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpectedShedLevel.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataExpectedShedLevel) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataExpectedShedLevelCopy := &_BACnetConstructedDataExpectedShedLevel{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ExpectedShedLevel.DeepCopy().(BACnetShedLevel),
+		utils.DeepCopy[BACnetShedLevel](m.ExpectedShedLevel),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataExpectedShedLevelCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpirationTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpirationTime.go
index 427c50ee46..74918a8408 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpirationTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExpirationTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataExpirationTime) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataExpirationTimeCopy := &_BACnetConstructedDataExpirationTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ExpirationTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.ExpirationTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataExpirationTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExtendedTimeEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExtendedTimeEnable.go
index 7949c68638..adea31d5fa 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExtendedTimeEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataExtendedTimeEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataExtendedTimeEnable) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataExtendedTimeEnableCopy := &_BACnetConstructedDataExtendedTimeEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ExtendedTimeEnable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.ExtendedTimeEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataExtendedTimeEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDBBMDAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDBBMDAddress.go
index 8d8a8392dc..ae0c412f5f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDBBMDAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDBBMDAddress.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFDBBMDAddress) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataFDBBMDAddressCopy := &_BACnetConstructedDataFDBBMDAddress{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FDBBMDAddress.DeepCopy().(BACnetHostNPort),
+		utils.DeepCopy[BACnetHostNPort](m.FDBBMDAddress),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFDBBMDAddressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDSubscriptionLifetime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDSubscriptionLifetime.go
index c3377aaafd..7d4195cb8b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDSubscriptionLifetime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFDSubscriptionLifetime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataFDSubscriptionLifetime) deepCopy() *_BACnetConstr
 	}
 	_BACnetConstructedDataFDSubscriptionLifetimeCopy := &_BACnetConstructedDataFDSubscriptionLifetime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FdSubscriptionLifetime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FdSubscriptionLifetime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFDSubscriptionLifetimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttempts.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttempts.go
index 050456e752..c23c2102ce 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttempts.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttempts.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFailedAttempts) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataFailedAttemptsCopy := &_BACnetConstructedDataFailedAttempts{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FailedAttempts.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FailedAttempts),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFailedAttemptsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttemptsTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttemptsTime.go
index 095145e457..9c6e2015a4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttemptsTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFailedAttemptsTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFailedAttemptsTime) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataFailedAttemptsTimeCopy := &_BACnetConstructedDataFailedAttemptsTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FailedAttemptsTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FailedAttemptsTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFailedAttemptsTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultHighLimit.go
index 4ab7f50aa0..4f51d9474d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultHighLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFaultHighLimit) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataFaultHighLimitCopy := &_BACnetConstructedDataFaultHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultHighLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FaultHighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFaultHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultLowLimit.go
index e208f52426..a3711f69d9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultLowLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFaultLowLimit) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataFaultLowLimitCopy := &_BACnetConstructedDataFaultLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultLowLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.FaultLowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFaultLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultParameters.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultParameters.go
index eb32c53d31..752b8ec7ac 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultParameters.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultParameters.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFaultParameters) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataFaultParametersCopy := &_BACnetConstructedDataFaultParameters{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultParameters.DeepCopy().(BACnetFaultParameter),
+		utils.DeepCopy[BACnetFaultParameter](m.FaultParameters),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFaultParametersCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultType.go
index 20ed4a6d7a..e1104068fc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFaultType) deepCopy() *_BACnetConstructedDataFaul
 	}
 	_BACnetConstructedDataFaultTypeCopy := &_BACnetConstructedDataFaultType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultType.DeepCopy().(BACnetFaultTypeTagged),
+		utils.DeepCopy[BACnetFaultTypeTagged](m.FaultType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFaultTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultValues.go
index 2bbf249a81..7dbca5e026 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFaultValues.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataFaultValues) deepCopy() *_BACnetConstructedDataFa
 	}
 	_BACnetConstructedDataFaultValuesCopy := &_BACnetConstructedDataFaultValues{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetLifeSafetyStateTagged, BACnetLifeSafetyStateTagged](m.FaultValues),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileAccessMethod.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileAccessMethod.go
index 4d9ca14745..27d6fe69f8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileAccessMethod.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileAccessMethod.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFileAccessMethod) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataFileAccessMethodCopy := &_BACnetConstructedDataFileAccessMethod{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FileAccessMethod.DeepCopy().(BACnetFileAccessMethodTagged),
+		utils.DeepCopy[BACnetFileAccessMethodTagged](m.FileAccessMethod),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFileAccessMethodCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileRecordCount.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileRecordCount.go
index a824e0e27d..647ac5419d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileRecordCount.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileRecordCount.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFileRecordCount) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataFileRecordCountCopy := &_BACnetConstructedDataFileRecordCount{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RecordCount.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RecordCount),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFileRecordCountCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileSize.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileSize.go
index 243594f490..8fbe9a2245 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileSize.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileSize.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFileSize) deepCopy() *_BACnetConstructedDataFileS
 	}
 	_BACnetConstructedDataFileSizeCopy := &_BACnetConstructedDataFileSize{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FileSize.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FileSize),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFileSizeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileType.go
index a61c8f04e3..5621a6ac66 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFileType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFileType) deepCopy() *_BACnetConstructedDataFileT
 	}
 	_BACnetConstructedDataFileTypeCopy := &_BACnetConstructedDataFileType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FileType.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.FileType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFileTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFirmwareRevision.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFirmwareRevision.go
index ee33e194ff..09c3b1fc90 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFirmwareRevision.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFirmwareRevision.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFirmwareRevision) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataFirmwareRevisionCopy := &_BACnetConstructedDataFirmwareRevision{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FirmwareRevision.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.FirmwareRevision),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFirmwareRevisionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFloorText.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFloorText.go
index 975484a90b..cc64e97b94 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFloorText.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFloorText.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataFloorText) deepCopy() *_BACnetConstructedDataFloo
 	}
 	_BACnetConstructedDataFloorTextCopy := &_BACnetConstructedDataFloorText{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.FloorText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFullDutyBaseline.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFullDutyBaseline.go
index f8f9330420..7079877553 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFullDutyBaseline.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataFullDutyBaseline.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataFullDutyBaseline) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataFullDutyBaselineCopy := &_BACnetConstructedDataFullDutyBaseline{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FullDutyBaseLine.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.FullDutyBaseLine),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataFullDutyBaselineCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupGroupMembers.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupGroupMembers.go
index c8f12db7ec..863878d16b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupGroupMembers.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupGroupMembers.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataGlobalGroupGroupMembers) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataGlobalGroupGroupMembersCopy := &_BACnetConstructedDataGlobalGroupGroupMembers{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetDeviceObjectPropertyReference, BACnetDeviceObjectPropertyReference](m.GroupMembers),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupPresentValue.go
index b8771a7fc0..48543daab6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalGroupPresentValue.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataGlobalGroupPresentValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataGlobalGroupPresentValueCopy := &_BACnetConstructedDataGlobalGroupPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetPropertyAccessResult, BACnetPropertyAccessResult](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalIdentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalIdentifier.go
index 26754d7f58..2b48ab833f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalIdentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGlobalIdentifier.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataGlobalIdentifier) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataGlobalIdentifierCopy := &_BACnetConstructedDataGlobalIdentifier{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.GlobalIdentifier.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.GlobalIdentifier),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataGlobalIdentifierCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupID.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupID.go
index 40a3e4608d..8d6e86591a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupID.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupID.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataGroupID) deepCopy() *_BACnetConstructedDataGroupI
 	}
 	_BACnetConstructedDataGroupIDCopy := &_BACnetConstructedDataGroupID{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.GroupId.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.GroupId),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataGroupIDCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMemberNames.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMemberNames.go
index 9124c3239e..42a70c8094 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMemberNames.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMemberNames.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataGroupMemberNames) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataGroupMemberNamesCopy := &_BACnetConstructedDataGroupMemberNames{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.GroupMemberNames),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMembers.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMembers.go
index 6b79e6ce97..017bda7dd9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMembers.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMembers.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataGroupMembers) deepCopy() *_BACnetConstructedDataG
 	}
 	_BACnetConstructedDataGroupMembersCopy := &_BACnetConstructedDataGroupMembers{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagObjectIdentifier, BACnetApplicationTagObjectIdentifier](m.GroupMembers),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMode.go
index ef1bf9395c..e6d1b89246 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataGroupMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataGroupMode) deepCopy() *_BACnetConstructedDataGrou
 	}
 	_BACnetConstructedDataGroupModeCopy := &_BACnetConstructedDataGroupMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.GroupMode.DeepCopy().(BACnetLiftGroupModeTagged),
+		utils.DeepCopy[BACnetLiftGroupModeTagged](m.GroupMode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataGroupModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHighLimit.go
index 83fea56c57..3c74348756 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHighLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataHighLimit) deepCopy() *_BACnetConstructedDataHigh
 	}
 	_BACnetConstructedDataHighLimitCopy := &_BACnetConstructedDataHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.HighLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.HighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHigherDeck.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHigherDeck.go
index 3698a40d48..572126d836 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHigherDeck.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataHigherDeck.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataHigherDeck) deepCopy() *_BACnetConstructedDataHig
 	}
 	_BACnetConstructedDataHigherDeckCopy := &_BACnetConstructedDataHigherDeck{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.HigherDeck.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.HigherDeck),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataHigherDeckCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPAddress.go
index e6d79bd2a6..0d42fa9438 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPAddress.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPAddress) deepCopy() *_BACnetConstructedDataIPAd
 	}
 	_BACnetConstructedDataIPAddressCopy := &_BACnetConstructedDataIPAddress{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpAddress.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.IpAddress),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPAddressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPEnable.go
index 5b61852004..605520a0d5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPDHCPEnable) deepCopy() *_BACnetConstructedDataI
 	}
 	_BACnetConstructedDataIPDHCPEnableCopy := &_BACnetConstructedDataIPDHCPEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpDhcpEnable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.IpDhcpEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPDHCPEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTime.go
index 79670c6ac5..80f0d3c3b2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPDHCPLeaseTime) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataIPDHCPLeaseTimeCopy := &_BACnetConstructedDataIPDHCPLeaseTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpDhcpLeaseTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.IpDhcpLeaseTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPDHCPLeaseTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTimeRemaining.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTimeRemaining.go
index 2944fa101e..c0cba20275 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTimeRemaining.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPLeaseTimeRemaining.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIPDHCPLeaseTimeRemaining) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataIPDHCPLeaseTimeRemainingCopy := &_BACnetConstructedDataIPDHCPLeaseTimeRemaining{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpDhcpLeaseTimeRemaining.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.IpDhcpLeaseTimeRemaining),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPDHCPLeaseTimeRemainingCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPServer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPServer.go
index f0d7663581..fc33f3d5ff 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPServer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDHCPServer.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPDHCPServer) deepCopy() *_BACnetConstructedDataI
 	}
 	_BACnetConstructedDataIPDHCPServerCopy := &_BACnetConstructedDataIPDHCPServer{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DhcpServer.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.DhcpServer),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPDHCPServerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDNSServer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDNSServer.go
index 7e7a718a65..963da4df66 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDNSServer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDNSServer.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataIPDNSServer) deepCopy() *_BACnetConstructedDataIP
 	}
 	_BACnetConstructedDataIPDNSServerCopy := &_BACnetConstructedDataIPDNSServer{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagOctetString, BACnetApplicationTagOctetString](m.IpDnsServer),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDefaultGateway.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDefaultGateway.go
index 6836a898a1..88e85db6b5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDefaultGateway.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPDefaultGateway.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPDefaultGateway) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataIPDefaultGatewayCopy := &_BACnetConstructedDataIPDefaultGateway{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpDefaultGateway.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.IpDefaultGateway),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPDefaultGatewayCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPSubnetMask.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPSubnetMask.go
index 979e664c0d..c776eb22f4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPSubnetMask.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPSubnetMask.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPSubnetMask) deepCopy() *_BACnetConstructedDataI
 	}
 	_BACnetConstructedDataIPSubnetMaskCopy := &_BACnetConstructedDataIPSubnetMask{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IpSubnetMask.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.IpSubnetMask),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPSubnetMaskCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6Address.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6Address.go
index 8d107e76bb..22b237f620 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6Address.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6Address.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPv6Address) deepCopy() *_BACnetConstructedDataIP
 	}
 	_BACnetConstructedDataIPv6AddressCopy := &_BACnetConstructedDataIPv6Address{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6Address.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.Ipv6Address),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6AddressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6AutoAddressingEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6AutoAddressingEnable.go
index 07f8153f83..c19c55d8bd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6AutoAddressingEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6AutoAddressingEnable.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIPv6AutoAddressingEnable) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataIPv6AutoAddressingEnableCopy := &_BACnetConstructedDataIPv6AutoAddressingEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AutoAddressingEnable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.AutoAddressingEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6AutoAddressingEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTime.go
index 9504995b1c..87af760e98 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPv6DHCPLeaseTime) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataIPv6DHCPLeaseTimeCopy := &_BACnetConstructedDataIPv6DHCPLeaseTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6DhcpLeaseTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Ipv6DhcpLeaseTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6DHCPLeaseTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTimeRemaining.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTimeRemaining.go
index cdfe3fca88..a667a976ad 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTimeRemaining.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPLeaseTimeRemaining.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIPv6DHCPLeaseTimeRemaining) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataIPv6DHCPLeaseTimeRemainingCopy := &_BACnetConstructedDataIPv6DHCPLeaseTimeRemaining{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6DhcpLeaseTimeRemaining.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Ipv6DhcpLeaseTimeRemaining),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6DHCPLeaseTimeRemainingCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPServer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPServer.go
index 08b8abecf4..db9175837e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPServer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DHCPServer.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPv6DHCPServer) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataIPv6DHCPServerCopy := &_BACnetConstructedDataIPv6DHCPServer{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.DhcpServer.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.DhcpServer),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6DHCPServerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DNSServer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DNSServer.go
index 8287fdf80b..f24d505b61 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DNSServer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DNSServer.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataIPv6DNSServer) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataIPv6DNSServerCopy := &_BACnetConstructedDataIPv6DNSServer{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagOctetString, BACnetApplicationTagOctetString](m.Ipv6DnsServer),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DefaultGateway.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DefaultGateway.go
index 4d29e43824..8c543d4f70 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DefaultGateway.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6DefaultGateway.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPv6DefaultGateway) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataIPv6DefaultGatewayCopy := &_BACnetConstructedDataIPv6DefaultGateway{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6DefaultGateway.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.Ipv6DefaultGateway),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6DefaultGatewayCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6PrefixLength.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6PrefixLength.go
index 493414e7da..bc6cc71ab0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6PrefixLength.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6PrefixLength.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPv6PrefixLength) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataIPv6PrefixLengthCopy := &_BACnetConstructedDataIPv6PrefixLength{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6PrefixLength.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Ipv6PrefixLength),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6PrefixLengthCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6ZoneIndex.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6ZoneIndex.go
index b742ac2237..6062c3fed3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6ZoneIndex.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIPv6ZoneIndex.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIPv6ZoneIndex) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataIPv6ZoneIndexCopy := &_BACnetConstructedDataIPv6ZoneIndex{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Ipv6ZoneIndex.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.Ipv6ZoneIndex),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIPv6ZoneIndexCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProcess.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProcess.go
index 96c5e7f800..64823990d0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProcess.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProcess.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInProcess) deepCopy() *_BACnetConstructedDataInPr
 	}
 	_BACnetConstructedDataInProcessCopy := &_BACnetConstructedDataInProcess{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InProcess.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.InProcess),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInProcessCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProgress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProgress.go
index c368f48163..a503315fdc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProgress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInProgress.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInProgress) deepCopy() *_BACnetConstructedDataInP
 	}
 	_BACnetConstructedDataInProgressCopy := &_BACnetConstructedDataInProgress{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InProgress.DeepCopy().(BACnetLightingInProgressTagged),
+		utils.DeepCopy[BACnetLightingInProgressTagged](m.InProgress),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInProgressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInactiveText.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInactiveText.go
index 600c081b49..ae02a20555 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInactiveText.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInactiveText.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInactiveText) deepCopy() *_BACnetConstructedDataI
 	}
 	_BACnetConstructedDataInactiveTextCopy := &_BACnetConstructedDataInactiveText{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InactiveText.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.InactiveText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInactiveTextCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInitialTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInitialTimeout.go
index 4666ce7036..6a0dec9b89 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInitialTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInitialTimeout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInitialTimeout) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataInitialTimeoutCopy := &_BACnetConstructedDataInitialTimeout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InitialTimeout.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.InitialTimeout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInitialTimeoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInputReference.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInputReference.go
index 9930eb2373..b3a6a28b46 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInputReference.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInputReference.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInputReference) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataInputReferenceCopy := &_BACnetConstructedDataInputReference{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InputReference.DeepCopy().(BACnetObjectPropertyReference),
+		utils.DeepCopy[BACnetObjectPropertyReference](m.InputReference),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInputReferenceCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstallationID.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstallationID.go
index f3c5b1c636..4b7419c96a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstallationID.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstallationID.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInstallationID) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataInstallationIDCopy := &_BACnetConstructedDataInstallationID{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InstallationId.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.InstallationId),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInstallationIDCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstanceOf.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstanceOf.go
index 40df46fb8f..91fee167e4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstanceOf.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstanceOf.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInstanceOf) deepCopy() *_BACnetConstructedDataIns
 	}
 	_BACnetConstructedDataInstanceOfCopy := &_BACnetConstructedDataInstanceOf{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InstanceOf.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.InstanceOf),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInstanceOfCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstantaneousPower.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstantaneousPower.go
index 862930a0c1..70e4f2ad1b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstantaneousPower.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataInstantaneousPower.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataInstantaneousPower) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataInstantaneousPowerCopy := &_BACnetConstructedDataInstantaneousPower{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InstantaneousPower.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.InstantaneousPower),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataInstantaneousPowerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueCOVIncrement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueCOVIncrement.go
index 0d6eddd670..15209e9945 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueCOVIncrement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueCOVIncrement.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueCOVIncrement) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataIntegerValueCOVIncrementCopy := &_BACnetConstructedDataIntegerValueCOVIncrement{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovIncrement.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CovIncrement),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueCOVIncrementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueDeadband.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueDeadband.go
index c14bb129ce..202b2dd6c5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueDeadband.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueDeadband.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIntegerValueDeadband) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataIntegerValueDeadbandCopy := &_BACnetConstructedDataIntegerValueDeadband{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Deadband.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Deadband),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueDeadbandCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultHighLimit.go
index 26c731ddb8..c8b35c9b0e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueFaultHighLimit) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataIntegerValueFaultHighLimitCopy := &_BACnetConstructedDataIntegerValueFaultHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultHighLimit.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.FaultHighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueFaultHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultLowLimit.go
index 7044c3e159..8b41dba159 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueFaultLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueFaultLowLimit) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataIntegerValueFaultLowLimitCopy := &_BACnetConstructedDataIntegerValueFaultLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultLowLimit.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.FaultLowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueFaultLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueHighLimit.go
index 5faaeddafe..1a5db0da00 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueHighLimit) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataIntegerValueHighLimitCopy := &_BACnetConstructedDataIntegerValueHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.HighLimit.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.HighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueLowLimit.go
index 80a13c542b..139270c0df 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueLowLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIntegerValueLowLimit) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataIntegerValueLowLimitCopy := &_BACnetConstructedDataIntegerValueLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LowLimit.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.LowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMaxPresValue.go
index 9cbfef8f8e..fa9bc570de 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMaxPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueMaxPresValue) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataIntegerValueMaxPresValueCopy := &_BACnetConstructedDataIntegerValueMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMinPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMinPresValue.go
index 413cedf767..47f0d6510a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMinPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueMinPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueMinPresValue) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataIntegerValueMinPresValueCopy := &_BACnetConstructedDataIntegerValueMinPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinPresValue.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.MinPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueMinPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValuePresentValue.go
index 91fc5f1ec5..00dcc93e98 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValuePresentValue) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataIntegerValuePresentValueCopy := &_BACnetConstructedDataIntegerValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueRelinquishDefault.go
index 6dba14299f..ef4d63ccf1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueRelinquishDefault) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataIntegerValueRelinquishDefaultCopy := &_BACnetConstructedDataIntegerValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueResolution.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueResolution.go
index f3a79e88a8..90e05852a8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueResolution.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegerValueResolution.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegerValueResolution) deepCopy() *_BACnetConstr
 	}
 	_BACnetConstructedDataIntegerValueResolutionCopy := &_BACnetConstructedDataIntegerValueResolution{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Resolution.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.Resolution),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegerValueResolutionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstant.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstant.go
index d5db0ead90..84ed984393 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstant.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstant.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIntegralConstant) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataIntegralConstantCopy := &_BACnetConstructedDataIntegralConstant{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IntegralConstant.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.IntegralConstant),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegralConstantCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstantUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstantUnits.go
index 7435279f56..eecafbafe4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstantUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntegralConstantUnits.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataIntegralConstantUnits) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataIntegralConstantUnitsCopy := &_BACnetConstructedDataIntegralConstantUnits{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Units.DeepCopy().(BACnetEngineeringUnitsTagged),
+		utils.DeepCopy[BACnetEngineeringUnitsTagged](m.Units),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntegralConstantUnitsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntervalOffset.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntervalOffset.go
index 2c8c9cb20b..526a032cab 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntervalOffset.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIntervalOffset.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIntervalOffset) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataIntervalOffsetCopy := &_BACnetConstructedDataIntervalOffset{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IntervalOffset.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.IntervalOffset),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIntervalOffsetCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIsUTC.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIsUTC.go
index 87479bc16e..900101b03b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIsUTC.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataIsUTC.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataIsUTC) deepCopy() *_BACnetConstructedDataIsUTC {
 	}
 	_BACnetConstructedDataIsUTCCopy := &_BACnetConstructedDataIsUTC{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.IsUtc.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.IsUtc),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataIsUTCCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataKeySets.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataKeySets.go
index 94fd4a2b3a..71b3228a79 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataKeySets.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataKeySets.go
@@ -379,7 +379,7 @@ func (m *_BACnetConstructedDataKeySets) deepCopy() *_BACnetConstructedDataKeySet
 	}
 	_BACnetConstructedDataKeySetsCopy := &_BACnetConstructedDataKeySets{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetSecurityKeySet, BACnetSecurityKeySet](m.KeySets),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingCallControl.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingCallControl.go
index d2a34bffee..722d13c8c4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingCallControl.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingCallControl.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLandingCallControl) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataLandingCallControlCopy := &_BACnetConstructedDataLandingCallControl{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LandingCallControl.DeepCopy().(BACnetLandingCallStatus),
+		utils.DeepCopy[BACnetLandingCallStatus](m.LandingCallControl),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLandingCallControlCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingDoorStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingDoorStatus.go
index 80e98f74be..fbe7688d7d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingDoorStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLandingDoorStatus.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataLandingDoorStatus) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataLandingDoorStatusCopy := &_BACnetConstructedDataLandingDoorStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetLandingDoorStatus, BACnetLandingDoorStatus](m.LandingDoorStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueCOVIncrement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueCOVIncrement.go
index 49487a8a76..768fb305df 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueCOVIncrement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueCOVIncrement.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueCOVIncrement) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataLargeAnalogValueCOVIncrementCopy := &_BACnetConstructedDataLargeAnalogValueCOVIncrement{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovIncrement.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.CovIncrement),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueCOVIncrementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueDeadband.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueDeadband.go
index 496c2b46da..7c94d8f518 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueDeadband.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueDeadband.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueDeadband) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataLargeAnalogValueDeadbandCopy := &_BACnetConstructedDataLargeAnalogValueDeadband{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Deadband.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.Deadband),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueDeadbandCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultHighLimit.go
index 4da71971f5..9eaddb65ee 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueFaultHighLimit) deepCopy() *_BACn
 	}
 	_BACnetConstructedDataLargeAnalogValueFaultHighLimitCopy := &_BACnetConstructedDataLargeAnalogValueFaultHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultHighLimit.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.FaultHighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueFaultHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultLowLimit.go
index 710db501ef..464bdb91b0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueFaultLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueFaultLowLimit) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataLargeAnalogValueFaultLowLimitCopy := &_BACnetConstructedDataLargeAnalogValueFaultLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultLowLimit.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.FaultLowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueFaultLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueHighLimit.go
index f5578ffd2a..d8e64ae4e8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueHighLimit) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataLargeAnalogValueHighLimitCopy := &_BACnetConstructedDataLargeAnalogValueHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.HighLimit.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.HighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueLowLimit.go
index e43d0e2cf0..27fc5d8cda 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueLowLimit) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataLargeAnalogValueLowLimitCopy := &_BACnetConstructedDataLargeAnalogValueLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LowLimit.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.LowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMaxPresValue.go
index 6bc5a985de..b65fdfc676 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMaxPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueMaxPresValue) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataLargeAnalogValueMaxPresValueCopy := &_BACnetConstructedDataLargeAnalogValueMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMinPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMinPresValue.go
index f96c4a5849..0cc3b29073 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMinPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueMinPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueMinPresValue) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataLargeAnalogValueMinPresValueCopy := &_BACnetConstructedDataLargeAnalogValueMinPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinPresValue.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.MinPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueMinPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValuePresentValue.go
index c475bde733..c072c5fd53 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValuePresentValue) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataLargeAnalogValuePresentValueCopy := &_BACnetConstructedDataLargeAnalogValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueRelinquishDefault.go
index 3ba315aeb0..921ced50f3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueRelinquishDefault) deepCopy() *_B
 	}
 	_BACnetConstructedDataLargeAnalogValueRelinquishDefaultCopy := &_BACnetConstructedDataLargeAnalogValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueResolution.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueResolution.go
index ea0360482d..305d6e35a4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueResolution.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLargeAnalogValueResolution.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLargeAnalogValueResolution) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataLargeAnalogValueResolutionCopy := &_BACnetConstructedDataLargeAnalogValueResolution{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Resolution.DeepCopy().(BACnetApplicationTagDouble),
+		utils.DeepCopy[BACnetApplicationTagDouble](m.Resolution),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLargeAnalogValueResolutionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessEvent.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessEvent.go
index bf95a8d8d3..75ef487da2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessEvent.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessEvent.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastAccessEvent) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataLastAccessEventCopy := &_BACnetConstructedDataLastAccessEvent{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastAccessEvent.DeepCopy().(BACnetAccessEventTagged),
+		utils.DeepCopy[BACnetAccessEventTagged](m.LastAccessEvent),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastAccessEventCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessPoint.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessPoint.go
index 3d73ff3c50..45a9dd2db1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessPoint.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastAccessPoint.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastAccessPoint) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataLastAccessPointCopy := &_BACnetConstructedDataLastAccessPoint{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastAccessPoint.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.LastAccessPoint),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastAccessPointCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCommandTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCommandTime.go
index 1da079f82b..02700002cc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCommandTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCommandTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastCommandTime) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataLastCommandTimeCopy := &_BACnetConstructedDataLastCommandTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastCommandTime.DeepCopy().(BACnetTimeStamp),
+		utils.DeepCopy[BACnetTimeStamp](m.LastCommandTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastCommandTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAdded.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAdded.go
index 9463ecd032..2cacb73c99 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAdded.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAdded.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastCredentialAdded) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataLastCredentialAddedCopy := &_BACnetConstructedDataLastCredentialAdded{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastCredentialAdded.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.LastCredentialAdded),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastCredentialAddedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAddedTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAddedTime.go
index 510b41df77..45f4e843fd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAddedTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialAddedTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLastCredentialAddedTime) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataLastCredentialAddedTimeCopy := &_BACnetConstructedDataLastCredentialAddedTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastCredentialAddedTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.LastCredentialAddedTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastCredentialAddedTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemoved.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemoved.go
index 786e23d0a2..43fa9a378a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemoved.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemoved.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLastCredentialRemoved) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataLastCredentialRemovedCopy := &_BACnetConstructedDataLastCredentialRemoved{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastCredentialRemoved.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.LastCredentialRemoved),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastCredentialRemovedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemovedTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemovedTime.go
index cd0f32a56c..ecb2e6ca20 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemovedTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastCredentialRemovedTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLastCredentialRemovedTime) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataLastCredentialRemovedTimeCopy := &_BACnetConstructedDataLastCredentialRemovedTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastCredentialRemovedTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.LastCredentialRemovedTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastCredentialRemovedTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastKeyServer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastKeyServer.go
index ec8d34aed0..676fd93251 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastKeyServer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastKeyServer.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastKeyServer) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataLastKeyServerCopy := &_BACnetConstructedDataLastKeyServer{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastKeyServer.DeepCopy().(BACnetAddressBinding),
+		utils.DeepCopy[BACnetAddressBinding](m.LastKeyServer),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastKeyServerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastNotifyRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastNotifyRecord.go
index 9b88f7abd3..bc8ad5a4a7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastNotifyRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastNotifyRecord.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastNotifyRecord) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataLastNotifyRecordCopy := &_BACnetConstructedDataLastNotifyRecord{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastNotifyRecord.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LastNotifyRecord),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastNotifyRecordCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastPriority.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastPriority.go
index eb917afeb2..afa5c84694 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastPriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastPriority.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastPriority) deepCopy() *_BACnetConstructedDataL
 	}
 	_BACnetConstructedDataLastPriorityCopy := &_BACnetConstructedDataLastPriority{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastPriority.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LastPriority),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastPriorityCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestartReason.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestartReason.go
index 226eff8d5c..502d6d46ac 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestartReason.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestartReason.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastRestartReason) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataLastRestartReasonCopy := &_BACnetConstructedDataLastRestartReason{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastRestartReason.DeepCopy().(BACnetRestartReasonTagged),
+		utils.DeepCopy[BACnetRestartReasonTagged](m.LastRestartReason),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastRestartReasonCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestoreTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestoreTime.go
index 8cf9196004..e85e9df491 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestoreTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastRestoreTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastRestoreTime) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataLastRestoreTimeCopy := &_BACnetConstructedDataLastRestoreTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastRestoreTime.DeepCopy().(BACnetTimeStamp),
+		utils.DeepCopy[BACnetTimeStamp](m.LastRestoreTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastRestoreTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastStateChange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastStateChange.go
index ac65d022d3..098d0dbba5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastStateChange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastStateChange.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastStateChange) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataLastStateChangeCopy := &_BACnetConstructedDataLastStateChange{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastStateChange.DeepCopy().(BACnetTimerTransitionTagged),
+		utils.DeepCopy[BACnetTimerTransitionTagged](m.LastStateChange),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastStateChangeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastUseTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastUseTime.go
index cc747a78dd..44e0b3e64b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastUseTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLastUseTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLastUseTime) deepCopy() *_BACnetConstructedDataLa
 	}
 	_BACnetConstructedDataLastUseTimeCopy := &_BACnetConstructedDataLastUseTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LastUseTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.LastUseTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLastUseTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointPresentValue.go
index 250aa6e8be..324802db8e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLifeSafetyPointPresentValue) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataLifeSafetyPointPresentValueCopy := &_BACnetConstructedDataLifeSafetyPointPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetLifeSafetyStateTagged),
+		utils.DeepCopy[BACnetLifeSafetyStateTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLifeSafetyPointPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMaintenanceRequired.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMaintenanceRequired.go
index d07c59a8ea..4e50381426 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMaintenanceRequired.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMaintenanceRequired.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLifeSafetyZoneMaintenanceRequired) deepCopy() *_B
 	}
 	_BACnetConstructedDataLifeSafetyZoneMaintenanceRequiredCopy := &_BACnetConstructedDataLifeSafetyZoneMaintenanceRequired{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaintenanceRequired.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.MaintenanceRequired),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLifeSafetyZoneMaintenanceRequiredCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZonePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZonePresentValue.go
index 48e387b0b6..5cc4ab9079 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZonePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZonePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLifeSafetyZonePresentValue) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataLifeSafetyZonePresentValueCopy := &_BACnetConstructedDataLifeSafetyZonePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetLifeSafetyStateTagged),
+		utils.DeepCopy[BACnetLifeSafetyStateTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLifeSafetyZonePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommand.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommand.go
index d195d8c346..4c9315e81f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommand.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommand.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLightingCommand) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataLightingCommandCopy := &_BACnetConstructedDataLightingCommand{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LightingCommand.DeepCopy().(BACnetLightingCommand),
+		utils.DeepCopy[BACnetLightingCommand](m.LightingCommand),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLightingCommandCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommandDefaultPriority.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommandDefaultPriority.go
index d0cb916854..6f42623924 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommandDefaultPriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingCommandDefaultPriority.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLightingCommandDefaultPriority) deepCopy() *_BACn
 	}
 	_BACnetConstructedDataLightingCommandDefaultPriorityCopy := &_BACnetConstructedDataLightingCommandDefaultPriority{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LightingCommandDefaultPriority.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LightingCommandDefaultPriority),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLightingCommandDefaultPriorityCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputFeedbackValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputFeedbackValue.go
index b6f6bdab4d..1d9531ff83 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputFeedbackValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputFeedbackValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLightingOutputFeedbackValue) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataLightingOutputFeedbackValueCopy := &_BACnetConstructedDataLightingOutputFeedbackValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FeedbackValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.FeedbackValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLightingOutputFeedbackValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputPresentValue.go
index c5bb30bb11..3b46ede49d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLightingOutputPresentValue) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataLightingOutputPresentValueCopy := &_BACnetConstructedDataLightingOutputPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLightingOutputPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputRelinquishDefault.go
index 0eeb4ccc99..ad9db930b2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLightingOutputRelinquishDefault) deepCopy() *_BAC
 	}
 	_BACnetConstructedDataLightingOutputRelinquishDefaultCopy := &_BACnetConstructedDataLightingOutputRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLightingOutputRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputTrackingValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputTrackingValue.go
index ddab23886e..fe1674c562 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputTrackingValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLightingOutputTrackingValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLightingOutputTrackingValue) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataLightingOutputTrackingValueCopy := &_BACnetConstructedDataLightingOutputTrackingValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.TrackingValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.TrackingValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLightingOutputTrackingValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitEnable.go
index 2b8c8ae320..dfd9116464 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLimitEnable) deepCopy() *_BACnetConstructedDataLi
 	}
 	_BACnetConstructedDataLimitEnableCopy := &_BACnetConstructedDataLimitEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LimitEnable.DeepCopy().(BACnetLimitEnableTagged),
+		utils.DeepCopy[BACnetLimitEnableTagged](m.LimitEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLimitEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitMonitoringInterval.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitMonitoringInterval.go
index 2a13dca0d9..39a76f6cf4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitMonitoringInterval.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLimitMonitoringInterval.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLimitMonitoringInterval) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataLimitMonitoringIntervalCopy := &_BACnetConstructedDataLimitMonitoringInterval{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LimitMonitoringInterval.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LimitMonitoringInterval),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLimitMonitoringIntervalCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeed.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeed.go
index 36129c9c28..cc13e256f0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeed.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeed.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLinkSpeed) deepCopy() *_BACnetConstructedDataLink
 	}
 	_BACnetConstructedDataLinkSpeedCopy := &_BACnetConstructedDataLinkSpeed{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LinkSpeed.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.LinkSpeed),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLinkSpeedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeedAutonegotiate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeedAutonegotiate.go
index eb35a7e478..bbeb73516c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeedAutonegotiate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeedAutonegotiate.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLinkSpeedAutonegotiate) deepCopy() *_BACnetConstr
 	}
 	_BACnetConstructedDataLinkSpeedAutonegotiateCopy := &_BACnetConstructedDataLinkSpeedAutonegotiate{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LinkSpeedAutonegotiate.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.LinkSpeedAutonegotiate),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLinkSpeedAutonegotiateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeeds.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeeds.go
index 8d7f0b11da..4eeec8f425 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeeds.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLinkSpeeds.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataLinkSpeeds) deepCopy() *_BACnetConstructedDataLin
 	}
 	_BACnetConstructedDataLinkSpeedsCopy := &_BACnetConstructedDataLinkSpeeds{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagReal, BACnetApplicationTagReal](m.LinkSpeeds),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoadControlPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoadControlPresentValue.go
index d07603827c..0b8e071638 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoadControlPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoadControlPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLoadControlPresentValue) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataLoadControlPresentValueCopy := &_BACnetConstructedDataLoadControlPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetShedStateTagged),
+		utils.DeepCopy[BACnetShedStateTagged](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLoadControlPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalDate.go
index 8bd8041372..0ccaf35b5a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalDate.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLocalDate) deepCopy() *_BACnetConstructedDataLoca
 	}
 	_BACnetConstructedDataLocalDateCopy := &_BACnetConstructedDataLocalDate{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LocalDate.DeepCopy().(BACnetApplicationTagDate),
+		utils.DeepCopy[BACnetApplicationTagDate](m.LocalDate),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLocalDateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalForwardingOnly.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalForwardingOnly.go
index 5ce19b2a25..6337d48a9c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalForwardingOnly.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalForwardingOnly.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLocalForwardingOnly) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataLocalForwardingOnlyCopy := &_BACnetConstructedDataLocalForwardingOnly{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LocalForwardingOnly.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.LocalForwardingOnly),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLocalForwardingOnlyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalTime.go
index c73e18dd7e..058b2a6372 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocalTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLocalTime) deepCopy() *_BACnetConstructedDataLoca
 	}
 	_BACnetConstructedDataLocalTimeCopy := &_BACnetConstructedDataLocalTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LocalTime.DeepCopy().(BACnetApplicationTagTime),
+		utils.DeepCopy[BACnetApplicationTagTime](m.LocalTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLocalTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocation.go
index c53e642ce6..8e15fde161 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLocation.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLocation) deepCopy() *_BACnetConstructedDataLocat
 	}
 	_BACnetConstructedDataLocationCopy := &_BACnetConstructedDataLocation{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Location.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.Location),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLocationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockStatus.go
index f4c1d4814c..a88245463a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockStatus.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLockStatus) deepCopy() *_BACnetConstructedDataLoc
 	}
 	_BACnetConstructedDataLockStatusCopy := &_BACnetConstructedDataLockStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LockStatus.DeepCopy().(BACnetLockStatusTagged),
+		utils.DeepCopy[BACnetLockStatusTagged](m.LockStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLockStatusCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockout.go
index 755ab7c68a..e4104e2eef 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLockout) deepCopy() *_BACnetConstructedDataLockou
 	}
 	_BACnetConstructedDataLockoutCopy := &_BACnetConstructedDataLockout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Lockout.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.Lockout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLockoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockoutRelinquishTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockoutRelinquishTime.go
index 59bd5c3e20..cfde9f048c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockoutRelinquishTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLockoutRelinquishTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLockoutRelinquishTime) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataLockoutRelinquishTimeCopy := &_BACnetConstructedDataLockoutRelinquishTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LockoutRelinquishTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LockoutRelinquishTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLockoutRelinquishTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogBuffer.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogBuffer.go
index 69fd0326eb..1757e13f92 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogBuffer.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogBuffer.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataLogBuffer) deepCopy() *_BACnetConstructedDataLogB
 	}
 	_BACnetConstructedDataLogBufferCopy := &_BACnetConstructedDataLogBuffer{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetLogRecord, BACnetLogRecord](m.FloorText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogDeviceObjectProperty.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogDeviceObjectProperty.go
index d6fceb58a1..b341c64699 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogDeviceObjectProperty.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogDeviceObjectProperty.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataLogDeviceObjectProperty) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataLogDeviceObjectPropertyCopy := &_BACnetConstructedDataLogDeviceObjectProperty{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LogDeviceObjectProperty.DeepCopy().(BACnetDeviceObjectPropertyReference),
+		utils.DeepCopy[BACnetDeviceObjectPropertyReference](m.LogDeviceObjectProperty),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLogDeviceObjectPropertyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogInterval.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogInterval.go
index b616cd8c15..e00b6c1a61 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogInterval.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLogInterval.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLogInterval) deepCopy() *_BACnetConstructedDataLo
 	}
 	_BACnetConstructedDataLogIntervalCopy := &_BACnetConstructedDataLogInterval{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LogInterval.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LogInterval),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLogIntervalCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingObject.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingObject.go
index 4d59597432..fbee5f3c57 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingObject.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingObject.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLoggingObject) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataLoggingObjectCopy := &_BACnetConstructedDataLoggingObject{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LoggingObject.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.LoggingObject),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLoggingObjectCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingRecord.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingRecord.go
index d165d0bbdb..95f11d74bf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingRecord.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingRecord.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLoggingRecord) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataLoggingRecordCopy := &_BACnetConstructedDataLoggingRecord{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LoggingRecord.DeepCopy().(BACnetAccumulatorRecord),
+		utils.DeepCopy[BACnetAccumulatorRecord](m.LoggingRecord),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLoggingRecordCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingType.go
index bc0a5de5ea..7417a04258 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoggingType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLoggingType) deepCopy() *_BACnetConstructedDataLo
 	}
 	_BACnetConstructedDataLoggingTypeCopy := &_BACnetConstructedDataLoggingType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LoggingType.DeepCopy().(BACnetLoggingTypeTagged),
+		utils.DeepCopy[BACnetLoggingTypeTagged](m.LoggingType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLoggingTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go
index a4eb685762..2b9febf0c4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLoopAction) deepCopy() *_BACnetConstructedDataLoo
 	}
 	_BACnetConstructedDataLoopActionCopy := &_BACnetConstructedDataLoopAction{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Action.DeepCopy().(BACnetActionTagged),
+		utils.DeepCopy[BACnetActionTagged](m.Action),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLoopActionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopPresentValue.go
index d383a1212b..081e7db3ea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLoopPresentValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLoopPresentValue) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataLoopPresentValueCopy := &_BACnetConstructedDataLoopPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLoopPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowDiffLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowDiffLimit.go
index ef4f3868da..2466232b13 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowDiffLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowDiffLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLowDiffLimit) deepCopy() *_BACnetConstructedDataL
 	}
 	_BACnetConstructedDataLowDiffLimitCopy := &_BACnetConstructedDataLowDiffLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LowDiffLimit.DeepCopy().(BACnetOptionalREAL),
+		utils.DeepCopy[BACnetOptionalREAL](m.LowDiffLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLowDiffLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowLimit.go
index d51bb6cc33..18295cd1fc 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLowLimit) deepCopy() *_BACnetConstructedDataLowLi
 	}
 	_BACnetConstructedDataLowLimitCopy := &_BACnetConstructedDataLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LowLimit.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.LowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowerDeck.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowerDeck.go
index 95809e5e04..2511f06b05 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowerDeck.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataLowerDeck.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataLowerDeck) deepCopy() *_BACnetConstructedDataLowe
 	}
 	_BACnetConstructedDataLowerDeckCopy := &_BACnetConstructedDataLowerDeck{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LowerDeck.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.LowerDeck),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataLowerDeckCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMACAddress.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMACAddress.go
index ceb6695d72..46f4e978df 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMACAddress.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMACAddress.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMACAddress) deepCopy() *_BACnetConstructedDataMAC
 	}
 	_BACnetConstructedDataMACAddressCopy := &_BACnetConstructedDataMACAddress{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MacAddress.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.MacAddress),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMACAddressCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMachineRoomID.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMachineRoomID.go
index 884fca8707..009b0f4b20 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMachineRoomID.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMachineRoomID.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMachineRoomID) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataMachineRoomIDCopy := &_BACnetConstructedDataMachineRoomID{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MachineRoomId.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.MachineRoomId),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMachineRoomIDCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaintenanceRequired.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaintenanceRequired.go
index 3246ef23d2..885ba0eef6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaintenanceRequired.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaintenanceRequired.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaintenanceRequired) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataMaintenanceRequiredCopy := &_BACnetConstructedDataMaintenanceRequired{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaintenanceRequired.DeepCopy().(BACnetMaintenanceTagged),
+		utils.DeepCopy[BACnetMaintenanceTagged](m.MaintenanceRequired),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaintenanceRequiredCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMakingCarCall.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMakingCarCall.go
index 2402344042..bbe0b24855 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMakingCarCall.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMakingCarCall.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataMakingCarCall) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataMakingCarCallCopy := &_BACnetConstructedDataMakingCarCall{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagUnsignedInteger, BACnetApplicationTagUnsignedInteger](m.MakingCarCall),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataManipulatedVariableReference.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataManipulatedVariableReference.go
index 9fe492c2a1..2dd446c9d8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataManipulatedVariableReference.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataManipulatedVariableReference.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataManipulatedVariableReference) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataManipulatedVariableReferenceCopy := &_BACnetConstructedDataManipulatedVariableReference{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ManipulatedVariableReference.DeepCopy().(BACnetObjectPropertyReference),
+		utils.DeepCopy[BACnetObjectPropertyReference](m.ManipulatedVariableReference),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataManipulatedVariableReferenceCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxAPDULengthAccepted.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxAPDULengthAccepted.go
index 4522c2e8ce..a5176ecadd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxAPDULengthAccepted.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxAPDULengthAccepted.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMaxAPDULengthAccepted) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataMaxAPDULengthAcceptedCopy := &_BACnetConstructedDataMaxAPDULengthAccepted{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxApduLengthAccepted.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxApduLengthAccepted),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaxAPDULengthAcceptedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxActualValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxActualValue.go
index e638ff3ddd..611fd2b7f2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxActualValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxActualValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaxActualValue) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataMaxActualValueCopy := &_BACnetConstructedDataMaxActualValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxActualValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MaxActualValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaxActualValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxFailedAttempts.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxFailedAttempts.go
index cf291206a8..981e0c1d83 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxFailedAttempts.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxFailedAttempts.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaxFailedAttempts) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataMaxFailedAttemptsCopy := &_BACnetConstructedDataMaxFailedAttempts{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxFailedAttempts.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxFailedAttempts),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaxFailedAttemptsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxInfoFrames.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxInfoFrames.go
index adfee3afb3..a8f82c0022 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxInfoFrames.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxInfoFrames.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaxInfoFrames) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataMaxInfoFramesCopy := &_BACnetConstructedDataMaxInfoFrames{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxInfoFrames.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxInfoFrames),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaxInfoFramesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxMaster.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxMaster.go
index ed1c7228fa..ae9619c04d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxMaster.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxMaster.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaxMaster) deepCopy() *_BACnetConstructedDataMaxM
 	}
 	_BACnetConstructedDataMaxMasterCopy := &_BACnetConstructedDataMaxMaster{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxMaster.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxMaster),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaxMasterCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxPresValue.go
index 8154c19e57..981c25bcf9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxPresValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaxPresValue) deepCopy() *_BACnetConstructedDataM
 	}
 	_BACnetConstructedDataMaxPresValueCopy := &_BACnetConstructedDataMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxSegmentsAccepted.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxSegmentsAccepted.go
index e65f978800..56f177ef57 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxSegmentsAccepted.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaxSegmentsAccepted.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaxSegmentsAccepted) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataMaxSegmentsAcceptedCopy := &_BACnetConstructedDataMaxSegmentsAccepted{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxSegmentsAccepted.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxSegmentsAccepted),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaxSegmentsAcceptedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumOutput.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumOutput.go
index 08f9a72f31..a926db2f4d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumOutput.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumOutput.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaximumOutput) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataMaximumOutputCopy := &_BACnetConstructedDataMaximumOutput{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaximumOutput.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MaximumOutput),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaximumOutputCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValue.go
index 06d6f6d75a..daee7d9853 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMaximumValue) deepCopy() *_BACnetConstructedDataM
 	}
 	_BACnetConstructedDataMaximumValueCopy := &_BACnetConstructedDataMaximumValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaximumValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MaximumValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaximumValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValueTimestamp.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValueTimestamp.go
index 9c199419fb..426881b201 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValueTimestamp.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMaximumValueTimestamp.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMaximumValueTimestamp) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataMaximumValueTimestampCopy := &_BACnetConstructedDataMaximumValueTimestamp{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaximumValueTimestamp.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.MaximumValueTimestamp),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMaximumValueTimestampCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMemberStatusFlags.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMemberStatusFlags.go
index 01a82805b9..c41eba545e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMemberStatusFlags.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMemberStatusFlags.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMemberStatusFlags) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataMemberStatusFlagsCopy := &_BACnetConstructedDataMemberStatusFlags{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.StatusFlags.DeepCopy().(BACnetStatusFlagsTagged),
+		utils.DeepCopy[BACnetStatusFlagsTagged](m.StatusFlags),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMemberStatusFlagsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinActualValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinActualValue.go
index 4c35a59d9c..44f751170a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinActualValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinActualValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMinActualValue) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataMinActualValueCopy := &_BACnetConstructedDataMinActualValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinActualValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MinActualValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMinActualValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinPresValue.go
index 8989e902d9..d3082de667 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinPresValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMinPresValue) deepCopy() *_BACnetConstructedDataM
 	}
 	_BACnetConstructedDataMinPresValueCopy := &_BACnetConstructedDataMinPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinPresValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MinPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMinPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOffTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOffTime.go
index 7591276dd8..2f3101af44 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOffTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOffTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMinimumOffTime) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataMinimumOffTimeCopy := &_BACnetConstructedDataMinimumOffTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinimumOffTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MinimumOffTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMinimumOffTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOnTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOnTime.go
index 9aafb41936..3b2f082637 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOnTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOnTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMinimumOnTime) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataMinimumOnTimeCopy := &_BACnetConstructedDataMinimumOnTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinimumOnTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MinimumOnTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMinimumOnTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOutput.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOutput.go
index 7dabfb3941..0e5143759b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOutput.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumOutput.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMinimumOutput) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataMinimumOutputCopy := &_BACnetConstructedDataMinimumOutput{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinimumOutput.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MinimumOutput),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMinimumOutputCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValue.go
index c7453d44d6..e5d0ba270e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMinimumValue) deepCopy() *_BACnetConstructedDataM
 	}
 	_BACnetConstructedDataMinimumValueCopy := &_BACnetConstructedDataMinimumValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinimumValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.MinimumValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMinimumValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValueTimestamp.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValueTimestamp.go
index c17484af7d..b1290655d2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValueTimestamp.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMinimumValueTimestamp.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMinimumValueTimestamp) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataMinimumValueTimestampCopy := &_BACnetConstructedDataMinimumValueTimestamp{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinimumValueTimestamp.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.MinimumValueTimestamp),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMinimumValueTimestampCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMode.go
index 609a8c47b4..e006ad3ff1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMode) deepCopy() *_BACnetConstructedDataMode {
 	}
 	_BACnetConstructedDataModeCopy := &_BACnetConstructedDataMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Mode.DeepCopy().(BACnetLifeSafetyModeTagged),
+		utils.DeepCopy[BACnetLifeSafetyModeTagged](m.Mode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModelName.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModelName.go
index 5ae79f15cf..95175dfafd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModelName.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModelName.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataModelName) deepCopy() *_BACnetConstructedDataMode
 	}
 	_BACnetConstructedDataModelNameCopy := &_BACnetConstructedDataModelName{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ModelName.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.ModelName),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataModelNameCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModificationDate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModificationDate.go
index e56d37b2e9..edd2086ce1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModificationDate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataModificationDate.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataModificationDate) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataModificationDateCopy := &_BACnetConstructedDataModificationDate{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ModificationDate.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.ModificationDate),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataModificationDateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateInputInterfaceValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateInputInterfaceValue.go
index 6bbcb65490..11f74b7d50 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateInputInterfaceValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateInputInterfaceValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMultiStateInputInterfaceValue) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataMultiStateInputInterfaceValueCopy := &_BACnetConstructedDataMultiStateInputInterfaceValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InterfaceValue.DeepCopy().(BACnetOptionalBinaryPV),
+		utils.DeepCopy[BACnetOptionalBinaryPV](m.InterfaceValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMultiStateInputInterfaceValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputFeedbackValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputFeedbackValue.go
index f7c81445bb..fda68aeba0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputFeedbackValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputFeedbackValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMultiStateOutputFeedbackValue) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataMultiStateOutputFeedbackValueCopy := &_BACnetConstructedDataMultiStateOutputFeedbackValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FeedbackValue.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FeedbackValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMultiStateOutputFeedbackValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputInterfaceValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputInterfaceValue.go
index 5facd292fd..9fcbd72279 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputInterfaceValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputInterfaceValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMultiStateOutputInterfaceValue) deepCopy() *_BACn
 	}
 	_BACnetConstructedDataMultiStateOutputInterfaceValueCopy := &_BACnetConstructedDataMultiStateOutputInterfaceValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.InterfaceValue.DeepCopy().(BACnetOptionalBinaryPV),
+		utils.DeepCopy[BACnetOptionalBinaryPV](m.InterfaceValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMultiStateOutputInterfaceValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputRelinquishDefault.go
index 8742e6f449..18b3f3eb28 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateOutputRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMultiStateOutputRelinquishDefault) deepCopy() *_B
 	}
 	_BACnetConstructedDataMultiStateOutputRelinquishDefaultCopy := &_BACnetConstructedDataMultiStateOutputRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMultiStateOutputRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateValueRelinquishDefault.go
index 4f35307ac3..163d341b88 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMultiStateValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataMultiStateValueRelinquishDefault) deepCopy() *_BA
 	}
 	_BACnetConstructedDataMultiStateValueRelinquishDefaultCopy := &_BACnetConstructedDataMultiStateValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMultiStateValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMusterPoint.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMusterPoint.go
index 7e5aaf2ccc..dd3d577ef6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMusterPoint.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataMusterPoint.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataMusterPoint) deepCopy() *_BACnetConstructedDataMu
 	}
 	_BACnetConstructedDataMusterPointCopy := &_BACnetConstructedDataMusterPoint{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MusterPoint.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.MusterPoint),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataMusterPointCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNegativeAccessRules.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNegativeAccessRules.go
index ff7c083b71..440bc2c578 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNegativeAccessRules.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNegativeAccessRules.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataNegativeAccessRules) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataNegativeAccessRulesCopy := &_BACnetConstructedDataNegativeAccessRules{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetAccessRule, BACnetAccessRule](m.NegativeAccessRules),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkAccessSecurityPolicies.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkAccessSecurityPolicies.go
index f34dd19c66..7f8113d5e3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkAccessSecurityPolicies.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkAccessSecurityPolicies.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataNetworkAccessSecurityPolicies) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataNetworkAccessSecurityPoliciesCopy := &_BACnetConstructedDataNetworkAccessSecurityPolicies{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetNetworkSecurityPolicy, BACnetNetworkSecurityPolicy](m.NetworkAccessSecurityPolicies),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkInterfaceName.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkInterfaceName.go
index 3cd80cd183..980bc73e1c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkInterfaceName.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkInterfaceName.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNetworkInterfaceName) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataNetworkInterfaceNameCopy := &_BACnetConstructedDataNetworkInterfaceName{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NetworkInterfaceName.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.NetworkInterfaceName),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNetworkInterfaceNameCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumber.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumber.go
index 8db742bbfe..aca12bb3bf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumber.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumber.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNetworkNumber) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataNetworkNumberCopy := &_BACnetConstructedDataNetworkNumber{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NetworkNumber.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NetworkNumber),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNetworkNumberCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumberQuality.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumberQuality.go
index c2e5bea56f..27c51401c7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumberQuality.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkNumberQuality.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNetworkNumberQuality) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataNetworkNumberQualityCopy := &_BACnetConstructedDataNetworkNumberQuality{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NetworkNumberQuality.DeepCopy().(BACnetNetworkNumberQualityTagged),
+		utils.DeepCopy[BACnetNetworkNumberQualityTagged](m.NetworkNumberQuality),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNetworkNumberQualityCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxInfoFrames.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxInfoFrames.go
index fa24574f1c..ae8b72f054 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxInfoFrames.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxInfoFrames.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataNetworkPortMaxInfoFrames) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataNetworkPortMaxInfoFramesCopy := &_BACnetConstructedDataNetworkPortMaxInfoFrames{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxInfoFrames.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxInfoFrames),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNetworkPortMaxInfoFramesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxMaster.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxMaster.go
index f3285d0230..2843034bac 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxMaster.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkPortMaxMaster.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNetworkPortMaxMaster) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataNetworkPortMaxMasterCopy := &_BACnetConstructedDataNetworkPortMaxMaster{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxMaster.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxMaster),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNetworkPortMaxMasterCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkType.go
index f1536b2eda..a3eff717ba 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNetworkType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNetworkType) deepCopy() *_BACnetConstructedDataNe
 	}
 	_BACnetConstructedDataNetworkTypeCopy := &_BACnetConstructedDataNetworkType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NetworkType.DeepCopy().(BACnetNetworkTypeTagged),
+		utils.DeepCopy[BACnetNetworkTypeTagged](m.NetworkType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNetworkTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNextStoppingFloor.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNextStoppingFloor.go
index 8f7b785f22..f86cc63484 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNextStoppingFloor.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNextStoppingFloor.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNextStoppingFloor) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataNextStoppingFloorCopy := &_BACnetConstructedDataNextStoppingFloor{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NextStoppingFloor.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NextStoppingFloor),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNextStoppingFloorCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeSubtype.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeSubtype.go
index 26502e1d6d..6c08573757 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeSubtype.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeSubtype.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNodeSubtype) deepCopy() *_BACnetConstructedDataNo
 	}
 	_BACnetConstructedDataNodeSubtypeCopy := &_BACnetConstructedDataNodeSubtype{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NodeSubType.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.NodeSubType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNodeSubtypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeType.go
index 5b05f2c2ea..0be748861c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNodeType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNodeType) deepCopy() *_BACnetConstructedDataNodeT
 	}
 	_BACnetConstructedDataNodeTypeCopy := &_BACnetConstructedDataNodeType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NodeType.DeepCopy().(BACnetNodeTypeTagged),
+		utils.DeepCopy[BACnetNodeTypeTagged](m.NodeType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNodeTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationClass.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationClass.go
index 205476613e..9566b861e9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationClass.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationClass.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNotificationClass) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataNotificationClassCopy := &_BACnetConstructedDataNotificationClass{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NotificationClass.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NotificationClass),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNotificationClassCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationThreshold.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationThreshold.go
index 16c48da6c7..5029c3c031 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationThreshold.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotificationThreshold.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataNotificationThreshold) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataNotificationThresholdCopy := &_BACnetConstructedDataNotificationThreshold{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NotificationThreshold.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NotificationThreshold),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNotificationThresholdCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotifyType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotifyType.go
index db22017db8..74bba96d80 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotifyType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNotifyType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNotifyType) deepCopy() *_BACnetConstructedDataNot
 	}
 	_BACnetConstructedDataNotifyTypeCopy := &_BACnetConstructedDataNotifyType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NotifyType.DeepCopy().(BACnetNotifyTypeTagged),
+		utils.DeepCopy[BACnetNotifyTypeTagged](m.NotifyType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNotifyTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAPDURetries.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAPDURetries.go
index 259091f221..522052bbb9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAPDURetries.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAPDURetries.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNumberOfAPDURetries) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataNumberOfAPDURetriesCopy := &_BACnetConstructedDataNumberOfAPDURetries{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfApduRetries.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfApduRetries),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNumberOfAPDURetriesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAuthenticationPolicies.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAuthenticationPolicies.go
index 69715b549d..55bfb4d6df 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAuthenticationPolicies.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfAuthenticationPolicies.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataNumberOfAuthenticationPolicies) deepCopy() *_BACn
 	}
 	_BACnetConstructedDataNumberOfAuthenticationPoliciesCopy := &_BACnetConstructedDataNumberOfAuthenticationPolicies{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfAuthenticationPolicies.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfAuthenticationPolicies),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNumberOfAuthenticationPoliciesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfStates.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfStates.go
index 07577adff4..39aff256d4 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfStates.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataNumberOfStates.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataNumberOfStates) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataNumberOfStatesCopy := &_BACnetConstructedDataNumberOfStates{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfState.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfState),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataNumberOfStatesCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectIdentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectIdentifier.go
index 8bf76d44fc..f5591b1dbf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectIdentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectIdentifier.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataObjectIdentifier) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataObjectIdentifierCopy := &_BACnetConstructedDataObjectIdentifier{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ObjectIdentifier.DeepCopy().(BACnetApplicationTagObjectIdentifier),
+		utils.DeepCopy[BACnetApplicationTagObjectIdentifier](m.ObjectIdentifier),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataObjectIdentifierCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectList.go
index 5279f693cc..8184b96723 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectList.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataObjectList) deepCopy() *_BACnetConstructedDataObj
 	}
 	_BACnetConstructedDataObjectListCopy := &_BACnetConstructedDataObjectList{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagObjectIdentifier, BACnetApplicationTagObjectIdentifier](m.ObjectList),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectName.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectName.go
index 71c39be819..2803234a86 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectName.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectName.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataObjectName) deepCopy() *_BACnetConstructedDataObj
 	}
 	_BACnetConstructedDataObjectNameCopy := &_BACnetConstructedDataObjectName{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ObjectName.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.ObjectName),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataObjectNameCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectPropertyReference.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectPropertyReference.go
index c45353944a..3abfb38825 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectPropertyReference.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectPropertyReference.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataObjectPropertyReference) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataObjectPropertyReferenceCopy := &_BACnetConstructedDataObjectPropertyReference{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PropertyReference.DeepCopy().(BACnetDeviceObjectPropertyReference),
+		utils.DeepCopy[BACnetDeviceObjectPropertyReference](m.PropertyReference),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataObjectPropertyReferenceCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectType.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectType.go
index 1c807a6c84..c13f7e877f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectType.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataObjectType.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataObjectType) deepCopy() *_BACnetConstructedDataObj
 	}
 	_BACnetConstructedDataObjectTypeCopy := &_BACnetConstructedDataObjectType{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ObjectType.DeepCopy().(BACnetObjectTypeTagged),
+		utils.DeepCopy[BACnetObjectTypeTagged](m.ObjectType),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataObjectTypeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCount.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCount.go
index 564204f24d..4eacefd5ba 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCount.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCount.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOccupancyCount) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataOccupancyCountCopy := &_BACnetConstructedDataOccupancyCount{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyCount.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.OccupancyCount),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyCountCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountAdjust.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountAdjust.go
index c2cf7260b9..69bce4067a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountAdjust.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountAdjust.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOccupancyCountAdjust) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataOccupancyCountAdjustCopy := &_BACnetConstructedDataOccupancyCountAdjust{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyCountAdjust.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.OccupancyCountAdjust),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyCountAdjustCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountEnable.go
index b988ae963a..4d6fa391ed 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyCountEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOccupancyCountEnable) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataOccupancyCountEnableCopy := &_BACnetConstructedDataOccupancyCountEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyCountEnable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.OccupancyCountEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyCountEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimit.go
index 1834ce7c12..953541ffd6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOccupancyLowerLimit) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataOccupancyLowerLimitCopy := &_BACnetConstructedDataOccupancyLowerLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyLowerLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.OccupancyLowerLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyLowerLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimitEnforced.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimitEnforced.go
index a4a435d60a..10e0af4144 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimitEnforced.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyLowerLimitEnforced.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataOccupancyLowerLimitEnforced) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataOccupancyLowerLimitEnforcedCopy := &_BACnetConstructedDataOccupancyLowerLimitEnforced{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyLowerLimitEnforced.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.OccupancyLowerLimitEnforced),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyLowerLimitEnforcedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyState.go
index 7b92396b54..782d02ab80 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyState.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOccupancyState) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataOccupancyStateCopy := &_BACnetConstructedDataOccupancyState{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyState.DeepCopy().(BACnetAccessZoneOccupancyStateTagged),
+		utils.DeepCopy[BACnetAccessZoneOccupancyStateTagged](m.OccupancyState),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyStateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimit.go
index 6057e13186..de71fcfda3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimit.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOccupancyUpperLimit) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataOccupancyUpperLimitCopy := &_BACnetConstructedDataOccupancyUpperLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyUpperLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.OccupancyUpperLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyUpperLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimitEnforced.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimitEnforced.go
index ca8a23d0db..e2f16898a6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimitEnforced.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOccupancyUpperLimitEnforced.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataOccupancyUpperLimitEnforced) deepCopy() *_BACnetC
 	}
 	_BACnetConstructedDataOccupancyUpperLimitEnforcedCopy := &_BACnetConstructedDataOccupancyUpperLimitEnforced{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OccupancyUpperLimitEnforced.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.OccupancyUpperLimitEnforced),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOccupancyUpperLimitEnforcedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValuePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValuePresentValue.go
index d9c04f7397..07a731c6c8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValuePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValuePresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataOctetStringValuePresentValue) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataOctetStringValuePresentValueCopy := &_BACnetConstructedDataOctetStringValuePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagOctetString),
+		utils.DeepCopy[BACnetApplicationTagOctetString](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOctetStringValuePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValueRelinquishDefault.go
index ea50e0a1d9..170cfa6547 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOctetStringValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataOctetStringValueRelinquishDefault) deepCopy() *_B
 	}
 	_BACnetConstructedDataOctetStringValueRelinquishDefaultCopy := &_BACnetConstructedDataOctetStringValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagSignedInteger),
+		utils.DeepCopy[BACnetApplicationTagSignedInteger](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOctetStringValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationDirection.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationDirection.go
index 763d854031..8085ed1c24 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationDirection.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationDirection.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOperationDirection) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataOperationDirectionCopy := &_BACnetConstructedDataOperationDirection{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OperationDirection.DeepCopy().(BACnetEscalatorOperationDirectionTagged),
+		utils.DeepCopy[BACnetEscalatorOperationDirectionTagged](m.OperationDirection),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOperationDirectionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationExpected.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationExpected.go
index a122cf9a73..e2f198f68a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationExpected.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOperationExpected.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOperationExpected) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataOperationExpectedCopy := &_BACnetConstructedDataOperationExpected{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LifeSafetyOperations.DeepCopy().(BACnetLifeSafetyOperationTagged),
+		utils.DeepCopy[BACnetLifeSafetyOperationTagged](m.LifeSafetyOperations),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOperationExpectedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutOfService.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutOfService.go
index 89680576b8..7de1e5eb59 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutOfService.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutOfService.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOutOfService) deepCopy() *_BACnetConstructedDataO
 	}
 	_BACnetConstructedDataOutOfServiceCopy := &_BACnetConstructedDataOutOfService{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.OutOfService.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.OutOfService),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOutOfServiceCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutputUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutputUnits.go
index f42c3fdc98..32c124d96a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutputUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataOutputUnits.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataOutputUnits) deepCopy() *_BACnetConstructedDataOu
 	}
 	_BACnetConstructedDataOutputUnitsCopy := &_BACnetConstructedDataOutputUnits{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Units.DeepCopy().(BACnetEngineeringUnitsTagged),
+		utils.DeepCopy[BACnetEngineeringUnitsTagged](m.Units),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataOutputUnitsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPacketReorderTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPacketReorderTime.go
index 98b0bdc111..da841731c0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPacketReorderTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPacketReorderTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPacketReorderTime) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataPacketReorderTimeCopy := &_BACnetConstructedDataPacketReorderTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PacketReorderTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.PacketReorderTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPacketReorderTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackMode.go
index 8c7684705d..e069773ea5 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPassbackMode) deepCopy() *_BACnetConstructedDataP
 	}
 	_BACnetConstructedDataPassbackModeCopy := &_BACnetConstructedDataPassbackMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PassbackMode.DeepCopy().(BACnetAccessPassbackModeTagged),
+		utils.DeepCopy[BACnetAccessPassbackModeTagged](m.PassbackMode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPassbackModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackTimeout.go
index b36558c5d0..0ae303fc13 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassbackTimeout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPassbackTimeout) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataPassbackTimeoutCopy := &_BACnetConstructedDataPassbackTimeout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PassbackTimeout.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.PassbackTimeout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPassbackTimeoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassengerAlarm.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassengerAlarm.go
index c2a5bf50b0..b899094b3b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassengerAlarm.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPassengerAlarm.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPassengerAlarm) deepCopy() *_BACnetConstructedDat
 	}
 	_BACnetConstructedDataPassengerAlarmCopy := &_BACnetConstructedDataPassengerAlarm{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PassengerAlarm.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.PassengerAlarm),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPassengerAlarmCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPolarity.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPolarity.go
index 2fdfbb49e9..62be09a8a7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPolarity.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPolarity.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPolarity) deepCopy() *_BACnetConstructedDataPolar
 	}
 	_BACnetConstructedDataPolarityCopy := &_BACnetConstructedDataPolarity{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Polarity.DeepCopy().(BACnetPolarityTagged),
+		utils.DeepCopy[BACnetPolarityTagged](m.Polarity),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPolarityCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPortFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPortFilter.go
index 1adfc04988..4a283bb47d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPortFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPortFilter.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataPortFilter) deepCopy() *_BACnetConstructedDataPor
 	}
 	_BACnetConstructedDataPortFilterCopy := &_BACnetConstructedDataPortFilter{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetPortPermission, BACnetPortPermission](m.PortFilter),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveAccessRules.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveAccessRules.go
index e213a2b84e..878e6ffcc1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveAccessRules.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveAccessRules.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataPositiveAccessRules) deepCopy() *_BACnetConstruct
 	}
 	_BACnetConstructedDataPositiveAccessRulesCopy := &_BACnetConstructedDataPositiveAccessRules{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetAccessRule, BACnetAccessRule](m.PositiveAccessRules),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueCOVIncrement.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueCOVIncrement.go
index 870d1cd8ef..e2e0ac7719 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueCOVIncrement.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueCOVIncrement.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueCOVIncrement) deepCopy() *_BA
 	}
 	_BACnetConstructedDataPositiveIntegerValueCOVIncrementCopy := &_BACnetConstructedDataPositiveIntegerValueCOVIncrement{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CovIncrement.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CovIncrement),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueCOVIncrementCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueDeadband.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueDeadband.go
index fb4f3a1700..af6fc356ee 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueDeadband.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueDeadband.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueDeadband) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataPositiveIntegerValueDeadbandCopy := &_BACnetConstructedDataPositiveIntegerValueDeadband{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Deadband.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Deadband),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueDeadbandCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultHighLimit.go
index 9e23a70fc3..6c0de8efc2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueFaultHighLimit) deepCopy() *_
 	}
 	_BACnetConstructedDataPositiveIntegerValueFaultHighLimitCopy := &_BACnetConstructedDataPositiveIntegerValueFaultHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultHighLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FaultHighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueFaultHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultLowLimit.go
index c59c85f18c..357f52e31a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueFaultLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueFaultLowLimit) deepCopy() *_B
 	}
 	_BACnetConstructedDataPositiveIntegerValueFaultLowLimitCopy := &_BACnetConstructedDataPositiveIntegerValueFaultLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.FaultLowLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.FaultLowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueFaultLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueHighLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueHighLimit.go
index c5911bbb15..4086fa18fd 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueHighLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueHighLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueHighLimit) deepCopy() *_BACne
 	}
 	_BACnetConstructedDataPositiveIntegerValueHighLimitCopy := &_BACnetConstructedDataPositiveIntegerValueHighLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.HighLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.HighLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueHighLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueLowLimit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueLowLimit.go
index 6b686c792e..fb667fbadf 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueLowLimit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueLowLimit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueLowLimit) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataPositiveIntegerValueLowLimitCopy := &_BACnetConstructedDataPositiveIntegerValueLowLimit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.LowLimit.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.LowLimit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueLowLimitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMaxPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMaxPresValue.go
index a86479c716..800bb1c01a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMaxPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMaxPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueMaxPresValue) deepCopy() *_BA
 	}
 	_BACnetConstructedDataPositiveIntegerValueMaxPresValueCopy := &_BACnetConstructedDataPositiveIntegerValueMaxPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MaxPresValue.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MaxPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueMaxPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMinPresValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMinPresValue.go
index 0c84534761..d3b902217a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMinPresValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueMinPresValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueMinPresValue) deepCopy() *_BA
 	}
 	_BACnetConstructedDataPositiveIntegerValueMinPresValueCopy := &_BACnetConstructedDataPositiveIntegerValueMinPresValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.MinPresValue.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.MinPresValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueMinPresValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueRelinquishDefault.go
index 544813dc8a..50f56bed39 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueRelinquishDefault.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueRelinquishDefault) deepCopy()
 	}
 	_BACnetConstructedDataPositiveIntegerValueRelinquishDefaultCopy := &_BACnetConstructedDataPositiveIntegerValueRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueResolution.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueResolution.go
index fab652a224..8c564090b6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueResolution.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPositiveIntegerValueResolution.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPositiveIntegerValueResolution) deepCopy() *_BACn
 	}
 	_BACnetConstructedDataPositiveIntegerValueResolutionCopy := &_BACnetConstructedDataPositiveIntegerValueResolution{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Resolution.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Resolution),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPositiveIntegerValueResolutionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPower.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPower.go
index 9955b4e211..ab75c2652b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPower.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPower.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPower) deepCopy() *_BACnetConstructedDataPower {
 	}
 	_BACnetConstructedDataPowerCopy := &_BACnetConstructedDataPower{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Power.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.Power),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPowerCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPowerMode.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPowerMode.go
index d1292689f4..609933fd0f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPowerMode.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPowerMode.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPowerMode) deepCopy() *_BACnetConstructedDataPowe
 	}
 	_BACnetConstructedDataPowerModeCopy := &_BACnetConstructedDataPowerMode{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PowerMode.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.PowerMode),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPowerModeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPrescale.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPrescale.go
index b79d510365..b12f7b38f3 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPrescale.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPrescale.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPrescale) deepCopy() *_BACnetConstructedDataPresc
 	}
 	_BACnetConstructedDataPrescaleCopy := &_BACnetConstructedDataPrescale{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Prescale.DeepCopy().(BACnetPrescale),
+		utils.DeepCopy[BACnetPrescale](m.Prescale),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPrescaleCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPresentValue.go
index 1295c3b08c..1226ff327f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPresentValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPresentValue) deepCopy() *_BACnetConstructedDataP
 	}
 	_BACnetConstructedDataPresentValueCopy := &_BACnetConstructedDataPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriority.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriority.go
index 279ce23007..a3310fe229 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriority.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriority.go
@@ -379,7 +379,7 @@ func (m *_BACnetConstructedDataPriority) deepCopy() *_BACnetConstructedDataPrior
 	}
 	_BACnetConstructedDataPriorityCopy := &_BACnetConstructedDataPriority{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagUnsignedInteger, BACnetApplicationTagUnsignedInteger](m.Priority),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityArray.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityArray.go
index ab5632c342..403bef2801 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityArray.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityArray.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPriorityArray) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataPriorityArrayCopy := &_BACnetConstructedDataPriorityArray{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PriorityArray.DeepCopy().(BACnetPriorityArray),
+		utils.DeepCopy[BACnetPriorityArray](m.PriorityArray),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPriorityArrayCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityForWriting.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityForWriting.go
index 28c2eaffa5..823230c587 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityForWriting.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPriorityForWriting.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPriorityForWriting) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataPriorityForWritingCopy := &_BACnetConstructedDataPriorityForWriting{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PriorityForWriting.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.PriorityForWriting),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPriorityForWritingCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifier.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifier.go
index da5f81e69c..16e371bd3e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifier.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifier.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProcessIdentifier) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataProcessIdentifierCopy := &_BACnetConstructedDataProcessIdentifier{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProcessIdentifier.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ProcessIdentifier),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProcessIdentifierCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifierFilter.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifierFilter.go
index db8eece99d..ba41f31c2d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifierFilter.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProcessIdentifierFilter.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataProcessIdentifierFilter) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataProcessIdentifierFilterCopy := &_BACnetConstructedDataProcessIdentifierFilter{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProcessIdentifierFilter.DeepCopy().(BACnetProcessIdSelection),
+		utils.DeepCopy[BACnetProcessIdSelection](m.ProcessIdentifierFilter),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProcessIdentifierFilterCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileLocation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileLocation.go
index adf7b53aef..c81684aa80 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileLocation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileLocation.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProfileLocation) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataProfileLocationCopy := &_BACnetConstructedDataProfileLocation{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProfileLocation.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.ProfileLocation),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProfileLocationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileName.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileName.go
index cb7cb5aa93..f873fc9c74 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileName.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProfileName.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProfileName) deepCopy() *_BACnetConstructedDataPr
 	}
 	_BACnetConstructedDataProfileNameCopy := &_BACnetConstructedDataProfileName{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProfileName.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.ProfileName),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProfileNameCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramChange.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramChange.go
index f0f6477a41..e21e468d0c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramChange.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramChange.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProgramChange) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataProgramChangeCopy := &_BACnetConstructedDataProgramChange{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProgramChange.DeepCopy().(BACnetProgramRequestTagged),
+		utils.DeepCopy[BACnetProgramRequestTagged](m.ProgramChange),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProgramChangeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramLocation.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramLocation.go
index 984cd29e4b..b74c9ea92d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramLocation.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramLocation.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProgramLocation) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataProgramLocationCopy := &_BACnetConstructedDataProgramLocation{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProgramLocation.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.ProgramLocation),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProgramLocationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramState.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramState.go
index e5b407ce44..fa58a3beda 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramState.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProgramState.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProgramState) deepCopy() *_BACnetConstructedDataP
 	}
 	_BACnetConstructedDataProgramStateCopy := &_BACnetConstructedDataProgramState{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProgramState.DeepCopy().(BACnetProgramStateTagged),
+		utils.DeepCopy[BACnetProgramStateTagged](m.ProgramState),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProgramStateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPropertyList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPropertyList.go
index 793f29a282..55f22dc4da 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPropertyList.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPropertyList.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataPropertyList) deepCopy() *_BACnetConstructedDataP
 	}
 	_BACnetConstructedDataPropertyListCopy := &_BACnetConstructedDataPropertyList{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetPropertyIdentifierTagged, BACnetPropertyIdentifierTagged](m.PropertyList),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstant.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstant.go
index 565c572116..96f45e39e8 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstant.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstant.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProportionalConstant) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataProportionalConstantCopy := &_BACnetConstructedDataProportionalConstant{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProportionalConstant.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.ProportionalConstant),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProportionalConstantCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstantUnits.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstantUnits.go
index c43c37e385..853b628b52 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstantUnits.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProportionalConstantUnits.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataProportionalConstantUnits) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataProportionalConstantUnitsCopy := &_BACnetConstructedDataProportionalConstantUnits{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Units.DeepCopy().(BACnetEngineeringUnitsTagged),
+		utils.DeepCopy[BACnetEngineeringUnitsTagged](m.Units),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProportionalConstantUnitsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolLevel.go
index 982d38f4de..523ad718e0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolLevel.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProtocolLevel) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataProtocolLevelCopy := &_BACnetConstructedDataProtocolLevel{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProtocolLevel.DeepCopy().(BACnetProtocolLevelTagged),
+		utils.DeepCopy[BACnetProtocolLevelTagged](m.ProtocolLevel),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProtocolLevelCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolObjectTypesSupported.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolObjectTypesSupported.go
index 61ed188302..f4f8375890 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolObjectTypesSupported.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolObjectTypesSupported.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataProtocolObjectTypesSupported) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataProtocolObjectTypesSupportedCopy := &_BACnetConstructedDataProtocolObjectTypesSupported{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProtocolObjectTypesSupported.DeepCopy().(BACnetObjectTypesSupportedTagged),
+		utils.DeepCopy[BACnetObjectTypesSupportedTagged](m.ProtocolObjectTypesSupported),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProtocolObjectTypesSupportedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolRevision.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolRevision.go
index 4c22d34e15..8812d5f9be 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolRevision.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolRevision.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProtocolRevision) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataProtocolRevisionCopy := &_BACnetConstructedDataProtocolRevision{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProtocolRevision.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ProtocolRevision),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProtocolRevisionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolServicesSupported.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolServicesSupported.go
index 678a2640eb..b5504154b1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolServicesSupported.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolServicesSupported.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataProtocolServicesSupported) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataProtocolServicesSupportedCopy := &_BACnetConstructedDataProtocolServicesSupported{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProtocolServicesSupported.DeepCopy().(BACnetServicesSupportedTagged),
+		utils.DeepCopy[BACnetServicesSupportedTagged](m.ProtocolServicesSupported),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProtocolServicesSupportedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolVersion.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolVersion.go
index d53485d239..45726b4771 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolVersion.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataProtocolVersion.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataProtocolVersion) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataProtocolVersionCopy := &_BACnetConstructedDataProtocolVersion{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProtocolVersion.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ProtocolVersion),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataProtocolVersionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterAdjustValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterAdjustValue.go
index d2e99544bd..a25b0bbe81 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterAdjustValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterAdjustValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPulseConverterAdjustValue) deepCopy() *_BACnetCon
 	}
 	_BACnetConstructedDataPulseConverterAdjustValueCopy := &_BACnetConstructedDataPulseConverterAdjustValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.AdjustValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.AdjustValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPulseConverterAdjustValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterPresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterPresentValue.go
index a3bcf4b286..f59e58498f 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterPresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseConverterPresentValue.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataPulseConverterPresentValue) deepCopy() *_BACnetCo
 	}
 	_BACnetConstructedDataPulseConverterPresentValueCopy := &_BACnetConstructedDataPulseConverterPresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPulseConverterPresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseRate.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseRate.go
index 318c98111e..cf00cdb9ad 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseRate.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataPulseRate.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataPulseRate) deepCopy() *_BACnetConstructedDataPuls
 	}
 	_BACnetConstructedDataPulseRateCopy := &_BACnetConstructedDataPulseRate{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PulseRate.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.PulseRate),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataPulseRateCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReadOnly.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReadOnly.go
index dba3d9d474..ea91780c2a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReadOnly.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReadOnly.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataReadOnly) deepCopy() *_BACnetConstructedDataReadO
 	}
 	_BACnetConstructedDataReadOnlyCopy := &_BACnetConstructedDataReadOnly{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ReadOnly.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.ReadOnly),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataReadOnlyCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReasonForHalt.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReasonForHalt.go
index 48721eff99..f41d06988d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReasonForHalt.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReasonForHalt.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataReasonForHalt) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataReasonForHaltCopy := &_BACnetConstructedDataReasonForHalt{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ProgramError.DeepCopy().(BACnetProgramErrorTagged),
+		utils.DeepCopy[BACnetProgramErrorTagged](m.ProgramError),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataReasonForHaltCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordCount.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordCount.go
index d63789b32d..87bdc9dc3a 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordCount.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordCount.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataRecordCount) deepCopy() *_BACnetConstructedDataRe
 	}
 	_BACnetConstructedDataRecordCountCopy := &_BACnetConstructedDataRecordCount{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RecordCount.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RecordCount),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRecordCountCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordsSinceNotification.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordsSinceNotification.go
index 46b4b5fb3d..6fb835f6a6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordsSinceNotification.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRecordsSinceNotification.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataRecordsSinceNotification) deepCopy() *_BACnetCons
 	}
 	_BACnetConstructedDataRecordsSinceNotificationCopy := &_BACnetConstructedDataRecordsSinceNotification{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RecordsSinceNotifications.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RecordsSinceNotifications),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRecordsSinceNotificationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReferencePort.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReferencePort.go
index 6d81a99c74..15cff30cd0 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReferencePort.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReferencePort.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataReferencePort) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataReferencePortCopy := &_BACnetConstructedDataReferencePort{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ReferencePort.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ReferencePort),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataReferencePortCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRegisteredCarCall.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRegisteredCarCall.go
index afea1acf53..9a01147527 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRegisteredCarCall.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRegisteredCarCall.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataRegisteredCarCall) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataRegisteredCarCallCopy := &_BACnetConstructedDataRegisteredCarCall{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetLiftCarCallList, BACnetLiftCarCallList](m.RegisteredCarCall),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliability.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliability.go
index 4d9e27b83a..05c09a1365 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliability.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliability.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataReliability) deepCopy() *_BACnetConstructedDataRe
 	}
 	_BACnetConstructedDataReliabilityCopy := &_BACnetConstructedDataReliability{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Reliability.DeepCopy().(BACnetReliabilityTagged),
+		utils.DeepCopy[BACnetReliabilityTagged](m.Reliability),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataReliabilityCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliabilityEvaluationInhibit.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliabilityEvaluationInhibit.go
index 89c2cc3d35..edcb7987da 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliabilityEvaluationInhibit.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataReliabilityEvaluationInhibit.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataReliabilityEvaluationInhibit) deepCopy() *_BACnet
 	}
 	_BACnetConstructedDataReliabilityEvaluationInhibitCopy := &_BACnetConstructedDataReliabilityEvaluationInhibit{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ReliabilityEvaluationInhibit.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.ReliabilityEvaluationInhibit),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataReliabilityEvaluationInhibitCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRelinquishDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRelinquishDefault.go
index a6c310cc5d..ac01cb5da9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRelinquishDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRelinquishDefault.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataRelinquishDefault) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataRelinquishDefaultCopy := &_BACnetConstructedDataRelinquishDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RelinquishDefault.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RelinquishDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRelinquishDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRepresents.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRepresents.go
index 5696cb226d..d5bccf14c1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRepresents.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRepresents.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataRepresents) deepCopy() *_BACnetConstructedDataRep
 	}
 	_BACnetConstructedDataRepresentsCopy := &_BACnetConstructedDataRepresents{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Represents.DeepCopy().(BACnetDeviceObjectReference),
+		utils.DeepCopy[BACnetDeviceObjectReference](m.Represents),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRepresentsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedShedLevel.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedShedLevel.go
index 6e10c14e75..a5761c12da 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedShedLevel.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedShedLevel.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataRequestedShedLevel) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataRequestedShedLevelCopy := &_BACnetConstructedDataRequestedShedLevel{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RequestedShedLevel.DeepCopy().(BACnetShedLevel),
+		utils.DeepCopy[BACnetShedLevel](m.RequestedShedLevel),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRequestedShedLevelCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedUpdateInterval.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedUpdateInterval.go
index b60ec9b6da..ca4c8af86b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedUpdateInterval.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRequestedUpdateInterval.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataRequestedUpdateInterval) deepCopy() *_BACnetConst
 	}
 	_BACnetConstructedDataRequestedUpdateIntervalCopy := &_BACnetConstructedDataRequestedUpdateInterval{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RequestedUpdateInterval.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RequestedUpdateInterval),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRequestedUpdateIntervalCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataResolution.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataResolution.go
index 3c5928653b..fb9178309d 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataResolution.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataResolution.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataResolution) deepCopy() *_BACnetConstructedDataRes
 	}
 	_BACnetConstructedDataResolutionCopy := &_BACnetConstructedDataResolution{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Resolution.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.Resolution),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataResolutionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestoreCompletionTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestoreCompletionTime.go
index 7f0feaf1ec..32d9a3ef67 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestoreCompletionTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestoreCompletionTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataRestoreCompletionTime) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataRestoreCompletionTimeCopy := &_BACnetConstructedDataRestoreCompletionTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.CompletionTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.CompletionTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRestoreCompletionTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestorePreparationTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestorePreparationTime.go
index 43f2a42a55..7d3db52493 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestorePreparationTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataRestorePreparationTime.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataRestorePreparationTime) deepCopy() *_BACnetConstr
 	}
 	_BACnetConstructedDataRestorePreparationTimeCopy := &_BACnetConstructedDataRestorePreparationTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.RestorePreparationTime.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.RestorePreparationTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataRestorePreparationTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScale.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScale.go
index d24ef99527..b69347b6a6 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScale.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScale.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataScale) deepCopy() *_BACnetConstructedDataScale {
 	}
 	_BACnetConstructedDataScaleCopy := &_BACnetConstructedDataScale{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Scale.DeepCopy().(BACnetScale),
+		utils.DeepCopy[BACnetScale](m.Scale),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataScaleCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScaleFactor.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScaleFactor.go
index 84358147fe..9e6c624273 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScaleFactor.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScaleFactor.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataScaleFactor) deepCopy() *_BACnetConstructedDataSc
 	}
 	_BACnetConstructedDataScaleFactorCopy := &_BACnetConstructedDataScaleFactor{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ScaleFactor.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.ScaleFactor),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataScaleFactorCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScheduleDefault.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScheduleDefault.go
index be7d1ce8d9..d7bee03418 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScheduleDefault.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataScheduleDefault.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataScheduleDefault) deepCopy() *_BACnetConstructedDa
 	}
 	_BACnetConstructedDataScheduleDefaultCopy := &_BACnetConstructedDataScheduleDefault{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ScheduleDefault.DeepCopy().(BACnetConstructedDataElement),
+		utils.DeepCopy[BACnetConstructedDataElement](m.ScheduleDefault),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataScheduleDefaultCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSchedulePresentValue.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSchedulePresentValue.go
index 49bbb7752c..eee4803b7c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSchedulePresentValue.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSchedulePresentValue.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSchedulePresentValue) deepCopy() *_BACnetConstruc
 	}
 	_BACnetConstructedDataSchedulePresentValueCopy := &_BACnetConstructedDataSchedulePresentValue{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.PresentValue.DeepCopy().(BACnetConstructedDataElement),
+		utils.DeepCopy[BACnetConstructedDataElement](m.PresentValue),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSchedulePresentValueCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecuredStatus.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecuredStatus.go
index ce37a16f83..98ffebc4e9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecuredStatus.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecuredStatus.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSecuredStatus) deepCopy() *_BACnetConstructedData
 	}
 	_BACnetConstructedDataSecuredStatusCopy := &_BACnetConstructedDataSecuredStatus{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.SecuredStatus.DeepCopy().(BACnetDoorSecuredStatusTagged),
+		utils.DeepCopy[BACnetDoorSecuredStatusTagged](m.SecuredStatus),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSecuredStatusCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityPDUTimeout.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityPDUTimeout.go
index 77396ab134..3977e280ea 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityPDUTimeout.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityPDUTimeout.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSecurityPDUTimeout) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataSecurityPDUTimeoutCopy := &_BACnetConstructedDataSecurityPDUTimeout{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.SecurityPduTimeout.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.SecurityPduTimeout),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSecurityPDUTimeoutCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityTimeWindow.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityTimeWindow.go
index ae90c9e1c3..0e873b8bd7 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityTimeWindow.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSecurityTimeWindow.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSecurityTimeWindow) deepCopy() *_BACnetConstructe
 	}
 	_BACnetConstructedDataSecurityTimeWindowCopy := &_BACnetConstructedDataSecurityTimeWindow{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.SecurityTimeWindow.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.SecurityTimeWindow),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSecurityTimeWindowCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSegmentationSupported.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSegmentationSupported.go
index f7023b73e6..b5a64d41da 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSegmentationSupported.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSegmentationSupported.go
@@ -344,7 +344,7 @@ func (m *_BACnetConstructedDataSegmentationSupported) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataSegmentationSupportedCopy := &_BACnetConstructedDataSegmentationSupported{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.SegmentationSupported.DeepCopy().(BACnetSegmentationTagged),
+		utils.DeepCopy[BACnetSegmentationTagged](m.SegmentationSupported),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSegmentationSupportedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSerialNumber.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSerialNumber.go
index cfd82c8812..de59f5f2be 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSerialNumber.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSerialNumber.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSerialNumber) deepCopy() *_BACnetConstructedDataS
 	}
 	_BACnetConstructedDataSerialNumberCopy := &_BACnetConstructedDataSerialNumber{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.SerialNumber.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.SerialNumber),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSerialNumberCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpoint.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpoint.go
index 822fca48c0..34d3eb9e66 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpoint.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpoint.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSetpoint) deepCopy() *_BACnetConstructedDataSetpo
 	}
 	_BACnetConstructedDataSetpointCopy := &_BACnetConstructedDataSetpoint{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Setpoint.DeepCopy().(BACnetApplicationTagReal),
+		utils.DeepCopy[BACnetApplicationTagReal](m.Setpoint),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSetpointCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpointReference.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpointReference.go
index e9243ff432..46cdfe7b93 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpointReference.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetpointReference.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSetpointReference) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataSetpointReferenceCopy := &_BACnetConstructedDataSetpointReference{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.SetpointReference.DeepCopy().(BACnetSetpointReference),
+		utils.DeepCopy[BACnetSetpointReference](m.SetpointReference),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSetpointReferenceCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetting.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetting.go
index 9e32eafda2..7a6b0f4eb9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetting.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSetting.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSetting) deepCopy() *_BACnetConstructedDataSettin
 	}
 	_BACnetConstructedDataSettingCopy := &_BACnetConstructedDataSetting{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Setting.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.Setting),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSettingCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedDuration.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedDuration.go
index 65e6e88744..78fdee5d34 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedDuration.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedDuration.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataShedDuration) deepCopy() *_BACnetConstructedDataS
 	}
 	_BACnetConstructedDataShedDurationCopy := &_BACnetConstructedDataShedDuration{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.ShedDuration.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.ShedDuration),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataShedDurationCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevelDescriptions.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevelDescriptions.go
index c0f5b3e37a..a8eee3d3e2 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevelDescriptions.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevelDescriptions.go
@@ -375,7 +375,7 @@ func (m *_BACnetConstructedDataShedLevelDescriptions) deepCopy() *_BACnetConstru
 	}
 	_BACnetConstructedDataShedLevelDescriptionsCopy := &_BACnetConstructedDataShedLevelDescriptions{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.ShedLevelDescriptions),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevels.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevels.go
index 00560a01b7..aa0b5cdb6b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevels.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataShedLevels.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataShedLevels) deepCopy() *_BACnetConstructedDataShe
 	}
 	_BACnetConstructedDataShedLevelsCopy := &_BACnetConstructedDataShedLevels{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagUnsignedInteger, BACnetApplicationTagUnsignedInteger](m.ShedLevels),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSilenced.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSilenced.go
index 21b8db84de..5f1d89d68b 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSilenced.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSilenced.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSilenced) deepCopy() *_BACnetConstructedDataSilen
 	}
 	_BACnetConstructedDataSilencedCopy := &_BACnetConstructedDataSilenced{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.Silenced.DeepCopy().(BACnetSilencedStateTagged),
+		utils.DeepCopy[BACnetSilencedStateTagged](m.Silenced),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSilencedCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSlaveProxyEnable.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSlaveProxyEnable.go
index 958aabc511..808b691b44 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSlaveProxyEnable.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataSlaveProxyEnable.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataSlaveProxyEnable) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataSlaveProxyEnableCopy := &_BACnetConstructedDataSlaveProxyEnable{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.SlaveProxyEnable.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.SlaveProxyEnable),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataSlaveProxyEnableCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStartTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStartTime.go
index bbbcc6ffd3..114341608e 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStartTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStartTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataStartTime) deepCopy() *_BACnetConstructedDataStar
 	}
 	_BACnetConstructedDataStartTimeCopy := &_BACnetConstructedDataStartTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.StartTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.StartTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataStartTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateChangeValues.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateChangeValues.go
index f41024ac83..475dee778c 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateChangeValues.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateChangeValues.go
@@ -379,7 +379,7 @@ func (m *_BACnetConstructedDataStateChangeValues) deepCopy() *_BACnetConstructed
 	}
 	_BACnetConstructedDataStateChangeValuesCopy := &_BACnetConstructedDataStateChangeValues{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetTimerStateChangeValue, BACnetTimerStateChangeValue](m.StateChangeValues),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateDescription.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateDescription.go
index 3b27bc3d25..018f050799 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateDescription.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateDescription.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataStateDescription) deepCopy() *_BACnetConstructedD
 	}
 	_BACnetConstructedDataStateDescriptionCopy := &_BACnetConstructedDataStateDescription{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.StateDescription.DeepCopy().(BACnetApplicationTagCharacterString),
+		utils.DeepCopy[BACnetApplicationTagCharacterString](m.StateDescription),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataStateDescriptionCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateText.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateText.go
index 3f5c3dd930..0d5e53e0ff 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateText.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStateText.go
@@ -374,7 +374,7 @@ func (m *_BACnetConstructedDataStateText) deepCopy() *_BACnetConstructedDataStat
 	}
 	_BACnetConstructedDataStateTextCopy := &_BACnetConstructedDataStateText{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.NumberOfDataElements.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements),
 		utils.DeepCopySlice[BACnetApplicationTagCharacterString, BACnetApplicationTagCharacterString](m.StateText),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStatusFlags.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStatusFlags.go
index d4c13a8f03..f6616059c1 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStatusFlags.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStatusFlags.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataStatusFlags) deepCopy() *_BACnetConstructedDataSt
 	}
 	_BACnetConstructedDataStatusFlagsCopy := &_BACnetConstructedDataStatusFlags{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.StatusFlags.DeepCopy().(BACnetStatusFlagsTagged),
+		utils.DeepCopy[BACnetStatusFlagsTagged](m.StatusFlags),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataStatusFlagsCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopTime.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopTime.go
index 00bd66ec79..96213bcd39 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopTime.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopTime.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataStopTime) deepCopy() *_BACnetConstructedDataStopT
 	}
 	_BACnetConstructedDataStopTimeCopy := &_BACnetConstructedDataStopTime{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.StopTime.DeepCopy().(BACnetDateTime),
+		utils.DeepCopy[BACnetDateTime](m.StopTime),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataStopTimeCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopWhenFull.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopWhenFull.go
index 6bb4544edd..ce12055d20 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopWhenFull.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStopWhenFull.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataStopWhenFull) deepCopy() *_BACnetConstructedDataS
 	}
 	_BACnetConstructedDataStopWhenFullCopy := &_BACnetConstructedDataStopWhenFull{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.StopWhenFull.DeepCopy().(BACnetApplicationTagBoolean),
+		utils.DeepCopy[BACnetApplicationTagBoolean](m.StopWhenFull),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataStopWhenFullCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStrikeCount.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStrikeCount.go
index a7418984c6..5c46310df9 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStrikeCount.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStrikeCount.go
@@ -343,7 +343,7 @@ func (m *_BACnetConstructedDataStrikeCount) deepCopy() *_BACnetConstructedDataSt
 	}
 	_BACnetConstructedDataStrikeCountCopy := &_BACnetConstructedDataStrikeCount{
 		m.BACnetConstructedDataContract.(*_BACnetConstructedData).deepCopy(),
-		m.StrikeCount.DeepCopy().(BACnetApplicationTagUnsignedInteger),
+		utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.StrikeCount),
 	}
 	m.BACnetConstructedDataContract.(*_BACnetConstructedData)._SubType = m
 	return _BACnetConstructedDataStrikeCountCopy
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStructuredObjectList.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedDataStructuredObjectList.go
... 14526 lines suppressed ...