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 2021/04/17 20:42:32 UTC

[plc4x] branch develop updated (152caa3 -> aa6f514)

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

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


    from 152caa3  plc4go: optimized hex output
     new 15bc365  plc4go: fixed ascii box alignment issues
     new aa6f514  plc4go: improved rendering of discriminated models

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../resources/templates/go/model-template.go.ftlh  | 17 ++---
 go.mod                                             |  2 +-
 go.sum                                             |  4 ++
 .../model/AdsAddDeviceNotificationRequest.go       | 11 +--
 .../model/AdsAddDeviceNotificationResponse.go      | 11 +--
 .../internal/plc4go/ads/readwrite/model/AdsData.go | 13 ++--
 .../model/AdsDeleteDeviceNotificationRequest.go    | 11 +--
 .../model/AdsDeleteDeviceNotificationResponse.go   | 11 +--
 .../model/AdsDeviceNotificationRequest.go          | 11 +--
 .../model/AdsDeviceNotificationResponse.go         | 11 +--
 .../ads/readwrite/model/AdsInvalidRequest.go       | 11 +--
 .../ads/readwrite/model/AdsInvalidResponse.go      | 11 +--
 .../ads/readwrite/model/AdsMultiRequestItem.go     | 13 ++--
 .../ads/readwrite/model/AdsMultiRequestItemRead.go | 11 +--
 .../model/AdsMultiRequestItemReadWrite.go          | 11 +--
 .../readwrite/model/AdsMultiRequestItemWrite.go    | 11 +--
 .../ads/readwrite/model/AdsNotificationSample.go   |  9 +--
 .../readwrite/model/AdsReadDeviceInfoRequest.go    | 11 +--
 .../readwrite/model/AdsReadDeviceInfoResponse.go   | 11 +--
 .../plc4go/ads/readwrite/model/AdsReadRequest.go   | 11 +--
 .../plc4go/ads/readwrite/model/AdsReadResponse.go  | 11 +--
 .../ads/readwrite/model/AdsReadStateRequest.go     | 11 +--
 .../ads/readwrite/model/AdsReadStateResponse.go    | 11 +--
 .../ads/readwrite/model/AdsReadWriteRequest.go     | 11 +--
 .../ads/readwrite/model/AdsReadWriteResponse.go    | 11 +--
 .../plc4go/ads/readwrite/model/AdsStampHeader.go   |  9 +--
 .../ads/readwrite/model/AdsWriteControlRequest.go  | 11 +--
 .../ads/readwrite/model/AdsWriteControlResponse.go | 11 +--
 .../plc4go/ads/readwrite/model/AdsWriteRequest.go  | 11 +--
 .../plc4go/ads/readwrite/model/AdsWriteResponse.go | 11 +--
 .../plc4go/ads/readwrite/model/AmsNetId.go         |  9 +--
 .../plc4go/ads/readwrite/model/AmsPacket.go        |  9 +--
 .../readwrite/model/AmsSerialAcknowledgeFrame.go   |  9 +--
 .../plc4go/ads/readwrite/model/AmsSerialFrame.go   |  9 +--
 .../ads/readwrite/model/AmsSerialResetFrame.go     |  9 +--
 .../plc4go/ads/readwrite/model/AmsTCPPacket.go     |  9 +--
 .../internal/plc4go/ads/readwrite/model/State.go   |  9 +--
 .../plc4go/bacnetip/readwrite/model/APDU.go        | 13 ++--
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   | 11 +--
 .../bacnetip/readwrite/model/APDUComplexAck.go     | 11 +--
 .../readwrite/model/APDUConfirmedRequest.go        | 11 +--
 .../plc4go/bacnetip/readwrite/model/APDUError.go   | 11 +--
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  | 11 +--
 .../bacnetip/readwrite/model/APDUSegmentAck.go     | 11 +--
 .../bacnetip/readwrite/model/APDUSimpleAck.go      | 11 +--
 .../readwrite/model/APDUUnconfirmedRequest.go      | 11 +--
 .../bacnetip/readwrite/model/BACnetAddress.go      |  9 +--
 .../readwrite/model/BACnetConfirmedServiceACK.go   | 13 ++--
 .../BACnetConfirmedServiceACKAtomicReadFile.go     | 11 +--
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    | 11 +--
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go | 11 +--
 .../model/BACnetConfirmedServiceACKCreateObject.go | 11 +--
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    | 11 +--
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go | 11 +--
 ...BACnetConfirmedServiceACKGetEventInformation.go | 11 +--
 .../model/BACnetConfirmedServiceACKReadProperty.go | 11 +--
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go | 11 +--
 .../model/BACnetConfirmedServiceACKReadRange.go    | 11 +--
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go | 11 +--
 ...rmedServiceACKRemovedReadPropertyConditional.go | 11 +--
 .../model/BACnetConfirmedServiceACKVTData.go       | 11 +--
 .../model/BACnetConfirmedServiceACKVTOpen.go       | 11 +--
 .../model/BACnetConfirmedServiceRequest.go         | 13 ++--
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go | 11 +--
 .../BACnetConfirmedServiceRequestAddListElement.go | 11 +--
 .../BACnetConfirmedServiceRequestAtomicReadFile.go | 11 +--
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go | 11 +--
 ...firmedServiceRequestConfirmedCOVNotification.go | 11 +--
 ...rviceRequestConfirmedCOVNotificationMultiple.go | 11 +--
 ...rmedServiceRequestConfirmedEventNotification.go | 11 +--
 ...firmedServiceRequestConfirmedPrivateTransfer.go | 11 +--
 ...tConfirmedServiceRequestConfirmedTextMessage.go | 11 +--
 .../BACnetConfirmedServiceRequestCreateObject.go   | 11 +--
 .../BACnetConfirmedServiceRequestDeleteObject.go   | 11 +--
 ...rmedServiceRequestDeviceCommunicationControl.go | 11 +--
 ...tConfirmedServiceRequestGetEnrollmentSummary.go | 11 +--
 ...etConfirmedServiceRequestGetEventInformation.go | 11 +--
 ...etConfirmedServiceRequestLifeSafetyOperation.go | 11 +--
 .../BACnetConfirmedServiceRequestReadProperty.go   | 11 +--
 ...tConfirmedServiceRequestReadPropertyMultiple.go | 11 +--
 .../BACnetConfirmedServiceRequestReadRange.go      | 11 +--
 ...netConfirmedServiceRequestReinitializeDevice.go | 11 +--
 ...CnetConfirmedServiceRequestRemoveListElement.go | 11 +--
 ...etConfirmedServiceRequestRemovedAuthenticate.go | 11 +--
 ...ServiceRequestRemovedReadPropertyConditional.go | 11 +--
 ...CnetConfirmedServiceRequestRemovedRequestKey.go | 11 +--
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   | 11 +--
 ...tConfirmedServiceRequestSubscribeCOVProperty.go | 11 +--
 ...edServiceRequestSubscribeCOVPropertyMultiple.go | 11 +--
 .../model/BACnetConfirmedServiceRequestVTClose.go  | 11 +--
 .../model/BACnetConfirmedServiceRequestVTData.go   | 11 +--
 .../model/BACnetConfirmedServiceRequestVTOpen.go   | 11 +--
 .../BACnetConfirmedServiceRequestWriteProperty.go  | 11 +--
 ...ConfirmedServiceRequestWritePropertyMultiple.go | 11 +--
 .../plc4go/bacnetip/readwrite/model/BACnetError.go | 13 ++--
 .../readwrite/model/BACnetErrorAtomicReadFile.go   | 11 +--
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  | 11 +--
 .../model/BACnetErrorConfirmedPrivateTransfer.go   | 11 +--
 .../readwrite/model/BACnetErrorCreateObject.go     | 11 +--
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  | 11 +--
 .../model/BACnetErrorGetEnrollmentSummary.go       | 11 +--
 .../model/BACnetErrorGetEventInformation.go        | 11 +--
 .../readwrite/model/BACnetErrorReadProperty.go     | 11 +--
 .../model/BACnetErrorReadPropertyMultiple.go       | 11 +--
 .../readwrite/model/BACnetErrorReadRange.go        | 11 +--
 .../model/BACnetErrorRemovedAuthenticate.go        | 11 +--
 .../BACnetErrorRemovedReadPropertyConditional.go   | 11 +--
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  | 11 +--
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  | 11 +--
 .../bacnetip/readwrite/model/BACnetServiceAck.go   | 13 ++--
 .../model/BACnetServiceAckAtomicReadFile.go        | 11 +--
 .../model/BACnetServiceAckAtomicWriteFile.go       | 11 +--
 .../BACnetServiceAckConfirmedPrivateTransfer.go    | 11 +--
 .../model/BACnetServiceAckCreateObject.go          | 11 +--
 .../model/BACnetServiceAckGetAlarmSummary.go       | 11 +--
 .../model/BACnetServiceAckGetEnrollmentSummary.go  | 11 +--
 .../model/BACnetServiceAckGetEventInformation.go   | 11 +--
 .../model/BACnetServiceAckReadProperty.go          | 11 +--
 .../model/BACnetServiceAckReadPropertyMultiple.go  | 11 +--
 .../readwrite/model/BACnetServiceAckReadRange.go   | 11 +--
 .../model/BACnetServiceAckRemovedAuthenticate.go   | 11 +--
 ...CnetServiceAckRemovedReadPropertyConditional.go | 11 +--
 .../readwrite/model/BACnetServiceAckVTData.go      | 11 +--
 .../readwrite/model/BACnetServiceAckVTOpen.go      | 11 +--
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   | 13 ++--
 .../model/BACnetTagApplicationBitString.go         | 11 +--
 .../readwrite/model/BACnetTagApplicationBoolean.go | 11 +--
 .../model/BACnetTagApplicationCharacterString.go   | 11 +--
 .../readwrite/model/BACnetTagApplicationDate.go    | 11 +--
 .../readwrite/model/BACnetTagApplicationDouble.go  | 11 +--
 .../model/BACnetTagApplicationEnumerated.go        | 11 +--
 .../readwrite/model/BACnetTagApplicationNull.go    | 11 +--
 .../model/BACnetTagApplicationObjectIdentifier.go  | 11 +--
 .../model/BACnetTagApplicationOctetString.go       | 11 +--
 .../readwrite/model/BACnetTagApplicationReal.go    | 11 +--
 .../model/BACnetTagApplicationSignedInteger.go     | 11 +--
 .../readwrite/model/BACnetTagApplicationTime.go    | 11 +--
 .../model/BACnetTagApplicationUnsignedInteger.go   | 11 +--
 .../bacnetip/readwrite/model/BACnetTagContext.go   | 11 +--
 .../readwrite/model/BACnetTagWithContent.go        |  9 +--
 .../model/BACnetUnconfirmedServiceRequest.go       | 13 ++--
 .../model/BACnetUnconfirmedServiceRequestIAm.go    | 11 +--
 .../model/BACnetUnconfirmedServiceRequestIHave.go  | 11 +--
 ...UnconfirmedServiceRequestTimeSynchronization.go | 11 +--
 ...onfirmedServiceRequestUTCTimeSynchronization.go | 11 +--
 ...rmedServiceRequestUnconfirmedCOVNotification.go | 11 +--
 ...iceRequestUnconfirmedCOVNotificationMultiple.go | 11 +--
 ...edServiceRequestUnconfirmedEventNotification.go | 11 +--
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go | 11 +--
 ...onfirmedServiceRequestUnconfirmedTextMessage.go | 11 +--
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go | 11 +--
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  | 11 +--
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   | 11 +--
 .../plc4go/bacnetip/readwrite/model/BVLC.go        | 13 ++--
 .../model/BVLCDeleteForeignDeviceTableEntry.go     | 11 +--
 .../model/BVLCDistributeBroadcastToNetwork.go      | 11 +--
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  | 11 +--
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   | 11 +--
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     | 11 +--
 .../model/BVLCReadBroadcastDistributionTable.go    | 11 +--
 .../model/BVLCReadBroadcastDistributionTableAck.go | 11 +--
 .../readwrite/model/BVLCReadForeignDeviceTable.go  | 11 +--
 .../model/BVLCReadForeignDeviceTableAck.go         | 11 +--
 .../readwrite/model/BVLCRegisterForeignDevice.go   | 11 +--
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  | 11 +--
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     | 11 +--
 .../model/BVLCWideBroadcastDistributionTable.go    | 11 +--
 .../plc4go/bacnetip/readwrite/model/NLM.go         | 13 ++--
 .../readwrite/model/NLMIAmRouterToNetwork.go       | 11 +--
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     | 11 +--
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |  9 +--
 .../plc4go/knxnetip/readwrite/model/Apdu.go        | 13 ++--
 .../plc4go/knxnetip/readwrite/model/ApduControl.go | 13 ++--
 .../knxnetip/readwrite/model/ApduControlAck.go     | 11 +--
 .../knxnetip/readwrite/model/ApduControlConnect.go | 11 +--
 .../readwrite/model/ApduControlContainer.go        | 11 +--
 .../readwrite/model/ApduControlDisconnect.go       | 11 +--
 .../knxnetip/readwrite/model/ApduControlNack.go    | 11 +--
 .../plc4go/knxnetip/readwrite/model/ApduData.go    | 13 ++--
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    | 11 +--
 .../readwrite/model/ApduDataAdcResponse.go         | 11 +--
 .../knxnetip/readwrite/model/ApduDataContainer.go  | 11 +--
 .../model/ApduDataDeviceDescriptorRead.go          | 11 +--
 .../model/ApduDataDeviceDescriptorResponse.go      | 11 +--
 .../plc4go/knxnetip/readwrite/model/ApduDataExt.go | 13 ++--
 .../readwrite/model/ApduDataExtAuthorizeRequest.go | 11 +--
 .../model/ApduDataExtAuthorizeResponse.go          | 11 +--
 .../model/ApduDataExtDomainAddressRead.go          | 11 +--
 .../model/ApduDataExtDomainAddressResponse.go      | 11 +--
 .../model/ApduDataExtDomainAddressSelectiveRead.go | 11 +--
 .../ApduDataExtDomainAddressSerialNumberRead.go    | 11 +--
 ...ApduDataExtDomainAddressSerialNumberResponse.go | 11 +--
 .../ApduDataExtDomainAddressSerialNumberWrite.go   | 11 +--
 .../model/ApduDataExtDomainAddressWrite.go         | 11 +--
 .../model/ApduDataExtFileStreamInfoReport.go       | 11 +--
 .../ApduDataExtGroupPropertyValueInfoReport.go     | 11 +--
 .../model/ApduDataExtGroupPropertyValueRead.go     | 11 +--
 .../model/ApduDataExtGroupPropertyValueResponse.go | 11 +--
 .../model/ApduDataExtGroupPropertyValueWrite.go    | 11 +--
 ...ApduDataExtIndividualAddressSerialNumberRead.go | 11 +--
 ...DataExtIndividualAddressSerialNumberResponse.go | 11 +--
 ...pduDataExtIndividualAddressSerialNumberWrite.go | 11 +--
 .../readwrite/model/ApduDataExtKeyResponse.go      | 11 +--
 .../readwrite/model/ApduDataExtKeyWrite.go         | 11 +--
 .../readwrite/model/ApduDataExtLinkRead.go         | 11 +--
 .../readwrite/model/ApduDataExtLinkResponse.go     | 11 +--
 .../readwrite/model/ApduDataExtLinkWrite.go        | 11 +--
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   | 11 +--
 .../model/ApduDataExtNetworkParameterRead.go       | 11 +--
 .../model/ApduDataExtNetworkParameterResponse.go   | 11 +--
 .../model/ApduDataExtNetworkParameterWrite.go      | 11 +--
 .../model/ApduDataExtOpenRoutingTableRequest.go    | 11 +--
 .../model/ApduDataExtPropertyDescriptionRead.go    | 11 +--
 .../ApduDataExtPropertyDescriptionResponse.go      | 11 +--
 .../model/ApduDataExtPropertyValueRead.go          | 11 +--
 .../model/ApduDataExtPropertyValueResponse.go      | 11 +--
 .../model/ApduDataExtPropertyValueWrite.go         | 11 +--
 .../model/ApduDataExtReadRouterMemoryRequest.go    | 11 +--
 .../model/ApduDataExtReadRouterMemoryResponse.go   | 11 +--
 .../model/ApduDataExtReadRouterStatusRequest.go    | 11 +--
 .../model/ApduDataExtReadRouterStatusResponse.go   | 11 +--
 .../model/ApduDataExtReadRoutingTableRequest.go    | 11 +--
 .../model/ApduDataExtReadRoutingTableResponse.go   | 11 +--
 .../model/ApduDataExtWriteRouterMemoryRequest.go   | 11 +--
 .../model/ApduDataExtWriteRouterStatusRequest.go   | 11 +--
 .../model/ApduDataExtWriteRoutingTableRequest.go   | 11 +--
 .../readwrite/model/ApduDataGroupValueRead.go      | 11 +--
 .../readwrite/model/ApduDataGroupValueResponse.go  | 11 +--
 .../readwrite/model/ApduDataGroupValueWrite.go     | 11 +--
 .../model/ApduDataIndividualAddressRead.go         | 11 +--
 .../model/ApduDataIndividualAddressResponse.go     | 11 +--
 .../model/ApduDataIndividualAddressWrite.go        | 11 +--
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go | 11 +--
 .../readwrite/model/ApduDataMemoryResponse.go      | 11 +--
 .../readwrite/model/ApduDataMemoryWrite.go         | 11 +--
 .../knxnetip/readwrite/model/ApduDataOther.go      | 11 +--
 .../knxnetip/readwrite/model/ApduDataRestart.go    | 11 +--
 .../readwrite/model/ApduDataUserMessage.go         | 11 +--
 .../plc4go/knxnetip/readwrite/model/CEMI.go        | 13 ++--
 .../readwrite/model/CEMIAdditionalInformation.go   | 13 ++--
 .../CEMIAdditionalInformationBusmonitorInfo.go     | 11 +--
 .../CEMIAdditionalInformationRelativeTimestamp.go  | 11 +--
 .../knxnetip/readwrite/model/ChannelInformation.go |  9 +--
 .../knxnetip/readwrite/model/ComObjectTable.go     | 13 ++--
 .../model/ComObjectTableRealisationType1.go        | 11 +--
 .../model/ComObjectTableRealisationType2.go        | 11 +--
 .../model/ComObjectTableRealisationType6.go        | 11 +--
 .../knxnetip/readwrite/model/ConnectionRequest.go  | 11 +--
 .../model/ConnectionRequestInformation.go          | 13 ++--
 ...ConnectionRequestInformationDeviceManagement.go | 11 +--
 ...ConnectionRequestInformationTunnelConnection.go | 11 +--
 .../knxnetip/readwrite/model/ConnectionResponse.go | 11 +--
 .../readwrite/model/ConnectionResponseDataBlock.go | 13 ++--
 .../ConnectionResponseDataBlockDeviceManagement.go | 11 +--
 .../ConnectionResponseDataBlockTunnelConnection.go | 11 +--
 .../readwrite/model/ConnectionStateRequest.go      | 11 +--
 .../readwrite/model/ConnectionStateResponse.go     | 11 +--
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |  9 +--
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |  9 +--
 .../knxnetip/readwrite/model/DescriptionRequest.go | 11 +--
 .../readwrite/model/DescriptionResponse.go         | 11 +--
 .../readwrite/model/DeviceConfigurationAck.go      | 11 +--
 .../model/DeviceConfigurationAckDataBlock.go       |  9 +--
 .../readwrite/model/DeviceConfigurationRequest.go  | 11 +--
 .../model/DeviceConfigurationRequestDataBlock.go   |  9 +--
 .../readwrite/model/DeviceDescriptorType2.go       |  9 +--
 .../knxnetip/readwrite/model/DeviceStatus.go       |  9 +--
 .../knxnetip/readwrite/model/DisconnectRequest.go  | 11 +--
 .../knxnetip/readwrite/model/DisconnectResponse.go | 11 +--
 .../model/GroupObjectDescriptorRealisationType1.go |  9 +--
 .../model/GroupObjectDescriptorRealisationType2.go |  9 +--
 .../model/GroupObjectDescriptorRealisationType6.go |  9 +--
 .../model/GroupObjectDescriptorRealisationType7.go |  9 +--
 .../model/GroupObjectDescriptorRealisationTypeB.go |  9 +--
 .../readwrite/model/HPAIControlEndpoint.go         |  9 +--
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |  9 +--
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |  9 +--
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |  9 +--
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |  9 +--
 .../knxnetip/readwrite/model/KnxGroupAddress.go    | 13 ++--
 .../readwrite/model/KnxGroupAddress2Level.go       | 11 +--
 .../readwrite/model/KnxGroupAddress3Level.go       | 11 +--
 .../readwrite/model/KnxGroupAddressFreeLevel.go    | 11 +--
 .../knxnetip/readwrite/model/KnxNetIpCore.go       | 11 +--
 .../readwrite/model/KnxNetIpDeviceManagement.go    | 11 +--
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    | 13 ++--
 .../knxnetip/readwrite/model/KnxNetIpRouting.go    | 11 +--
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  | 11 +--
 .../knxnetip/readwrite/model/KnxNetObjectServer.go | 11 +--
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go | 11 +--
 .../readwrite/model/KnxNetRemoteLogging.go         | 11 +--
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  | 11 +--
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    | 11 +--
 .../knxnetip/readwrite/model/LDataExtended.go      | 11 +--
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  | 13 ++--
 .../knxnetip/readwrite/model/LDataFrameACK.go      | 11 +--
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    | 11 +--
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    | 11 +--
 .../plc4go/knxnetip/readwrite/model/LPollData.go   | 11 +--
 .../knxnetip/readwrite/model/LPollDataCon.go       | 11 +--
 .../knxnetip/readwrite/model/LPollDataReq.go       | 11 +--
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     | 11 +--
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     | 11 +--
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     | 11 +--
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |  9 +--
 .../readwrite/model/MFuncPropCommandReq.go         | 11 +--
 .../knxnetip/readwrite/model/MFuncPropCon.go       | 11 +--
 .../readwrite/model/MFuncPropStateReadReq.go       | 11 +--
 .../knxnetip/readwrite/model/MPropInfoInd.go       | 11 +--
 .../knxnetip/readwrite/model/MPropReadCon.go       | 11 +--
 .../knxnetip/readwrite/model/MPropReadReq.go       | 11 +--
 .../knxnetip/readwrite/model/MPropWriteCon.go      | 11 +--
 .../knxnetip/readwrite/model/MPropWriteReq.go      | 11 +--
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   | 11 +--
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   | 11 +--
 .../model/ProjectInstallationIdentifier.go         |  9 +--
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |  9 +--
 .../knxnetip/readwrite/model/RoutingIndication.go  | 11 +--
 .../knxnetip/readwrite/model/SearchRequest.go      | 11 +--
 .../knxnetip/readwrite/model/SearchResponse.go     | 11 +--
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   | 13 ++--
 .../knxnetip/readwrite/model/TDataConnectedInd.go  | 11 +--
 .../knxnetip/readwrite/model/TDataConnectedReq.go  | 11 +--
 .../knxnetip/readwrite/model/TDataIndividualInd.go | 11 +--
 .../knxnetip/readwrite/model/TDataIndividualReq.go | 11 +--
 .../knxnetip/readwrite/model/TunnelingRequest.go   | 11 +--
 .../readwrite/model/TunnelingRequestDataBlock.go   |  9 +--
 .../knxnetip/readwrite/model/TunnelingResponse.go  | 11 +--
 .../readwrite/model/TunnelingResponseDataBlock.go  |  9 +--
 .../knxnetip/readwrite/model/UnknownMessage.go     | 11 +--
 .../modbus/readwrite/model/ModbusConstants.go      |  9 +--
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     | 13 ++--
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  | 11 +--
 .../readwrite/model/ModbusPDUDiagnosticResponse.go | 11 +--
 .../modbus/readwrite/model/ModbusPDUError.go       | 11 +--
 .../model/ModbusPDUGetComEventCounterRequest.go    | 11 +--
 .../model/ModbusPDUGetComEventCounterResponse.go   | 11 +--
 .../model/ModbusPDUGetComEventLogRequest.go        | 11 +--
 .../model/ModbusPDUGetComEventLogResponse.go       | 11 +--
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    | 11 +--
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   | 11 +--
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   | 11 +--
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  | 11 +--
 .../ModbusPDUReadDeviceIdentificationRequest.go    | 11 +--
 .../ModbusPDUReadDeviceIdentificationResponse.go   | 11 +--
 .../model/ModbusPDUReadDiscreteInputsRequest.go    | 11 +--
 .../model/ModbusPDUReadDiscreteInputsResponse.go   | 11 +--
 .../model/ModbusPDUReadExceptionStatusRequest.go   | 11 +--
 .../model/ModbusPDUReadExceptionStatusResponse.go  | 11 +--
 .../model/ModbusPDUReadFifoQueueRequest.go         | 11 +--
 .../model/ModbusPDUReadFifoQueueResponse.go        | 11 +--
 .../model/ModbusPDUReadFileRecordRequest.go        | 11 +--
 .../model/ModbusPDUReadFileRecordRequestItem.go    |  9 +--
 .../model/ModbusPDUReadFileRecordResponse.go       | 11 +--
 .../model/ModbusPDUReadFileRecordResponseItem.go   |  9 +--
 .../model/ModbusPDUReadHoldingRegistersRequest.go  | 11 +--
 .../model/ModbusPDUReadHoldingRegistersResponse.go | 11 +--
 .../model/ModbusPDUReadInputRegistersRequest.go    | 11 +--
 .../model/ModbusPDUReadInputRegistersResponse.go   | 11 +--
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go | 11 +--
 ...PDUReadWriteMultipleHoldingRegistersResponse.go | 11 +--
 .../model/ModbusPDUReportServerIdRequest.go        | 11 +--
 .../model/ModbusPDUReportServerIdResponse.go       | 11 +--
 .../model/ModbusPDUWriteFileRecordRequest.go       | 11 +--
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |  9 +--
 .../model/ModbusPDUWriteFileRecordResponse.go      | 11 +--
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |  9 +--
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    | 11 +--
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   | 11 +--
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go | 11 +--
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go | 11 +--
 .../model/ModbusPDUWriteSingleCoilRequest.go       | 11 +--
 .../model/ModbusPDUWriteSingleCoilResponse.go      | 11 +--
 .../model/ModbusPDUWriteSingleRegisterRequest.go   | 11 +--
 .../model/ModbusPDUWriteSingleRegisterResponse.go  | 11 +--
 .../modbus/readwrite/model/ModbusSerialADU.go      |  9 +--
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |  9 +--
 .../plc4go/s7/readwrite/model/COTPPacket.go        | 13 ++--
 .../readwrite/model/COTPPacketConnectionRequest.go | 11 +--
 .../model/COTPPacketConnectionResponse.go          | 11 +--
 .../plc4go/s7/readwrite/model/COTPPacketData.go    | 11 +--
 .../readwrite/model/COTPPacketDisconnectRequest.go | 11 +--
 .../model/COTPPacketDisconnectResponse.go          | 11 +--
 .../s7/readwrite/model/COTPPacketTpduError.go      | 11 +--
 .../plc4go/s7/readwrite/model/COTPParameter.go     | 13 ++--
 .../s7/readwrite/model/COTPParameterCalledTsap.go  | 11 +--
 .../s7/readwrite/model/COTPParameterCallingTsap.go | 11 +--
 .../s7/readwrite/model/COTPParameterChecksum.go    | 11 +--
 ...COTPParameterDisconnectAdditionalInformation.go | 11 +--
 .../s7/readwrite/model/COTPParameterTpduSize.go    | 11 +--
 .../plc4go/s7/readwrite/model/S7Address.go         | 13 ++--
 .../plc4go/s7/readwrite/model/S7AddressAny.go      | 11 +--
 .../plc4go/s7/readwrite/model/S7Message.go         | 13 ++--
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  | 11 +--
 .../plc4go/s7/readwrite/model/S7MessageResponse.go | 11 +--
 .../s7/readwrite/model/S7MessageResponseData.go    | 11 +--
 .../plc4go/s7/readwrite/model/S7MessageUserData.go | 11 +--
 .../plc4go/s7/readwrite/model/S7Parameter.go       | 13 ++--
 .../readwrite/model/S7ParameterReadVarRequest.go   | 11 +--
 .../readwrite/model/S7ParameterReadVarResponse.go  | 11 +--
 .../model/S7ParameterSetupCommunication.go         | 11 +--
 .../s7/readwrite/model/S7ParameterUserData.go      | 11 +--
 .../s7/readwrite/model/S7ParameterUserDataItem.go  | 13 ++--
 .../model/S7ParameterUserDataItemCPUFunctions.go   | 11 +--
 .../readwrite/model/S7ParameterWriteVarRequest.go  | 11 +--
 .../readwrite/model/S7ParameterWriteVarResponse.go | 11 +--
 .../plc4go/s7/readwrite/model/S7Payload.go         | 13 ++--
 .../s7/readwrite/model/S7PayloadReadVarResponse.go | 11 +--
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go | 11 +--
 .../s7/readwrite/model/S7PayloadUserDataItem.go    | 13 ++--
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go | 11 +--
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go | 11 +--
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go | 11 +--
 .../readwrite/model/S7PayloadWriteVarResponse.go   | 11 +--
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |  9 +--
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |  9 +--
 .../readwrite/model/S7VarRequestParameterItem.go   | 13 ++--
 .../model/S7VarRequestParameterItemAddress.go      | 11 +--
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |  9 +--
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |  9 +--
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |  9 +--
 plc4go/internal/plc4go/s7/s7Io_test.go             | 46 ++++++++-----
 plc4go/internal/plc4go/spi/utils/asciiBox.go       | 24 +++++--
 plc4go/internal/plc4go/spi/utils/asciiBox_test.go  | 78 ++++++++++++++++++++++
 424 files changed, 2637 insertions(+), 2108 deletions(-)

[plc4x] 01/02: plc4go: fixed ascii box alignment issues

Posted by sr...@apache.org.
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

commit 15bc36516060df3f9656b694817999b004af3edf
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Sat Apr 17 22:31:57 2021 +0200

    plc4go: fixed ascii box alignment issues
---
 plc4go/internal/plc4go/spi/utils/asciiBox.go      | 24 +++++--
 plc4go/internal/plc4go/spi/utils/asciiBox_test.go | 78 +++++++++++++++++++++++
 2 files changed, 98 insertions(+), 4 deletions(-)

diff --git a/plc4go/internal/plc4go/spi/utils/asciiBox.go b/plc4go/internal/plc4go/spi/utils/asciiBox.go
index 0e2cda4..1c163eb 100644
--- a/plc4go/internal/plc4go/spi/utils/asciiBox.go
+++ b/plc4go/internal/plc4go/spi/utils/asciiBox.go
@@ -133,23 +133,39 @@ func BoxString(name string, data string, charWidth int) AsciiBox {
 	return AsciiBox(boxedString)
 }
 
-func AlignBoxes(boxes []AsciiBox, desiredWith int) AsciiBox {
+func AlignBoxes(boxes []AsciiBox, desiredWidth int) AsciiBox {
+	if len(boxes) == 0 {
+		return boxes[0]
+	}
+	actualWidth := desiredWidth
+	for _, box := range boxes {
+		boxWidth := box.Width()
+		if boxWidth > desiredWidth {
+			if DebugAsciiBox {
+				log.Debug().Msgf("Overflow by %d chars", boxWidth-desiredWidth)
+			}
+			actualWidth = boxWidth
+		}
+	}
+	if DebugAsciiBox {
+		log.Debug().Msgf("Working with %d chars", actualWidth)
+	}
 	bigBox := AsciiBox("")
 	currentBoxRow := make([]AsciiBox, 0)
 	currentRowLength := 0
 	for _, box := range boxes {
 		currentRowLength += box.Width()
-		currentBoxRow = append(currentBoxRow, box)
-		if currentRowLength >= desiredWith {
+		if currentRowLength > actualWidth {
 			mergedBoxes := mergeHorizontal(currentBoxRow)
 			if bigBox == "" {
 				bigBox = mergedBoxes
 			} else {
 				bigBox = BoxBelowBox(bigBox, mergedBoxes)
 			}
-			currentRowLength = 0
+			currentRowLength = box.Width()
 			currentBoxRow = make([]AsciiBox, 0)
 		}
+		currentBoxRow = append(currentBoxRow, box)
 	}
 	if len(currentBoxRow) > 0 {
 		// Special case where all boxes fit into one row
diff --git a/plc4go/internal/plc4go/spi/utils/asciiBox_test.go b/plc4go/internal/plc4go/spi/utils/asciiBox_test.go
index 5b8788f..68a5857 100644
--- a/plc4go/internal/plc4go/spi/utils/asciiBox_test.go
+++ b/plc4go/internal/plc4go/spi/utils/asciiBox_test.go
@@ -24,6 +24,10 @@ import (
 	"testing"
 )
 
+func init() {
+	DebugAsciiBox = true
+}
+
 func TestBoxAnything(t *testing.T) {
 	type args struct {
 		name      string
@@ -470,6 +474,80 @@ func TestAlignBoxes(t *testing.T) {
 				desiredWith: 65,
 			},
 			want: `
+╔═sampleField════════════╗╔═sampleField════════════╗
+║      123123123123      ║║      123123123123      ║
+║123123ABABABABABAB123123║║123123123123123123123123║
+╚════════════════════════╝╚════════════════════════╝
+╔═sampleField════════════╗╔═sampleField════════════╗
+║      123123123123      ║║      123123123123      ║
+║123123ABABABABABAB123123║║123123123123123123123123║
+╚════════════════════════╝╚════════════════════════╝
+╔═sampleField════════════╗╔═sampleField════════════╗
+║      123123123123      ║║      123123123123      ║
+║123123ABABABABABAB123123║║123123123123123123123123║
+╚════════════════════════╝╚════════════════════════╝
+╔═sampleField════════════╗╔═sampleField════════════╗
+║      123123123123      ║║      123123123123      ║
+║123123ABABABABABAB123123║║123123123123123123123123║
+╚════════════════════════╝╚════════════════════════╝
+`,
+		},
+		{
+			name: "not enough space should result in multiple rows (3 columns)",
+			args: args{
+				boxes: []AsciiBox{
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123ABABABABABAB123123║
+╚════════════════════════╝
+`,
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123123123123123123123║
+╚════════════════════════╝
+`,
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123ABABABABABAB123123║
+╚════════════════════════╝
+`,
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123123123123123123123║
+╚════════════════════════╝
+`,
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123ABABABABABAB123123║
+╚════════════════════════╝
+`,
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123123123123123123123║
+╚════════════════════════╝
+`,
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123ABABABABABAB123123║
+╚════════════════════════╝
+`,
+					`
+╔═sampleField════════════╗
+║      123123123123      ║
+║123123123123123123123123║
+╚════════════════════════╝
+`,
+				},
+				desiredWith: 78,
+			},
+			want: `
 ╔═sampleField════════════╗╔═sampleField════════════╗╔═sampleField════════════╗
 ║      123123123123      ║║      123123123123      ║║      123123123123      ║
 ║123123ABABABABABAB123123║║123123123123123123123123║║123123ABABABABABAB123123║

[plc4x] 02/02: plc4go: improved rendering of discriminated models

Posted by sr...@apache.org.
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

commit aa6f51489015feeeb11d8a5d67a3c2b601393065
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Sat Apr 17 22:41:59 2021 +0200

    plc4go: improved rendering of discriminated models
---
 .../resources/templates/go/model-template.go.ftlh  | 17 ++++----
 go.mod                                             |  2 +-
 go.sum                                             |  4 ++
 .../model/AdsAddDeviceNotificationRequest.go       | 11 +++---
 .../model/AdsAddDeviceNotificationResponse.go      | 11 +++---
 .../internal/plc4go/ads/readwrite/model/AdsData.go | 13 +++---
 .../model/AdsDeleteDeviceNotificationRequest.go    | 11 +++---
 .../model/AdsDeleteDeviceNotificationResponse.go   | 11 +++---
 .../model/AdsDeviceNotificationRequest.go          | 11 +++---
 .../model/AdsDeviceNotificationResponse.go         | 11 +++---
 .../ads/readwrite/model/AdsInvalidRequest.go       | 11 +++---
 .../ads/readwrite/model/AdsInvalidResponse.go      | 11 +++---
 .../ads/readwrite/model/AdsMultiRequestItem.go     | 13 +++---
 .../ads/readwrite/model/AdsMultiRequestItemRead.go | 11 +++---
 .../model/AdsMultiRequestItemReadWrite.go          | 11 +++---
 .../readwrite/model/AdsMultiRequestItemWrite.go    | 11 +++---
 .../ads/readwrite/model/AdsNotificationSample.go   |  9 +++--
 .../readwrite/model/AdsReadDeviceInfoRequest.go    | 11 +++---
 .../readwrite/model/AdsReadDeviceInfoResponse.go   | 11 +++---
 .../plc4go/ads/readwrite/model/AdsReadRequest.go   | 11 +++---
 .../plc4go/ads/readwrite/model/AdsReadResponse.go  | 11 +++---
 .../ads/readwrite/model/AdsReadStateRequest.go     | 11 +++---
 .../ads/readwrite/model/AdsReadStateResponse.go    | 11 +++---
 .../ads/readwrite/model/AdsReadWriteRequest.go     | 11 +++---
 .../ads/readwrite/model/AdsReadWriteResponse.go    | 11 +++---
 .../plc4go/ads/readwrite/model/AdsStampHeader.go   |  9 +++--
 .../ads/readwrite/model/AdsWriteControlRequest.go  | 11 +++---
 .../ads/readwrite/model/AdsWriteControlResponse.go | 11 +++---
 .../plc4go/ads/readwrite/model/AdsWriteRequest.go  | 11 +++---
 .../plc4go/ads/readwrite/model/AdsWriteResponse.go | 11 +++---
 .../plc4go/ads/readwrite/model/AmsNetId.go         |  9 +++--
 .../plc4go/ads/readwrite/model/AmsPacket.go        |  9 +++--
 .../readwrite/model/AmsSerialAcknowledgeFrame.go   |  9 +++--
 .../plc4go/ads/readwrite/model/AmsSerialFrame.go   |  9 +++--
 .../ads/readwrite/model/AmsSerialResetFrame.go     |  9 +++--
 .../plc4go/ads/readwrite/model/AmsTCPPacket.go     |  9 +++--
 .../internal/plc4go/ads/readwrite/model/State.go   |  9 +++--
 .../plc4go/bacnetip/readwrite/model/APDU.go        | 13 +++---
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   | 11 +++---
 .../bacnetip/readwrite/model/APDUComplexAck.go     | 11 +++---
 .../readwrite/model/APDUConfirmedRequest.go        | 11 +++---
 .../plc4go/bacnetip/readwrite/model/APDUError.go   | 11 +++---
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  | 11 +++---
 .../bacnetip/readwrite/model/APDUSegmentAck.go     | 11 +++---
 .../bacnetip/readwrite/model/APDUSimpleAck.go      | 11 +++---
 .../readwrite/model/APDUUnconfirmedRequest.go      | 11 +++---
 .../bacnetip/readwrite/model/BACnetAddress.go      |  9 +++--
 .../readwrite/model/BACnetConfirmedServiceACK.go   | 13 +++---
 .../BACnetConfirmedServiceACKAtomicReadFile.go     | 11 +++---
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    | 11 +++---
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go | 11 +++---
 .../model/BACnetConfirmedServiceACKCreateObject.go | 11 +++---
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    | 11 +++---
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go | 11 +++---
 ...BACnetConfirmedServiceACKGetEventInformation.go | 11 +++---
 .../model/BACnetConfirmedServiceACKReadProperty.go | 11 +++---
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go | 11 +++---
 .../model/BACnetConfirmedServiceACKReadRange.go    | 11 +++---
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go | 11 +++---
 ...rmedServiceACKRemovedReadPropertyConditional.go | 11 +++---
 .../model/BACnetConfirmedServiceACKVTData.go       | 11 +++---
 .../model/BACnetConfirmedServiceACKVTOpen.go       | 11 +++---
 .../model/BACnetConfirmedServiceRequest.go         | 13 +++---
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go | 11 +++---
 .../BACnetConfirmedServiceRequestAddListElement.go | 11 +++---
 .../BACnetConfirmedServiceRequestAtomicReadFile.go | 11 +++---
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go | 11 +++---
 ...firmedServiceRequestConfirmedCOVNotification.go | 11 +++---
 ...rviceRequestConfirmedCOVNotificationMultiple.go | 11 +++---
 ...rmedServiceRequestConfirmedEventNotification.go | 11 +++---
 ...firmedServiceRequestConfirmedPrivateTransfer.go | 11 +++---
 ...tConfirmedServiceRequestConfirmedTextMessage.go | 11 +++---
 .../BACnetConfirmedServiceRequestCreateObject.go   | 11 +++---
 .../BACnetConfirmedServiceRequestDeleteObject.go   | 11 +++---
 ...rmedServiceRequestDeviceCommunicationControl.go | 11 +++---
 ...tConfirmedServiceRequestGetEnrollmentSummary.go | 11 +++---
 ...etConfirmedServiceRequestGetEventInformation.go | 11 +++---
 ...etConfirmedServiceRequestLifeSafetyOperation.go | 11 +++---
 .../BACnetConfirmedServiceRequestReadProperty.go   | 11 +++---
 ...tConfirmedServiceRequestReadPropertyMultiple.go | 11 +++---
 .../BACnetConfirmedServiceRequestReadRange.go      | 11 +++---
 ...netConfirmedServiceRequestReinitializeDevice.go | 11 +++---
 ...CnetConfirmedServiceRequestRemoveListElement.go | 11 +++---
 ...etConfirmedServiceRequestRemovedAuthenticate.go | 11 +++---
 ...ServiceRequestRemovedReadPropertyConditional.go | 11 +++---
 ...CnetConfirmedServiceRequestRemovedRequestKey.go | 11 +++---
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   | 11 +++---
 ...tConfirmedServiceRequestSubscribeCOVProperty.go | 11 +++---
 ...edServiceRequestSubscribeCOVPropertyMultiple.go | 11 +++---
 .../model/BACnetConfirmedServiceRequestVTClose.go  | 11 +++---
 .../model/BACnetConfirmedServiceRequestVTData.go   | 11 +++---
 .../model/BACnetConfirmedServiceRequestVTOpen.go   | 11 +++---
 .../BACnetConfirmedServiceRequestWriteProperty.go  | 11 +++---
 ...ConfirmedServiceRequestWritePropertyMultiple.go | 11 +++---
 .../plc4go/bacnetip/readwrite/model/BACnetError.go | 13 +++---
 .../readwrite/model/BACnetErrorAtomicReadFile.go   | 11 +++---
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  | 11 +++---
 .../model/BACnetErrorConfirmedPrivateTransfer.go   | 11 +++---
 .../readwrite/model/BACnetErrorCreateObject.go     | 11 +++---
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  | 11 +++---
 .../model/BACnetErrorGetEnrollmentSummary.go       | 11 +++---
 .../model/BACnetErrorGetEventInformation.go        | 11 +++---
 .../readwrite/model/BACnetErrorReadProperty.go     | 11 +++---
 .../model/BACnetErrorReadPropertyMultiple.go       | 11 +++---
 .../readwrite/model/BACnetErrorReadRange.go        | 11 +++---
 .../model/BACnetErrorRemovedAuthenticate.go        | 11 +++---
 .../BACnetErrorRemovedReadPropertyConditional.go   | 11 +++---
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  | 11 +++---
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  | 11 +++---
 .../bacnetip/readwrite/model/BACnetServiceAck.go   | 13 +++---
 .../model/BACnetServiceAckAtomicReadFile.go        | 11 +++---
 .../model/BACnetServiceAckAtomicWriteFile.go       | 11 +++---
 .../BACnetServiceAckConfirmedPrivateTransfer.go    | 11 +++---
 .../model/BACnetServiceAckCreateObject.go          | 11 +++---
 .../model/BACnetServiceAckGetAlarmSummary.go       | 11 +++---
 .../model/BACnetServiceAckGetEnrollmentSummary.go  | 11 +++---
 .../model/BACnetServiceAckGetEventInformation.go   | 11 +++---
 .../model/BACnetServiceAckReadProperty.go          | 11 +++---
 .../model/BACnetServiceAckReadPropertyMultiple.go  | 11 +++---
 .../readwrite/model/BACnetServiceAckReadRange.go   | 11 +++---
 .../model/BACnetServiceAckRemovedAuthenticate.go   | 11 +++---
 ...CnetServiceAckRemovedReadPropertyConditional.go | 11 +++---
 .../readwrite/model/BACnetServiceAckVTData.go      | 11 +++---
 .../readwrite/model/BACnetServiceAckVTOpen.go      | 11 +++---
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   | 13 +++---
 .../model/BACnetTagApplicationBitString.go         | 11 +++---
 .../readwrite/model/BACnetTagApplicationBoolean.go | 11 +++---
 .../model/BACnetTagApplicationCharacterString.go   | 11 +++---
 .../readwrite/model/BACnetTagApplicationDate.go    | 11 +++---
 .../readwrite/model/BACnetTagApplicationDouble.go  | 11 +++---
 .../model/BACnetTagApplicationEnumerated.go        | 11 +++---
 .../readwrite/model/BACnetTagApplicationNull.go    | 11 +++---
 .../model/BACnetTagApplicationObjectIdentifier.go  | 11 +++---
 .../model/BACnetTagApplicationOctetString.go       | 11 +++---
 .../readwrite/model/BACnetTagApplicationReal.go    | 11 +++---
 .../model/BACnetTagApplicationSignedInteger.go     | 11 +++---
 .../readwrite/model/BACnetTagApplicationTime.go    | 11 +++---
 .../model/BACnetTagApplicationUnsignedInteger.go   | 11 +++---
 .../bacnetip/readwrite/model/BACnetTagContext.go   | 11 +++---
 .../readwrite/model/BACnetTagWithContent.go        |  9 +++--
 .../model/BACnetUnconfirmedServiceRequest.go       | 13 +++---
 .../model/BACnetUnconfirmedServiceRequestIAm.go    | 11 +++---
 .../model/BACnetUnconfirmedServiceRequestIHave.go  | 11 +++---
 ...UnconfirmedServiceRequestTimeSynchronization.go | 11 +++---
 ...onfirmedServiceRequestUTCTimeSynchronization.go | 11 +++---
 ...rmedServiceRequestUnconfirmedCOVNotification.go | 11 +++---
 ...iceRequestUnconfirmedCOVNotificationMultiple.go | 11 +++---
 ...edServiceRequestUnconfirmedEventNotification.go | 11 +++---
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go | 11 +++---
 ...onfirmedServiceRequestUnconfirmedTextMessage.go | 11 +++---
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go | 11 +++---
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  | 11 +++---
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   | 11 +++---
 .../plc4go/bacnetip/readwrite/model/BVLC.go        | 13 +++---
 .../model/BVLCDeleteForeignDeviceTableEntry.go     | 11 +++---
 .../model/BVLCDistributeBroadcastToNetwork.go      | 11 +++---
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  | 11 +++---
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   | 11 +++---
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     | 11 +++---
 .../model/BVLCReadBroadcastDistributionTable.go    | 11 +++---
 .../model/BVLCReadBroadcastDistributionTableAck.go | 11 +++---
 .../readwrite/model/BVLCReadForeignDeviceTable.go  | 11 +++---
 .../model/BVLCReadForeignDeviceTableAck.go         | 11 +++---
 .../readwrite/model/BVLCRegisterForeignDevice.go   | 11 +++---
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  | 11 +++---
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     | 11 +++---
 .../model/BVLCWideBroadcastDistributionTable.go    | 11 +++---
 .../plc4go/bacnetip/readwrite/model/NLM.go         | 13 +++---
 .../readwrite/model/NLMIAmRouterToNetwork.go       | 11 +++---
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     | 11 +++---
 .../plc4go/bacnetip/readwrite/model/NPDU.go        |  9 +++--
 .../plc4go/knxnetip/readwrite/model/Apdu.go        | 13 +++---
 .../plc4go/knxnetip/readwrite/model/ApduControl.go | 13 +++---
 .../knxnetip/readwrite/model/ApduControlAck.go     | 11 +++---
 .../knxnetip/readwrite/model/ApduControlConnect.go | 11 +++---
 .../readwrite/model/ApduControlContainer.go        | 11 +++---
 .../readwrite/model/ApduControlDisconnect.go       | 11 +++---
 .../knxnetip/readwrite/model/ApduControlNack.go    | 11 +++---
 .../plc4go/knxnetip/readwrite/model/ApduData.go    | 13 +++---
 .../knxnetip/readwrite/model/ApduDataAdcRead.go    | 11 +++---
 .../readwrite/model/ApduDataAdcResponse.go         | 11 +++---
 .../knxnetip/readwrite/model/ApduDataContainer.go  | 11 +++---
 .../model/ApduDataDeviceDescriptorRead.go          | 11 +++---
 .../model/ApduDataDeviceDescriptorResponse.go      | 11 +++---
 .../plc4go/knxnetip/readwrite/model/ApduDataExt.go | 13 +++---
 .../readwrite/model/ApduDataExtAuthorizeRequest.go | 11 +++---
 .../model/ApduDataExtAuthorizeResponse.go          | 11 +++---
 .../model/ApduDataExtDomainAddressRead.go          | 11 +++---
 .../model/ApduDataExtDomainAddressResponse.go      | 11 +++---
 .../model/ApduDataExtDomainAddressSelectiveRead.go | 11 +++---
 .../ApduDataExtDomainAddressSerialNumberRead.go    | 11 +++---
 ...ApduDataExtDomainAddressSerialNumberResponse.go | 11 +++---
 .../ApduDataExtDomainAddressSerialNumberWrite.go   | 11 +++---
 .../model/ApduDataExtDomainAddressWrite.go         | 11 +++---
 .../model/ApduDataExtFileStreamInfoReport.go       | 11 +++---
 .../ApduDataExtGroupPropertyValueInfoReport.go     | 11 +++---
 .../model/ApduDataExtGroupPropertyValueRead.go     | 11 +++---
 .../model/ApduDataExtGroupPropertyValueResponse.go | 11 +++---
 .../model/ApduDataExtGroupPropertyValueWrite.go    | 11 +++---
 ...ApduDataExtIndividualAddressSerialNumberRead.go | 11 +++---
 ...DataExtIndividualAddressSerialNumberResponse.go | 11 +++---
 ...pduDataExtIndividualAddressSerialNumberWrite.go | 11 +++---
 .../readwrite/model/ApduDataExtKeyResponse.go      | 11 +++---
 .../readwrite/model/ApduDataExtKeyWrite.go         | 11 +++---
 .../readwrite/model/ApduDataExtLinkRead.go         | 11 +++---
 .../readwrite/model/ApduDataExtLinkResponse.go     | 11 +++---
 .../readwrite/model/ApduDataExtLinkWrite.go        | 11 +++---
 .../readwrite/model/ApduDataExtMemoryBitWrite.go   | 11 +++---
 .../model/ApduDataExtNetworkParameterRead.go       | 11 +++---
 .../model/ApduDataExtNetworkParameterResponse.go   | 11 +++---
 .../model/ApduDataExtNetworkParameterWrite.go      | 11 +++---
 .../model/ApduDataExtOpenRoutingTableRequest.go    | 11 +++---
 .../model/ApduDataExtPropertyDescriptionRead.go    | 11 +++---
 .../ApduDataExtPropertyDescriptionResponse.go      | 11 +++---
 .../model/ApduDataExtPropertyValueRead.go          | 11 +++---
 .../model/ApduDataExtPropertyValueResponse.go      | 11 +++---
 .../model/ApduDataExtPropertyValueWrite.go         | 11 +++---
 .../model/ApduDataExtReadRouterMemoryRequest.go    | 11 +++---
 .../model/ApduDataExtReadRouterMemoryResponse.go   | 11 +++---
 .../model/ApduDataExtReadRouterStatusRequest.go    | 11 +++---
 .../model/ApduDataExtReadRouterStatusResponse.go   | 11 +++---
 .../model/ApduDataExtReadRoutingTableRequest.go    | 11 +++---
 .../model/ApduDataExtReadRoutingTableResponse.go   | 11 +++---
 .../model/ApduDataExtWriteRouterMemoryRequest.go   | 11 +++---
 .../model/ApduDataExtWriteRouterStatusRequest.go   | 11 +++---
 .../model/ApduDataExtWriteRoutingTableRequest.go   | 11 +++---
 .../readwrite/model/ApduDataGroupValueRead.go      | 11 +++---
 .../readwrite/model/ApduDataGroupValueResponse.go  | 11 +++---
 .../readwrite/model/ApduDataGroupValueWrite.go     | 11 +++---
 .../model/ApduDataIndividualAddressRead.go         | 11 +++---
 .../model/ApduDataIndividualAddressResponse.go     | 11 +++---
 .../model/ApduDataIndividualAddressWrite.go        | 11 +++---
 .../knxnetip/readwrite/model/ApduDataMemoryRead.go | 11 +++---
 .../readwrite/model/ApduDataMemoryResponse.go      | 11 +++---
 .../readwrite/model/ApduDataMemoryWrite.go         | 11 +++---
 .../knxnetip/readwrite/model/ApduDataOther.go      | 11 +++---
 .../knxnetip/readwrite/model/ApduDataRestart.go    | 11 +++---
 .../readwrite/model/ApduDataUserMessage.go         | 11 +++---
 .../plc4go/knxnetip/readwrite/model/CEMI.go        | 13 +++---
 .../readwrite/model/CEMIAdditionalInformation.go   | 13 +++---
 .../CEMIAdditionalInformationBusmonitorInfo.go     | 11 +++---
 .../CEMIAdditionalInformationRelativeTimestamp.go  | 11 +++---
 .../knxnetip/readwrite/model/ChannelInformation.go |  9 +++--
 .../knxnetip/readwrite/model/ComObjectTable.go     | 13 +++---
 .../model/ComObjectTableRealisationType1.go        | 11 +++---
 .../model/ComObjectTableRealisationType2.go        | 11 +++---
 .../model/ComObjectTableRealisationType6.go        | 11 +++---
 .../knxnetip/readwrite/model/ConnectionRequest.go  | 11 +++---
 .../model/ConnectionRequestInformation.go          | 13 +++---
 ...ConnectionRequestInformationDeviceManagement.go | 11 +++---
 ...ConnectionRequestInformationTunnelConnection.go | 11 +++---
 .../knxnetip/readwrite/model/ConnectionResponse.go | 11 +++---
 .../readwrite/model/ConnectionResponseDataBlock.go | 13 +++---
 .../ConnectionResponseDataBlockDeviceManagement.go | 11 +++---
 .../ConnectionResponseDataBlockTunnelConnection.go | 11 +++---
 .../readwrite/model/ConnectionStateRequest.go      | 11 +++---
 .../readwrite/model/ConnectionStateResponse.go     | 11 +++---
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      |  9 +++--
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go |  9 +++--
 .../knxnetip/readwrite/model/DescriptionRequest.go | 11 +++---
 .../readwrite/model/DescriptionResponse.go         | 11 +++---
 .../readwrite/model/DeviceConfigurationAck.go      | 11 +++---
 .../model/DeviceConfigurationAckDataBlock.go       |  9 +++--
 .../readwrite/model/DeviceConfigurationRequest.go  | 11 +++---
 .../model/DeviceConfigurationRequestDataBlock.go   |  9 +++--
 .../readwrite/model/DeviceDescriptorType2.go       |  9 +++--
 .../knxnetip/readwrite/model/DeviceStatus.go       |  9 +++--
 .../knxnetip/readwrite/model/DisconnectRequest.go  | 11 +++---
 .../knxnetip/readwrite/model/DisconnectResponse.go | 11 +++---
 .../model/GroupObjectDescriptorRealisationType1.go |  9 +++--
 .../model/GroupObjectDescriptorRealisationType2.go |  9 +++--
 .../model/GroupObjectDescriptorRealisationType6.go |  9 +++--
 .../model/GroupObjectDescriptorRealisationType7.go |  9 +++--
 .../model/GroupObjectDescriptorRealisationTypeB.go |  9 +++--
 .../readwrite/model/HPAIControlEndpoint.go         |  9 +++--
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |  9 +++--
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |  9 +++--
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   |  9 +++--
 .../plc4go/knxnetip/readwrite/model/KnxAddress.go  |  9 +++--
 .../knxnetip/readwrite/model/KnxGroupAddress.go    | 13 +++---
 .../readwrite/model/KnxGroupAddress2Level.go       | 11 +++---
 .../readwrite/model/KnxGroupAddress3Level.go       | 11 +++---
 .../readwrite/model/KnxGroupAddressFreeLevel.go    | 11 +++---
 .../knxnetip/readwrite/model/KnxNetIpCore.go       | 11 +++---
 .../readwrite/model/KnxNetIpDeviceManagement.go    | 11 +++---
 .../knxnetip/readwrite/model/KnxNetIpMessage.go    | 13 +++---
 .../knxnetip/readwrite/model/KnxNetIpRouting.go    | 11 +++---
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  | 11 +++---
 .../knxnetip/readwrite/model/KnxNetObjectServer.go | 11 +++---
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go | 11 +++---
 .../readwrite/model/KnxNetRemoteLogging.go         | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LBusmonInd.go  | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LDataCon.go    | 11 +++---
 .../knxnetip/readwrite/model/LDataExtended.go      | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LDataFrame.go  | 13 +++---
 .../knxnetip/readwrite/model/LDataFrameACK.go      | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LDataInd.go    | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LDataReq.go    | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LPollData.go   | 11 +++---
 .../knxnetip/readwrite/model/LPollDataCon.go       | 11 +++---
 .../knxnetip/readwrite/model/LPollDataReq.go       | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LRawCon.go     | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LRawInd.go     | 11 +++---
 .../plc4go/knxnetip/readwrite/model/LRawReq.go     | 11 +++---
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  |  9 +++--
 .../readwrite/model/MFuncPropCommandReq.go         | 11 +++---
 .../knxnetip/readwrite/model/MFuncPropCon.go       | 11 +++---
 .../readwrite/model/MFuncPropStateReadReq.go       | 11 +++---
 .../knxnetip/readwrite/model/MPropInfoInd.go       | 11 +++---
 .../knxnetip/readwrite/model/MPropReadCon.go       | 11 +++---
 .../knxnetip/readwrite/model/MPropReadReq.go       | 11 +++---
 .../knxnetip/readwrite/model/MPropWriteCon.go      | 11 +++---
 .../knxnetip/readwrite/model/MPropWriteReq.go      | 11 +++---
 .../plc4go/knxnetip/readwrite/model/MResetInd.go   | 11 +++---
 .../plc4go/knxnetip/readwrite/model/MResetReq.go   | 11 +++---
 .../model/ProjectInstallationIdentifier.go         |  9 +++--
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |  9 +++--
 .../knxnetip/readwrite/model/RoutingIndication.go  | 11 +++---
 .../knxnetip/readwrite/model/SearchRequest.go      | 11 +++---
 .../knxnetip/readwrite/model/SearchResponse.go     | 11 +++---
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   | 13 +++---
 .../knxnetip/readwrite/model/TDataConnectedInd.go  | 11 +++---
 .../knxnetip/readwrite/model/TDataConnectedReq.go  | 11 +++---
 .../knxnetip/readwrite/model/TDataIndividualInd.go | 11 +++---
 .../knxnetip/readwrite/model/TDataIndividualReq.go | 11 +++---
 .../knxnetip/readwrite/model/TunnelingRequest.go   | 11 +++---
 .../readwrite/model/TunnelingRequestDataBlock.go   |  9 +++--
 .../knxnetip/readwrite/model/TunnelingResponse.go  | 11 +++---
 .../readwrite/model/TunnelingResponseDataBlock.go  |  9 +++--
 .../knxnetip/readwrite/model/UnknownMessage.go     | 11 +++---
 .../modbus/readwrite/model/ModbusConstants.go      |  9 +++--
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     | 13 +++---
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  | 11 +++---
 .../readwrite/model/ModbusPDUDiagnosticResponse.go | 11 +++---
 .../modbus/readwrite/model/ModbusPDUError.go       | 11 +++---
 .../model/ModbusPDUGetComEventCounterRequest.go    | 11 +++---
 .../model/ModbusPDUGetComEventCounterResponse.go   | 11 +++---
 .../model/ModbusPDUGetComEventLogRequest.go        | 11 +++---
 .../model/ModbusPDUGetComEventLogResponse.go       | 11 +++---
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    | 11 +++---
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   | 11 +++---
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   | 11 +++---
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  | 11 +++---
 .../ModbusPDUReadDeviceIdentificationRequest.go    | 11 +++---
 .../ModbusPDUReadDeviceIdentificationResponse.go   | 11 +++---
 .../model/ModbusPDUReadDiscreteInputsRequest.go    | 11 +++---
 .../model/ModbusPDUReadDiscreteInputsResponse.go   | 11 +++---
 .../model/ModbusPDUReadExceptionStatusRequest.go   | 11 +++---
 .../model/ModbusPDUReadExceptionStatusResponse.go  | 11 +++---
 .../model/ModbusPDUReadFifoQueueRequest.go         | 11 +++---
 .../model/ModbusPDUReadFifoQueueResponse.go        | 11 +++---
 .../model/ModbusPDUReadFileRecordRequest.go        | 11 +++---
 .../model/ModbusPDUReadFileRecordRequestItem.go    |  9 +++--
 .../model/ModbusPDUReadFileRecordResponse.go       | 11 +++---
 .../model/ModbusPDUReadFileRecordResponseItem.go   |  9 +++--
 .../model/ModbusPDUReadHoldingRegistersRequest.go  | 11 +++---
 .../model/ModbusPDUReadHoldingRegistersResponse.go | 11 +++---
 .../model/ModbusPDUReadInputRegistersRequest.go    | 11 +++---
 .../model/ModbusPDUReadInputRegistersResponse.go   | 11 +++---
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go | 11 +++---
 ...PDUReadWriteMultipleHoldingRegistersResponse.go | 11 +++---
 .../model/ModbusPDUReportServerIdRequest.go        | 11 +++---
 .../model/ModbusPDUReportServerIdResponse.go       | 11 +++---
 .../model/ModbusPDUWriteFileRecordRequest.go       | 11 +++---
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |  9 +++--
 .../model/ModbusPDUWriteFileRecordResponse.go      | 11 +++---
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |  9 +++--
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    | 11 +++---
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   | 11 +++---
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go | 11 +++---
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go | 11 +++---
 .../model/ModbusPDUWriteSingleCoilRequest.go       | 11 +++---
 .../model/ModbusPDUWriteSingleCoilResponse.go      | 11 +++---
 .../model/ModbusPDUWriteSingleRegisterRequest.go   | 11 +++---
 .../model/ModbusPDUWriteSingleRegisterResponse.go  | 11 +++---
 .../modbus/readwrite/model/ModbusSerialADU.go      |  9 +++--
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |  9 +++--
 .../plc4go/s7/readwrite/model/COTPPacket.go        | 13 +++---
 .../readwrite/model/COTPPacketConnectionRequest.go | 11 +++---
 .../model/COTPPacketConnectionResponse.go          | 11 +++---
 .../plc4go/s7/readwrite/model/COTPPacketData.go    | 11 +++---
 .../readwrite/model/COTPPacketDisconnectRequest.go | 11 +++---
 .../model/COTPPacketDisconnectResponse.go          | 11 +++---
 .../s7/readwrite/model/COTPPacketTpduError.go      | 11 +++---
 .../plc4go/s7/readwrite/model/COTPParameter.go     | 13 +++---
 .../s7/readwrite/model/COTPParameterCalledTsap.go  | 11 +++---
 .../s7/readwrite/model/COTPParameterCallingTsap.go | 11 +++---
 .../s7/readwrite/model/COTPParameterChecksum.go    | 11 +++---
 ...COTPParameterDisconnectAdditionalInformation.go | 11 +++---
 .../s7/readwrite/model/COTPParameterTpduSize.go    | 11 +++---
 .../plc4go/s7/readwrite/model/S7Address.go         | 13 +++---
 .../plc4go/s7/readwrite/model/S7AddressAny.go      | 11 +++---
 .../plc4go/s7/readwrite/model/S7Message.go         | 13 +++---
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  | 11 +++---
 .../plc4go/s7/readwrite/model/S7MessageResponse.go | 11 +++---
 .../s7/readwrite/model/S7MessageResponseData.go    | 11 +++---
 .../plc4go/s7/readwrite/model/S7MessageUserData.go | 11 +++---
 .../plc4go/s7/readwrite/model/S7Parameter.go       | 13 +++---
 .../readwrite/model/S7ParameterReadVarRequest.go   | 11 +++---
 .../readwrite/model/S7ParameterReadVarResponse.go  | 11 +++---
 .../model/S7ParameterSetupCommunication.go         | 11 +++---
 .../s7/readwrite/model/S7ParameterUserData.go      | 11 +++---
 .../s7/readwrite/model/S7ParameterUserDataItem.go  | 13 +++---
 .../model/S7ParameterUserDataItemCPUFunctions.go   | 11 +++---
 .../readwrite/model/S7ParameterWriteVarRequest.go  | 11 +++---
 .../readwrite/model/S7ParameterWriteVarResponse.go | 11 +++---
 .../plc4go/s7/readwrite/model/S7Payload.go         | 13 +++---
 .../s7/readwrite/model/S7PayloadReadVarResponse.go | 11 +++---
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go | 11 +++---
 .../s7/readwrite/model/S7PayloadUserDataItem.go    | 13 +++---
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go | 11 +++---
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go | 11 +++---
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go | 11 +++---
 .../readwrite/model/S7PayloadWriteVarResponse.go   | 11 +++---
 .../s7/readwrite/model/S7VarPayloadDataItem.go     |  9 +++--
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |  9 +++--
 .../readwrite/model/S7VarRequestParameterItem.go   | 13 +++---
 .../model/S7VarRequestParameterItemAddress.go      | 11 +++---
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   |  9 +++--
 plc4go/internal/plc4go/s7/readwrite/model/SzlId.go |  9 +++--
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |  9 +++--
 plc4go/internal/plc4go/s7/s7Io_test.go             | 46 ++++++++++++++--------
 422 files changed, 2539 insertions(+), 2104 deletions(-)

diff --git a/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh b/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh
index f635573..629ea7c 100644
--- a/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh
@@ -1346,7 +1346,7 @@ func (m *${type.name}) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m ${type.name}) String() string {
-	return string(m.Box("${type.name}", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 <#if helper.isDiscriminatedParentTypeDefinition()>
@@ -1354,21 +1354,22 @@ func (m *${type.name}) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *${type.name}) BoxParent(name string, width int, boxChild func() []utils.AsciiBox ) utils.AsciiBox {
+func (m *${type.name}) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox ) utils.AsciiBox {
 <#else>
 func (m ${type.name}) Box(name string, width int) utils.AsciiBox {
 </#if>
-	if name == "" {
-		name = "${type.name}"
+	boxName := "${type.name}"
+	if name != "" {
+		boxName += "/" + name
 	}
 	<#if helper.isDiscriminatedChildTypeDefinition()>
-	boxChild := func() []utils.AsciiBox {
+		childBoxer := func() []utils.AsciiBox {
 	</#if>
 	boxes := make([]utils.AsciiBox, 0)
 	<#if type.fields?has_content>
 		<#list type.fields as field>
 			<#if field.typeName == "switch">
-	boxes = append(boxes, boxChild()...)
+	boxes = append(boxes, childBoxer()...)
 			<#elseif helper.isPropertyField(field) && !helper.isConstField(field) && !helper.isVirtualField(field)>
 	boxes = append(boxes, utils.BoxAnything("${field.name?cap_first}", m.${field.name?cap_first}, width-2))
 			</#if>
@@ -1377,9 +1378,9 @@ func (m ${type.name}) Box(name string, width int) utils.AsciiBox {
 	<#if helper.isDiscriminatedChildTypeDefinition()>
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 	<#else>
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 	</#if>
 }
 </...@importSectionWithContentBelow>
diff --git a/go.mod b/go.mod
index 0929c90..aa57457 100644
--- a/go.mod
+++ b/go.mod
@@ -21,6 +21,6 @@ module github.com/apache/plc4x
 go 1.15
 
 require (
-	github.com/apache/plc4x/plc4go v0.0.0-20210417110313-0bd41161ceca // indirect
+	github.com/apache/plc4x/plc4go v0.0.0-20210417192203-152caa3a9f50 // indirect
 	github.com/sirupsen/logrus v1.7.0 // indirect
 )
diff --git a/go.sum b/go.sum
index cca1aa1..7dea030 100644
--- a/go.sum
+++ b/go.sum
@@ -70,6 +70,10 @@ github.com/apache/plc4x/plc4go v0.0.0-20210415205512-e5ba2ed9be60 h1:dH2buIJhP5G
 github.com/apache/plc4x/plc4go v0.0.0-20210415205512-e5ba2ed9be60/go.mod h1:NfO8uGKPGwDxn1GqOb4oNhAtPF7St1A9LRk1J/qSlWU=
 github.com/apache/plc4x/plc4go v0.0.0-20210417110313-0bd41161ceca h1:523jXspt17t5gFyRNtUMltZjQ0BWl6nwMMDMnF4BE3Y=
 github.com/apache/plc4x/plc4go v0.0.0-20210417110313-0bd41161ceca/go.mod h1:NfO8uGKPGwDxn1GqOb4oNhAtPF7St1A9LRk1J/qSlWU=
+github.com/apache/plc4x/plc4go v0.0.0-20210417184823-e414452eda04 h1:O3iK2+mf362UBUV4ZBMx5h7arzGNtTzV6rE1gZFZ3X0=
+github.com/apache/plc4x/plc4go v0.0.0-20210417184823-e414452eda04/go.mod h1:NfO8uGKPGwDxn1GqOb4oNhAtPF7St1A9LRk1J/qSlWU=
+github.com/apache/plc4x/plc4go v0.0.0-20210417192203-152caa3a9f50 h1:Pt894MpsuMpe7pEy6lwqN4M6k4HU72uCKCLVjWOrK5Q=
+github.com/apache/plc4x/plc4go v0.0.0-20210417192203-152caa3a9f50/go.mod h1:NfO8uGKPGwDxn1GqOb4oNhAtPF7St1A9LRk1J/qSlWU=
 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE=
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
index e6653fd..a10207e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationRequest.go
@@ -342,14 +342,15 @@ func (m *AdsAddDeviceNotificationRequest) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m AdsAddDeviceNotificationRequest) String() string {
-	return string(m.Box("AdsAddDeviceNotificationRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsAddDeviceNotificationRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsAddDeviceNotificationRequest"
+	boxName := "AdsAddDeviceNotificationRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("IndexGroup", m.IndexGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("IndexOffset", m.IndexOffset, width-2))
@@ -359,5 +360,5 @@ func (m AdsAddDeviceNotificationRequest) Box(name string, width int) utils.Ascii
 		boxes = append(boxes, utils.BoxAnything("CycleTime", m.CycleTime, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
index 1ec970a..36dd560 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsAddDeviceNotificationResponse.go
@@ -202,18 +202,19 @@ func (m *AdsAddDeviceNotificationResponse) MarshalXML(e *xml.Encoder, start xml.
 }
 
 func (m AdsAddDeviceNotificationResponse) String() string {
-	return string(m.Box("AdsAddDeviceNotificationResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsAddDeviceNotificationResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsAddDeviceNotificationResponse"
+	boxName := "AdsAddDeviceNotificationResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		boxes = append(boxes, utils.BoxAnything("NotificationHandle", m.NotificationHandle, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
index 01538c2..4963de3 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
@@ -506,18 +506,19 @@ func (m *AdsData) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m AdsData) String() string {
-	return string(m.Box("AdsData", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *AdsData) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *AdsData) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "AdsData"
+func (m *AdsData) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "AdsData"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
index 9c500dc..3e7ae17 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationRequest.go
@@ -175,17 +175,18 @@ func (m *AdsDeleteDeviceNotificationRequest) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m AdsDeleteDeviceNotificationRequest) String() string {
-	return string(m.Box("AdsDeleteDeviceNotificationRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsDeleteDeviceNotificationRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsDeleteDeviceNotificationRequest"
+	boxName := "AdsDeleteDeviceNotificationRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("NotificationHandle", m.NotificationHandle, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
index 67b5307..131af67 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeleteDeviceNotificationResponse.go
@@ -174,17 +174,18 @@ func (m *AdsDeleteDeviceNotificationResponse) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m AdsDeleteDeviceNotificationResponse) String() string {
-	return string(m.Box("AdsDeleteDeviceNotificationResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsDeleteDeviceNotificationResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsDeleteDeviceNotificationResponse"
+	boxName := "AdsDeleteDeviceNotificationResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
index d5dbfb0..149316d 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationRequest.go
@@ -252,19 +252,20 @@ func (m *AdsDeviceNotificationRequest) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m AdsDeviceNotificationRequest) String() string {
-	return string(m.Box("AdsDeviceNotificationRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsDeviceNotificationRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsDeviceNotificationRequest"
+	boxName := "AdsDeviceNotificationRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Length", m.Length, width-2))
 		boxes = append(boxes, utils.BoxAnything("Stamps", m.Stamps, width-2))
 		boxes = append(boxes, utils.BoxAnything("AdsStampHeaders", m.AdsStampHeaders, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
index 56682fd..01155bb 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDeviceNotificationResponse.go
@@ -146,16 +146,17 @@ func (m *AdsDeviceNotificationResponse) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m AdsDeviceNotificationResponse) String() string {
-	return string(m.Box("AdsDeviceNotificationResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsDeviceNotificationResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsDeviceNotificationResponse"
+	boxName := "AdsDeviceNotificationResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
index 98e2b99..4c61187 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidRequest.go
@@ -146,16 +146,17 @@ func (m *AdsInvalidRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m AdsInvalidRequest) String() string {
-	return string(m.Box("AdsInvalidRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsInvalidRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsInvalidRequest"
+	boxName := "AdsInvalidRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
index 760d41c..72b24ad 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsInvalidResponse.go
@@ -146,16 +146,17 @@ func (m *AdsInvalidResponse) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m AdsInvalidResponse) String() string {
-	return string(m.Box("AdsInvalidResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsInvalidResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsInvalidResponse"
+	boxName := "AdsInvalidResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
index c197a93..1df22f5 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
@@ -232,18 +232,19 @@ func (m *AdsMultiRequestItem) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m AdsMultiRequestItem) String() string {
-	return string(m.Box("AdsMultiRequestItem", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *AdsMultiRequestItem) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *AdsMultiRequestItem) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "AdsMultiRequestItem"
+func (m *AdsMultiRequestItem) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "AdsMultiRequestItem"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
index fc796d1..14d7401 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemRead.go
@@ -227,19 +227,20 @@ func (m *AdsMultiRequestItemRead) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m AdsMultiRequestItemRead) String() string {
-	return string(m.Box("AdsMultiRequestItemRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsMultiRequestItemRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsMultiRequestItemRead"
+	boxName := "AdsMultiRequestItemRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ItemIndexGroup", m.ItemIndexGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("ItemIndexOffset", m.ItemIndexOffset, width-2))
 		boxes = append(boxes, utils.BoxAnything("ItemReadLength", m.ItemReadLength, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
index 5bc9c4a..c6b3993 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemReadWrite.go
@@ -255,14 +255,15 @@ func (m *AdsMultiRequestItemReadWrite) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m AdsMultiRequestItemReadWrite) String() string {
-	return string(m.Box("AdsMultiRequestItemReadWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsMultiRequestItemReadWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsMultiRequestItemReadWrite"
+	boxName := "AdsMultiRequestItemReadWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ItemIndexGroup", m.ItemIndexGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("ItemIndexOffset", m.ItemIndexOffset, width-2))
@@ -270,5 +271,5 @@ func (m AdsMultiRequestItemReadWrite) Box(name string, width int) utils.AsciiBox
 		boxes = append(boxes, utils.BoxAnything("ItemWriteLength", m.ItemWriteLength, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
index f0229d6..757572a 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItemWrite.go
@@ -227,19 +227,20 @@ func (m *AdsMultiRequestItemWrite) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m AdsMultiRequestItemWrite) String() string {
-	return string(m.Box("AdsMultiRequestItemWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsMultiRequestItemWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsMultiRequestItemWrite"
+	boxName := "AdsMultiRequestItemWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ItemIndexGroup", m.ItemIndexGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("ItemIndexOffset", m.ItemIndexOffset, width-2))
 		boxes = append(boxes, utils.BoxAnything("ItemWriteLength", m.ItemWriteLength, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
index 7573688..e20d35e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsNotificationSample.go
@@ -220,16 +220,17 @@ func (m *AdsNotificationSample) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m AdsNotificationSample) String() string {
-	return string(m.Box("AdsNotificationSample", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsNotificationSample) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsNotificationSample"
+	boxName := "AdsNotificationSample"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("NotificationHandle", m.NotificationHandle, width-2))
 	boxes = append(boxes, utils.BoxAnything("SampleSize", m.SampleSize, width-2))
 	boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
index 6bed468..2fdfe0c 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoRequest.go
@@ -146,16 +146,17 @@ func (m *AdsReadDeviceInfoRequest) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m AdsReadDeviceInfoRequest) String() string {
-	return string(m.Box("AdsReadDeviceInfoRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadDeviceInfoRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadDeviceInfoRequest"
+	boxName := "AdsReadDeviceInfoRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
index 842267d..2852a32 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadDeviceInfoResponse.go
@@ -305,14 +305,15 @@ func (m *AdsReadDeviceInfoResponse) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m AdsReadDeviceInfoResponse) String() string {
-	return string(m.Box("AdsReadDeviceInfoResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadDeviceInfoResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadDeviceInfoResponse"
+	boxName := "AdsReadDeviceInfoResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		boxes = append(boxes, utils.BoxAnything("MajorVersion", m.MajorVersion, width-2))
@@ -321,5 +322,5 @@ func (m AdsReadDeviceInfoResponse) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("Device", m.Device, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
index ed60c2d..7b79da8 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadRequest.go
@@ -231,19 +231,20 @@ func (m *AdsReadRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m AdsReadRequest) String() string {
-	return string(m.Box("AdsReadRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadRequest"
+	boxName := "AdsReadRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("IndexGroup", m.IndexGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("IndexOffset", m.IndexOffset, width-2))
 		boxes = append(boxes, utils.BoxAnything("Length", m.Length, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
index 18b2508..6dae5d6 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadResponse.go
@@ -238,18 +238,19 @@ func (m *AdsReadResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m AdsReadResponse) String() string {
-	return string(m.Box("AdsReadResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadResponse"
+	boxName := "AdsReadResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
index 82bd330..0a881c7 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateRequest.go
@@ -146,16 +146,17 @@ func (m *AdsReadStateRequest) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m AdsReadStateRequest) String() string {
-	return string(m.Box("AdsReadStateRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadStateRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadStateRequest"
+	boxName := "AdsReadStateRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
index cc57fbd..f20210e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadStateResponse.go
@@ -230,19 +230,20 @@ func (m *AdsReadStateResponse) MarshalXML(e *xml.Encoder, start xml.StartElement
 }
 
 func (m AdsReadStateResponse) String() string {
-	return string(m.Box("AdsReadStateResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadStateResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadStateResponse"
+	boxName := "AdsReadStateResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		boxes = append(boxes, utils.BoxAnything("AdsState", m.AdsState, width-2))
 		boxes = append(boxes, utils.BoxAnything("DeviceState", m.DeviceState, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
index 1782b5a..cdeb72b 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteRequest.go
@@ -354,14 +354,15 @@ func (m *AdsReadWriteRequest) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m AdsReadWriteRequest) String() string {
-	return string(m.Box("AdsReadWriteRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadWriteRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadWriteRequest"
+	boxName := "AdsReadWriteRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("IndexGroup", m.IndexGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("IndexOffset", m.IndexOffset, width-2))
@@ -370,5 +371,5 @@ func (m AdsReadWriteRequest) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
index 3e3b558..c5b869d 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsReadWriteResponse.go
@@ -238,18 +238,19 @@ func (m *AdsReadWriteResponse) MarshalXML(e *xml.Encoder, start xml.StartElement
 }
 
 func (m AdsReadWriteResponse) String() string {
-	return string(m.Box("AdsReadWriteResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsReadWriteResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsReadWriteResponse"
+	boxName := "AdsReadWriteResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go
index 2d8750a..1b6815e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsStampHeader.go
@@ -222,16 +222,17 @@ func (m *AdsStampHeader) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m AdsStampHeader) String() string {
-	return string(m.Box("AdsStampHeader", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsStampHeader) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsStampHeader"
+	boxName := "AdsStampHeader"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Timestamp", m.Timestamp, width-2))
 	boxes = append(boxes, utils.BoxAnything("Samples", m.Samples, width-2))
 	boxes = append(boxes, utils.BoxAnything("AdsNotificationSamples", m.AdsNotificationSamples, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
index cba35a9..6fc6002 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlRequest.go
@@ -267,19 +267,20 @@ func (m *AdsWriteControlRequest) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m AdsWriteControlRequest) String() string {
-	return string(m.Box("AdsWriteControlRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsWriteControlRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsWriteControlRequest"
+	boxName := "AdsWriteControlRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("AdsState", m.AdsState, width-2))
 		boxes = append(boxes, utils.BoxAnything("DeviceState", m.DeviceState, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
index 818fb77..1c43ffe 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteControlResponse.go
@@ -174,17 +174,18 @@ func (m *AdsWriteControlResponse) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m AdsWriteControlResponse) String() string {
-	return string(m.Box("AdsWriteControlResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsWriteControlResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsWriteControlResponse"
+	boxName := "AdsWriteControlResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
index 8cafa90..0e27c5d 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteRequest.go
@@ -267,19 +267,20 @@ func (m *AdsWriteRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m AdsWriteRequest) String() string {
-	return string(m.Box("AdsWriteRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsWriteRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsWriteRequest"
+	boxName := "AdsWriteRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("IndexGroup", m.IndexGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("IndexOffset", m.IndexOffset, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
index 2c6ba81..7cbfde3 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsWriteResponse.go
@@ -174,17 +174,18 @@ func (m *AdsWriteResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) er
 }
 
 func (m AdsWriteResponse) String() string {
-	return string(m.Box("AdsWriteResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AdsWriteResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AdsWriteResponse"
+	boxName := "AdsWriteResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Result", m.Result, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go
index 4f1eb8a..4cbad46 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsNetId.go
@@ -279,12 +279,13 @@ func (m *AmsNetId) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m AmsNetId) String() string {
-	return string(m.Box("AmsNetId", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AmsNetId) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AmsNetId"
+	boxName := "AmsNetId"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Octet1", m.Octet1, width-2))
@@ -293,5 +294,5 @@ func (m AmsNetId) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("Octet4", m.Octet4, width-2))
 	boxes = append(boxes, utils.BoxAnything("Octet5", m.Octet5, width-2))
 	boxes = append(boxes, utils.BoxAnything("Octet6", m.Octet6, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
index 848be16..91c47c1 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
@@ -372,12 +372,13 @@ func (m *AmsPacket) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m AmsPacket) String() string {
-	return string(m.Box("AmsPacket", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AmsPacket) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AmsPacket"
+	boxName := "AmsPacket"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("TargetAmsNetId", m.TargetAmsNetId, width-2))
@@ -389,5 +390,5 @@ func (m AmsPacket) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("ErrorCode", m.ErrorCode, width-2))
 	boxes = append(boxes, utils.BoxAnything("InvokeId", m.InvokeId, width-2))
 	boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
index d72ef76..178309b 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialAcknowledgeFrame.go
@@ -279,12 +279,13 @@ func (m *AmsSerialAcknowledgeFrame) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m AmsSerialAcknowledgeFrame) String() string {
-	return string(m.Box("AmsSerialAcknowledgeFrame", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AmsSerialAcknowledgeFrame) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AmsSerialAcknowledgeFrame"
+	boxName := "AmsSerialAcknowledgeFrame"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("MagicCookie", m.MagicCookie, width-2))
@@ -293,5 +294,5 @@ func (m AmsSerialAcknowledgeFrame) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("FragmentNumber", m.FragmentNumber, width-2))
 	boxes = append(boxes, utils.BoxAnything("Length", m.Length, width-2))
 	boxes = append(boxes, utils.BoxAnything("Crc", m.Crc, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
index bff0843..6902046 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
@@ -304,12 +304,13 @@ func (m *AmsSerialFrame) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m AmsSerialFrame) String() string {
-	return string(m.Box("AmsSerialFrame", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AmsSerialFrame) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AmsSerialFrame"
+	boxName := "AmsSerialFrame"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("MagicCookie", m.MagicCookie, width-2))
@@ -319,5 +320,5 @@ func (m AmsSerialFrame) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("Length", m.Length, width-2))
 	boxes = append(boxes, utils.BoxAnything("Userdata", m.Userdata, width-2))
 	boxes = append(boxes, utils.BoxAnything("Crc", m.Crc, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go
index e68ae4d..a03e3e4 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialResetFrame.go
@@ -279,12 +279,13 @@ func (m *AmsSerialResetFrame) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m AmsSerialResetFrame) String() string {
-	return string(m.Box("AmsSerialResetFrame", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AmsSerialResetFrame) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AmsSerialResetFrame"
+	boxName := "AmsSerialResetFrame"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("MagicCookie", m.MagicCookie, width-2))
@@ -293,5 +294,5 @@ func (m AmsSerialResetFrame) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("FragmentNumber", m.FragmentNumber, width-2))
 	boxes = append(boxes, utils.BoxAnything("Length", m.Length, width-2))
 	boxes = append(boxes, utils.BoxAnything("Crc", m.Crc, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
index 6cfdfa2..3b46bae 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
@@ -191,14 +191,15 @@ func (m *AmsTCPPacket) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m AmsTCPPacket) String() string {
-	return string(m.Box("AmsTCPPacket", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m AmsTCPPacket) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "AmsTCPPacket"
+	boxName := "AmsTCPPacket"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Userdata", m.Userdata, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/State.go b/plc4go/internal/plc4go/ads/readwrite/model/State.go
index a9e425a..fcafdd7 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/State.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/State.go
@@ -383,12 +383,13 @@ func (m *State) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m State) String() string {
-	return string(m.Box("State", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m State) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "State"
+	boxName := "State"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("InitCommand", m.InitCommand, width-2))
@@ -400,5 +401,5 @@ func (m State) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("NoReturn", m.NoReturn, width-2))
 	boxes = append(boxes, utils.BoxAnything("Response", m.Response, width-2))
 	boxes = append(boxes, utils.BoxAnything("Broadcast", m.Broadcast, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
index 32069b1..8d579a9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
@@ -318,18 +318,19 @@ func (m *APDU) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m APDU) String() string {
-	return string(m.Box("APDU", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *APDU) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *APDU) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "APDU"
+func (m *APDU) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "APDU"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
index 68bba77..b2eaa52 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
@@ -253,19 +253,20 @@ func (m *APDUAbort) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m APDUAbort) String() string {
-	return string(m.Box("APDUAbort", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUAbort) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUAbort"
+	boxName := "APDUAbort"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Server", m.Server, width-2))
 		boxes = append(boxes, utils.BoxAnything("OriginalInvokeId", m.OriginalInvokeId, width-2))
 		boxes = append(boxes, utils.BoxAnything("AbortReason", m.AbortReason, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
index a25a15c..10529d4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
@@ -374,14 +374,15 @@ func (m *APDUComplexAck) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m APDUComplexAck) String() string {
-	return string(m.Box("APDUComplexAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUComplexAck) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUComplexAck"
+	boxName := "APDUComplexAck"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SegmentedMessage", m.SegmentedMessage, width-2))
 		boxes = append(boxes, utils.BoxAnything("MoreFollows", m.MoreFollows, width-2))
@@ -391,5 +392,5 @@ func (m APDUComplexAck) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("ServiceAck", m.ServiceAck, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
index 6320538..6f8c221 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -458,14 +458,15 @@ func (m *APDUConfirmedRequest) MarshalXML(e *xml.Encoder, start xml.StartElement
 }
 
 func (m APDUConfirmedRequest) String() string {
-	return string(m.Box("APDUConfirmedRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUConfirmedRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUConfirmedRequest"
+	boxName := "APDUConfirmedRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SegmentedMessage", m.SegmentedMessage, width-2))
 		boxes = append(boxes, utils.BoxAnything("MoreFollows", m.MoreFollows, width-2))
@@ -478,5 +479,5 @@ func (m APDUConfirmedRequest) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("ServiceRequest", m.ServiceRequest, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
index 0e65bfe..230a375 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
@@ -227,18 +227,19 @@ func (m *APDUError) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m APDUError) String() string {
-	return string(m.Box("APDUError", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUError) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUError"
+	boxName := "APDUError"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("OriginalInvokeId", m.OriginalInvokeId, width-2))
 		boxes = append(boxes, utils.BoxAnything("Error", m.Error, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
index edc0a62..892410a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
@@ -225,18 +225,19 @@ func (m *APDUReject) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m APDUReject) String() string {
-	return string(m.Box("APDUReject", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUReject) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUReject"
+	boxName := "APDUReject"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("OriginalInvokeId", m.OriginalInvokeId, width-2))
 		boxes = append(boxes, utils.BoxAnything("RejectReason", m.RejectReason, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
index a1cddc9..2c010a0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
@@ -309,14 +309,15 @@ func (m *APDUSegmentAck) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m APDUSegmentAck) String() string {
-	return string(m.Box("APDUSegmentAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUSegmentAck) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUSegmentAck"
+	boxName := "APDUSegmentAck"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("NegativeAck", m.NegativeAck, width-2))
 		boxes = append(boxes, utils.BoxAnything("Server", m.Server, width-2))
@@ -325,5 +326,5 @@ func (m APDUSegmentAck) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("ProposedWindowSize", m.ProposedWindowSize, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
index 6e97fa4..d573c26 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
@@ -225,18 +225,19 @@ func (m *APDUSimpleAck) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m APDUSimpleAck) String() string {
-	return string(m.Box("APDUSimpleAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUSimpleAck) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUSimpleAck"
+	boxName := "APDUSimpleAck"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("OriginalInvokeId", m.OriginalInvokeId, width-2))
 		boxes = append(boxes, utils.BoxAnything("ServiceChoice", m.ServiceChoice, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
index fd08a97..1142930 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
@@ -199,17 +199,18 @@ func (m *APDUUnconfirmedRequest) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m APDUUnconfirmedRequest) String() string {
-	return string(m.Box("APDUUnconfirmedRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m APDUUnconfirmedRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "APDUUnconfirmedRequest"
+	boxName := "APDUUnconfirmedRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ServiceRequest", m.ServiceRequest, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
index 4491bbb..7a9416c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
@@ -185,15 +185,16 @@ func (m *BACnetAddress) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m BACnetAddress) String() string {
-	return string(m.Box("BACnetAddress", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetAddress) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetAddress"
+	boxName := "BACnetAddress"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Address", m.Address, width-2))
 	boxes = append(boxes, utils.BoxAnything("Port", m.Port, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
index b4acc4c..6bf3982 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
@@ -500,18 +500,19 @@ func (m *BACnetConfirmedServiceACK) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m BACnetConfirmedServiceACK) String() string {
-	return string(m.Box("BACnetConfirmedServiceACK", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *BACnetConfirmedServiceACK) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *BACnetConfirmedServiceACK) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACK"
+func (m *BACnetConfirmedServiceACK) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "BACnetConfirmedServiceACK"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
index 5a5bde6..e8c6e01 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKAtomicReadFile) MarshalXML(e *xml.Encoder, sta
 }
 
 func (m BACnetConfirmedServiceACKAtomicReadFile) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKAtomicReadFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKAtomicReadFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKAtomicReadFile"
+	boxName := "BACnetConfirmedServiceACKAtomicReadFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
index 2c9cfd8..bea0adf 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKAtomicWriteFile) MarshalXML(e *xml.Encoder, st
 }
 
 func (m BACnetConfirmedServiceACKAtomicWriteFile) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKAtomicWriteFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKAtomicWriteFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKAtomicWriteFile"
+	boxName := "BACnetConfirmedServiceACKAtomicWriteFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
index 69b5998..e73b8e2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKConfirmedPrivateTransfer) MarshalXML(e *xml.En
 }
 
 func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKConfirmedPrivateTransfer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKConfirmedPrivateTransfer"
+	boxName := "BACnetConfirmedServiceACKConfirmedPrivateTransfer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
index e110430..afee1fa 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKCreateObject) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetConfirmedServiceACKCreateObject) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKCreateObject", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKCreateObject) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKCreateObject"
+	boxName := "BACnetConfirmedServiceACKCreateObject"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
index 32126d3..964f123 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKGetAlarmSummary) MarshalXML(e *xml.Encoder, st
 }
 
 func (m BACnetConfirmedServiceACKGetAlarmSummary) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKGetAlarmSummary", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKGetAlarmSummary) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKGetAlarmSummary"
+	boxName := "BACnetConfirmedServiceACKGetAlarmSummary"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
index ff6938a..06569ba 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKGetEnrollmentSummary) MarshalXML(e *xml.Encode
 }
 
 func (m BACnetConfirmedServiceACKGetEnrollmentSummary) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKGetEnrollmentSummary", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKGetEnrollmentSummary) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKGetEnrollmentSummary"
+	boxName := "BACnetConfirmedServiceACKGetEnrollmentSummary"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
index b2aec58..5947b98 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKGetEventInformation) MarshalXML(e *xml.Encoder
 }
 
 func (m BACnetConfirmedServiceACKGetEventInformation) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKGetEventInformation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKGetEventInformation) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKGetEventInformation"
+	boxName := "BACnetConfirmedServiceACKGetEventInformation"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
index b6d74f1..6d5aa21 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKReadProperty) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetConfirmedServiceACKReadProperty) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKReadProperty", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKReadProperty) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKReadProperty"
+	boxName := "BACnetConfirmedServiceACKReadProperty"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
index 4748f67..185fcf1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKReadPropertyMultiple) MarshalXML(e *xml.Encode
 }
 
 func (m BACnetConfirmedServiceACKReadPropertyMultiple) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKReadPropertyMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKReadPropertyMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKReadPropertyMultiple"
+	boxName := "BACnetConfirmedServiceACKReadPropertyMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
index fbda488..a7dbe54 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKReadRange) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m BACnetConfirmedServiceACKReadRange) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKReadRange", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKReadRange) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKReadRange"
+	boxName := "BACnetConfirmedServiceACKReadRange"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
index 56c33ae..f8e2ccc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKRemovedAuthenticate) MarshalXML(e *xml.Encoder
 }
 
 func (m BACnetConfirmedServiceACKRemovedAuthenticate) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKRemovedAuthenticate", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKRemovedAuthenticate) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKRemovedAuthenticate"
+	boxName := "BACnetConfirmedServiceACKRemovedAuthenticate"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
index 817de32..448178f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKRemovedReadPropertyConditional) MarshalXML(e *
 }
 
 func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKRemovedReadPropertyConditional", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKRemovedReadPropertyConditional"
+	boxName := "BACnetConfirmedServiceACKRemovedReadPropertyConditional"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
index 3b73c32..f0505c8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKVTData) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetConfirmedServiceACKVTData) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKVTData", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKVTData) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKVTData"
+	boxName := "BACnetConfirmedServiceACKVTData"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
index 78e2b6c..be82393 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceACKVTOpen) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetConfirmedServiceACKVTOpen) String() string {
-	return string(m.Box("BACnetConfirmedServiceACKVTOpen", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceACKVTOpen) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceACKVTOpen"
+	boxName := "BACnetConfirmedServiceACKVTOpen"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
index c7251dc..6d94ea4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
@@ -829,18 +829,19 @@ func (m *BACnetConfirmedServiceRequest) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m BACnetConfirmedServiceRequest) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *BACnetConfirmedServiceRequest) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *BACnetConfirmedServiceRequest) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequest"
+func (m *BACnetConfirmedServiceRequest) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "BACnetConfirmedServiceRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
index a70e1e3..9f90b73 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) MarshalXML(e *xml.Encode
 }
 
 func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestAcknowledgeAlarm", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestAcknowledgeAlarm"
+	boxName := "BACnetConfirmedServiceRequestAcknowledgeAlarm"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
index a766647..2c16111 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestAddListElement) MarshalXML(e *xml.Encoder,
 }
 
 func (m BACnetConfirmedServiceRequestAddListElement) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestAddListElement", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestAddListElement) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestAddListElement"
+	boxName := "BACnetConfirmedServiceRequestAddListElement"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
index 9796524..7ccfea8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestAtomicReadFile) MarshalXML(e *xml.Encoder,
 }
 
 func (m BACnetConfirmedServiceRequestAtomicReadFile) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestAtomicReadFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestAtomicReadFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestAtomicReadFile"
+	boxName := "BACnetConfirmedServiceRequestAtomicReadFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
index 7559b23..8e766e4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestAtomicWriteFile) MarshalXML(e *xml.Encoder
 }
 
 func (m BACnetConfirmedServiceRequestAtomicWriteFile) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestAtomicWriteFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestAtomicWriteFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestAtomicWriteFile"
+	boxName := "BACnetConfirmedServiceRequestAtomicWriteFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index 8e896bb..cca1d81 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -525,14 +525,15 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotification) MarshalXML(e *xm
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestConfirmedCOVNotification", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestConfirmedCOVNotification"
+	boxName := "BACnetConfirmedServiceRequestConfirmedCOVNotification"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SubscriberProcessIdentifier", m.SubscriberProcessIdentifier, width-2))
 		boxes = append(boxes, utils.BoxAnything("MonitoredObjectType", m.MonitoredObjectType, width-2))
@@ -544,5 +545,5 @@ func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) Box(name string,
 		boxes = append(boxes, utils.BoxAnything("Notifications", m.Notifications, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
index 4848f11..5571bc5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) MarshalX
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple"
+	boxName := "BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
index 1bb26cf..9ca13b7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) MarshalXML(e *
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedEventNotification) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestConfirmedEventNotification", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedEventNotification) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestConfirmedEventNotification"
+	boxName := "BACnetConfirmedServiceRequestConfirmedEventNotification"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
index 42994e0..0c1a9b9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestConfirmedPrivateTransfer) MarshalXML(e *xm
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestConfirmedPrivateTransfer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestConfirmedPrivateTransfer"
+	boxName := "BACnetConfirmedServiceRequestConfirmedPrivateTransfer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
index 8683c23..d591f08 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestConfirmedTextMessage) MarshalXML(e *xml.En
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedTextMessage) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestConfirmedTextMessage", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestConfirmedTextMessage) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestConfirmedTextMessage"
+	boxName := "BACnetConfirmedServiceRequestConfirmedTextMessage"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
index 174ace7..99a9dc0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestCreateObject) MarshalXML(e *xml.Encoder, s
 }
 
 func (m BACnetConfirmedServiceRequestCreateObject) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestCreateObject", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestCreateObject) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestCreateObject"
+	boxName := "BACnetConfirmedServiceRequestCreateObject"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
index fab591a..ab26f55 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestDeleteObject) MarshalXML(e *xml.Encoder, s
 }
 
 func (m BACnetConfirmedServiceRequestDeleteObject) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestDeleteObject", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestDeleteObject) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestDeleteObject"
+	boxName := "BACnetConfirmedServiceRequestDeleteObject"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
index e48b7d1..2ea72f3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestDeviceCommunicationControl) MarshalXML(e *
 }
 
 func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestDeviceCommunicationControl", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestDeviceCommunicationControl"
+	boxName := "BACnetConfirmedServiceRequestDeviceCommunicationControl"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
index d51a33d..c546ff4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestGetEnrollmentSummary) MarshalXML(e *xml.En
 }
 
 func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestGetEnrollmentSummary", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestGetEnrollmentSummary"
+	boxName := "BACnetConfirmedServiceRequestGetEnrollmentSummary"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
index 1c77705..12efa12 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestGetEventInformation) MarshalXML(e *xml.Enc
 }
 
 func (m BACnetConfirmedServiceRequestGetEventInformation) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestGetEventInformation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestGetEventInformation) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestGetEventInformation"
+	boxName := "BACnetConfirmedServiceRequestGetEventInformation"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
index 4fdd148..8d62816 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestLifeSafetyOperation) MarshalXML(e *xml.Enc
 }
 
 func (m BACnetConfirmedServiceRequestLifeSafetyOperation) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestLifeSafetyOperation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestLifeSafetyOperation) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestLifeSafetyOperation"
+	boxName := "BACnetConfirmedServiceRequestLifeSafetyOperation"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index 9083cc4..d611363 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -315,14 +315,15 @@ func (m *BACnetConfirmedServiceRequestReadProperty) MarshalXML(e *xml.Encoder, s
 }
 
 func (m BACnetConfirmedServiceRequestReadProperty) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestReadProperty", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestReadProperty) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestReadProperty"
+	boxName := "BACnetConfirmedServiceRequestReadProperty"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectType", m.ObjectType, width-2))
 		boxes = append(boxes, utils.BoxAnything("ObjectInstanceNumber", m.ObjectInstanceNumber, width-2))
@@ -330,5 +331,5 @@ func (m BACnetConfirmedServiceRequestReadProperty) Box(name string, width int) u
 		boxes = append(boxes, utils.BoxAnything("PropertyIdentifier", m.PropertyIdentifier, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
index bfc2ce1..201cdc6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestReadPropertyMultiple) MarshalXML(e *xml.En
 }
 
 func (m BACnetConfirmedServiceRequestReadPropertyMultiple) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestReadPropertyMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestReadPropertyMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestReadPropertyMultiple"
+	boxName := "BACnetConfirmedServiceRequestReadPropertyMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
index d32a7f6..cdcc520 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestReadRange) MarshalXML(e *xml.Encoder, star
 }
 
 func (m BACnetConfirmedServiceRequestReadRange) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestReadRange", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestReadRange) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestReadRange"
+	boxName := "BACnetConfirmedServiceRequestReadRange"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
index bbec4a1..9505df0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestReinitializeDevice) MarshalXML(e *xml.Enco
 }
 
 func (m BACnetConfirmedServiceRequestReinitializeDevice) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestReinitializeDevice", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestReinitializeDevice) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestReinitializeDevice"
+	boxName := "BACnetConfirmedServiceRequestReinitializeDevice"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
index 8069d29..d1cecad 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestRemoveListElement) MarshalXML(e *xml.Encod
 }
 
 func (m BACnetConfirmedServiceRequestRemoveListElement) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestRemoveListElement", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestRemoveListElement) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestRemoveListElement"
+	boxName := "BACnetConfirmedServiceRequestRemoveListElement"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
index c52a046..6438794 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestRemovedAuthenticate) MarshalXML(e *xml.Enc
 }
 
 func (m BACnetConfirmedServiceRequestRemovedAuthenticate) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestRemovedAuthenticate", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestRemovedAuthenticate) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestRemovedAuthenticate"
+	boxName := "BACnetConfirmedServiceRequestRemovedAuthenticate"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
index 8f34555..6aadde0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestRemovedReadPropertyConditional) MarshalXML
 }
 
 func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestRemovedReadPropertyConditional", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestRemovedReadPropertyConditional"
+	boxName := "BACnetConfirmedServiceRequestRemovedReadPropertyConditional"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
index 03bb2d3..a877bdc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestRemovedRequestKey) MarshalXML(e *xml.Encod
 }
 
 func (m BACnetConfirmedServiceRequestRemovedRequestKey) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestRemovedRequestKey", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestRemovedRequestKey) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestRemovedRequestKey"
+	boxName := "BACnetConfirmedServiceRequestRemovedRequestKey"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
index 2ca48c2..217f42c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -428,14 +428,15 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOV) MarshalXML(e *xml.Encoder, s
 }
 
 func (m BACnetConfirmedServiceRequestSubscribeCOV) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestSubscribeCOV", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestSubscribeCOV) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestSubscribeCOV"
+	boxName := "BACnetConfirmedServiceRequestSubscribeCOV"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SubscriberProcessIdentifier", m.SubscriberProcessIdentifier, width-2))
 		boxes = append(boxes, utils.BoxAnything("MonitoredObjectType", m.MonitoredObjectType, width-2))
@@ -445,5 +446,5 @@ func (m BACnetConfirmedServiceRequestSubscribeCOV) Box(name string, width int) u
 		boxes = append(boxes, utils.BoxAnything("LifetimeSeconds", m.LifetimeSeconds, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
index b6aafad..753ef01 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOVProperty) MarshalXML(e *xml.En
 }
 
 func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestSubscribeCOVProperty", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestSubscribeCOVProperty"
+	boxName := "BACnetConfirmedServiceRequestSubscribeCOVProperty"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
index aed324e..46bc7de 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) MarshalXML(e
 }
 
 func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple"
+	boxName := "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
index ddb697a..0758f60 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestVTClose) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetConfirmedServiceRequestVTClose) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestVTClose", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestVTClose) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestVTClose"
+	boxName := "BACnetConfirmedServiceRequestVTClose"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
index 081b955..b366a3c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestVTData) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m BACnetConfirmedServiceRequestVTData) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestVTData", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestVTData) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestVTData"
+	boxName := "BACnetConfirmedServiceRequestVTData"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
index b63a7ac..25b01b1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestVTOpen) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m BACnetConfirmedServiceRequestVTOpen) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestVTOpen", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestVTOpen) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestVTOpen"
+	boxName := "BACnetConfirmedServiceRequestVTOpen"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 02d6eae..631bc12 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -426,14 +426,15 @@ func (m *BACnetConfirmedServiceRequestWriteProperty) MarshalXML(e *xml.Encoder,
 }
 
 func (m BACnetConfirmedServiceRequestWriteProperty) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestWriteProperty", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestWriteProperty) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestWriteProperty"
+	boxName := "BACnetConfirmedServiceRequestWriteProperty"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectType", m.ObjectType, width-2))
 		boxes = append(boxes, utils.BoxAnything("ObjectInstanceNumber", m.ObjectInstanceNumber, width-2))
@@ -443,5 +444,5 @@ func (m BACnetConfirmedServiceRequestWriteProperty) Box(name string, width int)
 		boxes = append(boxes, utils.BoxAnything("Priority", m.Priority, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
index 34f60f0..a567441 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetConfirmedServiceRequestWritePropertyMultiple) MarshalXML(e *xml.E
 }
 
 func (m BACnetConfirmedServiceRequestWritePropertyMultiple) String() string {
-	return string(m.Box("BACnetConfirmedServiceRequestWritePropertyMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetConfirmedServiceRequestWritePropertyMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetConfirmedServiceRequestWritePropertyMultiple"
+	boxName := "BACnetConfirmedServiceRequestWritePropertyMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
index 46f2a1d..1023764 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
@@ -493,18 +493,19 @@ func (m *BACnetError) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m BACnetError) String() string {
-	return string(m.Box("BACnetError", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *BACnetError) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *BACnetError) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetError"
+func (m *BACnetError) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "BACnetError"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
index 01c56aa..5c1947f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorAtomicReadFile) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m BACnetErrorAtomicReadFile) String() string {
-	return string(m.Box("BACnetErrorAtomicReadFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorAtomicReadFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorAtomicReadFile"
+	boxName := "BACnetErrorAtomicReadFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
index 6a7af9d..10fcdd5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorAtomicWriteFile) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m BACnetErrorAtomicWriteFile) String() string {
-	return string(m.Box("BACnetErrorAtomicWriteFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorAtomicWriteFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorAtomicWriteFile"
+	boxName := "BACnetErrorAtomicWriteFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
index 323f9ea..a753b4c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorConfirmedPrivateTransfer) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m BACnetErrorConfirmedPrivateTransfer) String() string {
-	return string(m.Box("BACnetErrorConfirmedPrivateTransfer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorConfirmedPrivateTransfer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorConfirmedPrivateTransfer"
+	boxName := "BACnetErrorConfirmedPrivateTransfer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
index 82a304e..b24ce22 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorCreateObject) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m BACnetErrorCreateObject) String() string {
-	return string(m.Box("BACnetErrorCreateObject", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorCreateObject) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorCreateObject"
+	boxName := "BACnetErrorCreateObject"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
index ea60c3b..c834ae4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorGetAlarmSummary) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m BACnetErrorGetAlarmSummary) String() string {
-	return string(m.Box("BACnetErrorGetAlarmSummary", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorGetAlarmSummary) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorGetAlarmSummary"
+	boxName := "BACnetErrorGetAlarmSummary"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
index 8e27ccf..98ef54c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorGetEnrollmentSummary) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetErrorGetEnrollmentSummary) String() string {
-	return string(m.Box("BACnetErrorGetEnrollmentSummary", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorGetEnrollmentSummary) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorGetEnrollmentSummary"
+	boxName := "BACnetErrorGetEnrollmentSummary"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
index 3810a0c..931b54a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorGetEventInformation) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m BACnetErrorGetEventInformation) String() string {
-	return string(m.Box("BACnetErrorGetEventInformation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorGetEventInformation) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorGetEventInformation"
+	boxName := "BACnetErrorGetEventInformation"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
index 474b5f8..63b0ac3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
@@ -332,14 +332,15 @@ func (m *BACnetErrorReadProperty) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m BACnetErrorReadProperty) String() string {
-	return string(m.Box("BACnetErrorReadProperty", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorReadProperty) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorReadProperty"
+	boxName := "BACnetErrorReadProperty"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ErrorClassLength", m.ErrorClassLength, width-2))
 		boxes = append(boxes, utils.BoxAnything("ErrorClass", m.ErrorClass, width-2))
@@ -347,5 +348,5 @@ func (m BACnetErrorReadProperty) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("ErrorCode", m.ErrorCode, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
index 4b9c3d4..c4823d8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorReadPropertyMultiple) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetErrorReadPropertyMultiple) String() string {
-	return string(m.Box("BACnetErrorReadPropertyMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorReadPropertyMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorReadPropertyMultiple"
+	boxName := "BACnetErrorReadPropertyMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
index 8bb07ff..2597403 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorReadRange) MarshalXML(e *xml.Encoder, start xml.StartElement
 }
 
 func (m BACnetErrorReadRange) String() string {
-	return string(m.Box("BACnetErrorReadRange", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorReadRange) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorReadRange"
+	boxName := "BACnetErrorReadRange"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
index afaf18c..c8685e5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorRemovedAuthenticate) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m BACnetErrorRemovedAuthenticate) String() string {
-	return string(m.Box("BACnetErrorRemovedAuthenticate", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorRemovedAuthenticate) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorRemovedAuthenticate"
+	boxName := "BACnetErrorRemovedAuthenticate"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
index 2da3099..4daf13c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorRemovedReadPropertyConditional) MarshalXML(e *xml.Encoder, s
 }
 
 func (m BACnetErrorRemovedReadPropertyConditional) String() string {
-	return string(m.Box("BACnetErrorRemovedReadPropertyConditional", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorRemovedReadPropertyConditional) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorRemovedReadPropertyConditional"
+	boxName := "BACnetErrorRemovedReadPropertyConditional"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
index 7ec9071..8262c18 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorVTData) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m BACnetErrorVTData) String() string {
-	return string(m.Box("BACnetErrorVTData", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorVTData) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorVTData"
+	boxName := "BACnetErrorVTData"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
index 8990493..401e315 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
@@ -142,16 +142,17 @@ func (m *BACnetErrorVTOpen) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m BACnetErrorVTOpen) String() string {
-	return string(m.Box("BACnetErrorVTOpen", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetErrorVTOpen) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetErrorVTOpen"
+	boxName := "BACnetErrorVTOpen"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
index d3e258e..2a0a4dd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
@@ -493,18 +493,19 @@ func (m *BACnetServiceAck) MarshalXML(e *xml.Encoder, start xml.StartElement) er
 }
 
 func (m BACnetServiceAck) String() string {
-	return string(m.Box("BACnetServiceAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *BACnetServiceAck) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *BACnetServiceAck) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAck"
+func (m *BACnetServiceAck) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "BACnetServiceAck"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
index 83de9b9..3c1b276 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckAtomicReadFile) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m BACnetServiceAckAtomicReadFile) String() string {
-	return string(m.Box("BACnetServiceAckAtomicReadFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckAtomicReadFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckAtomicReadFile"
+	boxName := "BACnetServiceAckAtomicReadFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
index c9e12cd..ff19b88 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckAtomicWriteFile) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetServiceAckAtomicWriteFile) String() string {
-	return string(m.Box("BACnetServiceAckAtomicWriteFile", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckAtomicWriteFile) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckAtomicWriteFile"
+	boxName := "BACnetServiceAckAtomicWriteFile"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
index 05ccb2a..773933a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckConfirmedPrivateTransfer) MarshalXML(e *xml.Encoder, st
 }
 
 func (m BACnetServiceAckConfirmedPrivateTransfer) String() string {
-	return string(m.Box("BACnetServiceAckConfirmedPrivateTransfer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckConfirmedPrivateTransfer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckConfirmedPrivateTransfer"
+	boxName := "BACnetServiceAckConfirmedPrivateTransfer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
index 8c51a7b..ad491e8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckCreateObject) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m BACnetServiceAckCreateObject) String() string {
-	return string(m.Box("BACnetServiceAckCreateObject", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckCreateObject) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckCreateObject"
+	boxName := "BACnetServiceAckCreateObject"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
index e55de45..9c4b4be 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckGetAlarmSummary) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetServiceAckGetAlarmSummary) String() string {
-	return string(m.Box("BACnetServiceAckGetAlarmSummary", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckGetAlarmSummary) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckGetAlarmSummary"
+	boxName := "BACnetServiceAckGetAlarmSummary"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
index 11d7243..537a734 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckGetEnrollmentSummary) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetServiceAckGetEnrollmentSummary) String() string {
-	return string(m.Box("BACnetServiceAckGetEnrollmentSummary", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckGetEnrollmentSummary) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckGetEnrollmentSummary"
+	boxName := "BACnetServiceAckGetEnrollmentSummary"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
index 6791636..d1c18a3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckGetEventInformation) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m BACnetServiceAckGetEventInformation) String() string {
-	return string(m.Box("BACnetServiceAckGetEventInformation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckGetEventInformation) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckGetEventInformation"
+	boxName := "BACnetServiceAckGetEventInformation"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
index e15f69d..39a8985 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
@@ -383,14 +383,15 @@ func (m *BACnetServiceAckReadProperty) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m BACnetServiceAckReadProperty) String() string {
-	return string(m.Box("BACnetServiceAckReadProperty", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckReadProperty) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckReadProperty"
+	boxName := "BACnetServiceAckReadProperty"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectType", m.ObjectType, width-2))
 		boxes = append(boxes, utils.BoxAnything("ObjectInstanceNumber", m.ObjectInstanceNumber, width-2))
@@ -399,5 +400,5 @@ func (m BACnetServiceAckReadProperty) Box(name string, width int) utils.AsciiBox
 		boxes = append(boxes, utils.BoxAnything("Value", m.Value, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
index 18f6d16..9883b07 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckReadPropertyMultiple) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetServiceAckReadPropertyMultiple) String() string {
-	return string(m.Box("BACnetServiceAckReadPropertyMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckReadPropertyMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckReadPropertyMultiple"
+	boxName := "BACnetServiceAckReadPropertyMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
index 6ab5640..a876893 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckReadRange) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m BACnetServiceAckReadRange) String() string {
-	return string(m.Box("BACnetServiceAckReadRange", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckReadRange) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckReadRange"
+	boxName := "BACnetServiceAckReadRange"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
index 43e85f7..d90be3d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckRemovedAuthenticate) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m BACnetServiceAckRemovedAuthenticate) String() string {
-	return string(m.Box("BACnetServiceAckRemovedAuthenticate", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckRemovedAuthenticate) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckRemovedAuthenticate"
+	boxName := "BACnetServiceAckRemovedAuthenticate"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
index 9038a91..976301f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckRemovedReadPropertyConditional) MarshalXML(e *xml.Encod
 }
 
 func (m BACnetServiceAckRemovedReadPropertyConditional) String() string {
-	return string(m.Box("BACnetServiceAckRemovedReadPropertyConditional", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckRemovedReadPropertyConditional) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckRemovedReadPropertyConditional"
+	boxName := "BACnetServiceAckRemovedReadPropertyConditional"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
index ddeba9d..4c52bf6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckVTData) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m BACnetServiceAckVTData) String() string {
-	return string(m.Box("BACnetServiceAckVTData", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckVTData) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckVTData"
+	boxName := "BACnetServiceAckVTData"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
index b4e163a..1924d72 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
@@ -142,16 +142,17 @@ func (m *BACnetServiceAckVTOpen) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m BACnetServiceAckVTOpen) String() string {
-	return string(m.Box("BACnetServiceAckVTOpen", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetServiceAckVTOpen) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetServiceAckVTOpen"
+	boxName := "BACnetServiceAckVTOpen"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
index 110d5fe..2261fc5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
@@ -590,22 +590,23 @@ func (m *BACnetTag) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m BACnetTag) String() string {
-	return string(m.Box("BACnetTag", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *BACnetTag) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *BACnetTag) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTag"
+func (m *BACnetTag) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "BACnetTag"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("TypeOrTagNumber", m.TypeOrTagNumber, width-2))
 	boxes = append(boxes, utils.BoxAnything("LengthValueType", m.LengthValueType, width-2))
 	boxes = append(boxes, utils.BoxAnything("ExtTagNumber", m.ExtTagNumber, width-2))
 	boxes = append(boxes, utils.BoxAnything("ExtLength", m.ExtLength, width-2))
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
index 425a476..bfa6ed3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
@@ -224,18 +224,19 @@ func (m *BACnetTagApplicationBitString) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m BACnetTagApplicationBitString) String() string {
-	return string(m.Box("BACnetTagApplicationBitString", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationBitString) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationBitString"
+	boxName := "BACnetTagApplicationBitString"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("UnusedBits", m.UnusedBits, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
index 33fcaee..d8ee0d3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
@@ -146,16 +146,17 @@ func (m *BACnetTagApplicationBoolean) MarshalXML(e *xml.Encoder, start xml.Start
 }
 
 func (m BACnetTagApplicationBoolean) String() string {
-	return string(m.Box("BACnetTagApplicationBoolean", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationBoolean) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationBoolean"
+	boxName := "BACnetTagApplicationBoolean"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
index 38c165d..4d539fb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
@@ -146,16 +146,17 @@ func (m *BACnetTagApplicationCharacterString) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m BACnetTagApplicationCharacterString) String() string {
-	return string(m.Box("BACnetTagApplicationCharacterString", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationCharacterString) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationCharacterString"
+	boxName := "BACnetTagApplicationCharacterString"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
index 50fee96..8cb6e5a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
@@ -146,16 +146,17 @@ func (m *BACnetTagApplicationDate) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m BACnetTagApplicationDate) String() string {
-	return string(m.Box("BACnetTagApplicationDate", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationDate) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationDate"
+	boxName := "BACnetTagApplicationDate"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
index 7ea051f..2edab8d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
@@ -175,17 +175,18 @@ func (m *BACnetTagApplicationDouble) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m BACnetTagApplicationDouble) String() string {
-	return string(m.Box("BACnetTagApplicationDouble", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationDouble) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationDouble"
+	boxName := "BACnetTagApplicationDouble"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Value", m.Value, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
index c1850f4..475db81 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
@@ -196,17 +196,18 @@ func (m *BACnetTagApplicationEnumerated) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m BACnetTagApplicationEnumerated) String() string {
-	return string(m.Box("BACnetTagApplicationEnumerated", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationEnumerated) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationEnumerated"
+	boxName := "BACnetTagApplicationEnumerated"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
index a6bad01..0c0acd6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
@@ -146,16 +146,17 @@ func (m *BACnetTagApplicationNull) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m BACnetTagApplicationNull) String() string {
-	return string(m.Box("BACnetTagApplicationNull", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationNull) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationNull"
+	boxName := "BACnetTagApplicationNull"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
index 63ba0cd..b3c737d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
@@ -146,16 +146,17 @@ func (m *BACnetTagApplicationObjectIdentifier) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetTagApplicationObjectIdentifier) String() string {
-	return string(m.Box("BACnetTagApplicationObjectIdentifier", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationObjectIdentifier) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationObjectIdentifier"
+	boxName := "BACnetTagApplicationObjectIdentifier"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
index 3b681bb..892e4e7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
@@ -146,16 +146,17 @@ func (m *BACnetTagApplicationOctetString) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetTagApplicationOctetString) String() string {
-	return string(m.Box("BACnetTagApplicationOctetString", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationOctetString) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationOctetString"
+	boxName := "BACnetTagApplicationOctetString"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
index 6600384..7b647f8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
@@ -175,17 +175,18 @@ func (m *BACnetTagApplicationReal) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m BACnetTagApplicationReal) String() string {
-	return string(m.Box("BACnetTagApplicationReal", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationReal) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationReal"
+	boxName := "BACnetTagApplicationReal"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Value", m.Value, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
index 73d280f..254f4dc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
@@ -196,17 +196,18 @@ func (m *BACnetTagApplicationSignedInteger) MarshalXML(e *xml.Encoder, start xml
 }
 
 func (m BACnetTagApplicationSignedInteger) String() string {
-	return string(m.Box("BACnetTagApplicationSignedInteger", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationSignedInteger) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationSignedInteger"
+	boxName := "BACnetTagApplicationSignedInteger"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
index 2c8b81a..73cd673 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
@@ -146,16 +146,17 @@ func (m *BACnetTagApplicationTime) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m BACnetTagApplicationTime) String() string {
-	return string(m.Box("BACnetTagApplicationTime", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationTime) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationTime"
+	boxName := "BACnetTagApplicationTime"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
index 35f69fc..09e2da2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
@@ -196,17 +196,18 @@ func (m *BACnetTagApplicationUnsignedInteger) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m BACnetTagApplicationUnsignedInteger) String() string {
-	return string(m.Box("BACnetTagApplicationUnsignedInteger", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagApplicationUnsignedInteger) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagApplicationUnsignedInteger"
+	boxName := "BACnetTagApplicationUnsignedInteger"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
index 7b253b4..8b5ee16 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
@@ -196,17 +196,18 @@ func (m *BACnetTagContext) MarshalXML(e *xml.Encoder, start xml.StartElement) er
 }
 
 func (m BACnetTagContext) String() string {
-	return string(m.Box("BACnetTagContext", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagContext) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagContext"
+	boxName := "BACnetTagContext"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
index 8dbb82c..8eac2c6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
@@ -395,12 +395,13 @@ func (m *BACnetTagWithContent) MarshalXML(e *xml.Encoder, start xml.StartElement
 }
 
 func (m BACnetTagWithContent) String() string {
-	return string(m.Box("BACnetTagWithContent", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetTagWithContent) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetTagWithContent"
+	boxName := "BACnetTagWithContent"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("TypeOrTagNumber", m.TypeOrTagNumber, width-2))
@@ -410,5 +411,5 @@ func (m BACnetTagWithContent) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("ExtLength", m.ExtLength, width-2))
 	boxes = append(boxes, utils.BoxAnything("PropertyIdentifier", m.PropertyIdentifier, width-2))
 	boxes = append(boxes, utils.BoxAnything("Value", m.Value, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
index f582e83..799879a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
@@ -430,18 +430,19 @@ func (m *BACnetUnconfirmedServiceRequest) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m BACnetUnconfirmedServiceRequest) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *BACnetUnconfirmedServiceRequest) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *BACnetUnconfirmedServiceRequest) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequest"
+func (m *BACnetUnconfirmedServiceRequest) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "BACnetUnconfirmedServiceRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
index 2dc1858..aa4447f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
@@ -409,14 +409,15 @@ func (m *BACnetUnconfirmedServiceRequestIAm) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m BACnetUnconfirmedServiceRequestIAm) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestIAm", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestIAm) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestIAm"
+	boxName := "BACnetUnconfirmedServiceRequestIAm"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectType", m.ObjectType, width-2))
 		boxes = append(boxes, utils.BoxAnything("ObjectInstanceNumber", m.ObjectInstanceNumber, width-2))
@@ -426,5 +427,5 @@ func (m BACnetUnconfirmedServiceRequestIAm) Box(name string, width int) utils.As
 		boxes = append(boxes, utils.BoxAnything("VendorId", m.VendorId, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
index d489c18..6b4c1c5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestIHave) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetUnconfirmedServiceRequestIHave) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestIHave", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestIHave) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestIHave"
+	boxName := "BACnetUnconfirmedServiceRequestIHave"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
index e25c947..459f6ba 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestTimeSynchronization) MarshalXML(e *xml.E
 }
 
 func (m BACnetUnconfirmedServiceRequestTimeSynchronization) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestTimeSynchronization", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestTimeSynchronization) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestTimeSynchronization"
+	boxName := "BACnetUnconfirmedServiceRequestTimeSynchronization"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
index 2a28089..b305ca9 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestUTCTimeSynchronization) MarshalXML(e *xm
 }
 
 func (m BACnetUnconfirmedServiceRequestUTCTimeSynchronization) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestUTCTimeSynchronization", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestUTCTimeSynchronization) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestUTCTimeSynchronization"
+	boxName := "BACnetUnconfirmedServiceRequestUTCTimeSynchronization"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
index c8ec3cb..a4c74dc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification) MarshalXML(e
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification"
+	boxName := "BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
index 24ab87b..06a2233 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple) Mars
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple"
+	boxName := "BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
index c14d9d1..6ed2a70 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestUnconfirmedEventNotification) MarshalXML
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedEventNotification) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestUnconfirmedEventNotification", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedEventNotification) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestUnconfirmedEventNotification"
+	boxName := "BACnetUnconfirmedServiceRequestUnconfirmedEventNotification"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
index 6ab3f23..89fe9ed 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
@@ -327,19 +327,20 @@ func (m *BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer) MarshalXML(e
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer"
+	boxName := "BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("VendorId", m.VendorId, width-2))
 		boxes = append(boxes, utils.BoxAnything("ServiceNumber", m.ServiceNumber, width-2))
 		boxes = append(boxes, utils.BoxAnything("Values", m.Values, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
index 06bbd89..d78bbdd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestUnconfirmedTextMessage) MarshalXML(e *xm
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedTextMessage) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestUnconfirmedTextMessage", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestUnconfirmedTextMessage) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestUnconfirmedTextMessage"
+	boxName := "BACnetUnconfirmedServiceRequestUnconfirmedTextMessage"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
index 6262965..1304c28 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
@@ -353,14 +353,15 @@ func (m *BACnetUnconfirmedServiceRequestWhoHas) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetUnconfirmedServiceRequestWhoHas) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestWhoHas", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestWhoHas) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestWhoHas"
+	boxName := "BACnetUnconfirmedServiceRequestWhoHas"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DeviceInstanceLowLimit", m.DeviceInstanceLowLimit, width-2))
 		boxes = append(boxes, utils.BoxAnything("DeviceInstanceHighLimit", m.DeviceInstanceHighLimit, width-2))
@@ -368,5 +369,5 @@ func (m BACnetUnconfirmedServiceRequestWhoHas) Box(name string, width int) utils
 		boxes = append(boxes, utils.BoxAnything("ObjectName", m.ObjectName, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
index 20aded9..9ad34c1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
@@ -332,14 +332,15 @@ func (m *BACnetUnconfirmedServiceRequestWhoIs) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BACnetUnconfirmedServiceRequestWhoIs) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestWhoIs", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestWhoIs) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestWhoIs"
+	boxName := "BACnetUnconfirmedServiceRequestWhoIs"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DeviceInstanceRangeLowLimitLength", m.DeviceInstanceRangeLowLimitLength, width-2))
 		boxes = append(boxes, utils.BoxAnything("DeviceInstanceRangeLowLimit", m.DeviceInstanceRangeLowLimit, width-2))
@@ -347,5 +348,5 @@ func (m BACnetUnconfirmedServiceRequestWhoIs) Box(name string, width int) utils.
 		boxes = append(boxes, utils.BoxAnything("DeviceInstanceRangeHighLimit", m.DeviceInstanceRangeHighLimit, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
index 491cc11..0664715 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
@@ -142,16 +142,17 @@ func (m *BACnetUnconfirmedServiceRequestWriteGroup) MarshalXML(e *xml.Encoder, s
 }
 
 func (m BACnetUnconfirmedServiceRequestWriteGroup) String() string {
-	return string(m.Box("BACnetUnconfirmedServiceRequestWriteGroup", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BACnetUnconfirmedServiceRequestWriteGroup) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BACnetUnconfirmedServiceRequestWriteGroup"
+	boxName := "BACnetUnconfirmedServiceRequestWriteGroup"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
index 1e38d07..ac702f6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
@@ -497,18 +497,19 @@ func (m *BVLC) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m BVLC) String() string {
-	return string(m.Box("BVLC", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *BVLC) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *BVLC) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "BVLC"
+func (m *BVLC) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "BVLC"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
index 16504d6..29880a6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
@@ -142,16 +142,17 @@ func (m *BVLCDeleteForeignDeviceTableEntry) MarshalXML(e *xml.Encoder, start xml
 }
 
 func (m BVLCDeleteForeignDeviceTableEntry) String() string {
-	return string(m.Box("BVLCDeleteForeignDeviceTableEntry", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCDeleteForeignDeviceTableEntry) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCDeleteForeignDeviceTableEntry"
+	boxName := "BVLCDeleteForeignDeviceTableEntry"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
index 4d96757..ac92c2b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
@@ -142,16 +142,17 @@ func (m *BVLCDistributeBroadcastToNetwork) MarshalXML(e *xml.Encoder, start xml.
 }
 
 func (m BVLCDistributeBroadcastToNetwork) String() string {
-	return string(m.Box("BVLCDistributeBroadcastToNetwork", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCDistributeBroadcastToNetwork) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCDistributeBroadcastToNetwork"
+	boxName := "BVLCDistributeBroadcastToNetwork"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
index 93f45e4..1273c4c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
@@ -236,19 +236,20 @@ func (m *BVLCForwardedNPDU) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m BVLCForwardedNPDU) String() string {
-	return string(m.Box("BVLCForwardedNPDU", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCForwardedNPDU) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCForwardedNPDU"
+	boxName := "BVLCForwardedNPDU"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Ip", m.Ip, width-2))
 		boxes = append(boxes, utils.BoxAnything("Port", m.Port, width-2))
 		boxes = append(boxes, utils.BoxAnything("Npdu", m.Npdu, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
index 4154b8c..7758640 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
@@ -170,17 +170,18 @@ func (m *BVLCOriginalBroadcastNPDU) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m BVLCOriginalBroadcastNPDU) String() string {
-	return string(m.Box("BVLCOriginalBroadcastNPDU", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCOriginalBroadcastNPDU) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCOriginalBroadcastNPDU"
+	boxName := "BVLCOriginalBroadcastNPDU"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Npdu", m.Npdu, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
index 3d8ea59..61d5736 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
@@ -170,17 +170,18 @@ func (m *BVLCOriginalUnicastNPDU) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m BVLCOriginalUnicastNPDU) String() string {
-	return string(m.Box("BVLCOriginalUnicastNPDU", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCOriginalUnicastNPDU) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCOriginalUnicastNPDU"
+	boxName := "BVLCOriginalUnicastNPDU"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Npdu", m.Npdu, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
index 1f17d42..1d065d8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
@@ -142,16 +142,17 @@ func (m *BVLCReadBroadcastDistributionTable) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m BVLCReadBroadcastDistributionTable) String() string {
-	return string(m.Box("BVLCReadBroadcastDistributionTable", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCReadBroadcastDistributionTable) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCReadBroadcastDistributionTable"
+	boxName := "BVLCReadBroadcastDistributionTable"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
index 8ffce5b..3bcf31d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
@@ -142,16 +142,17 @@ func (m *BVLCReadBroadcastDistributionTableAck) MarshalXML(e *xml.Encoder, start
 }
 
 func (m BVLCReadBroadcastDistributionTableAck) String() string {
-	return string(m.Box("BVLCReadBroadcastDistributionTableAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCReadBroadcastDistributionTableAck) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCReadBroadcastDistributionTableAck"
+	boxName := "BVLCReadBroadcastDistributionTableAck"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
index bcde763..fb04fb6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
@@ -142,16 +142,17 @@ func (m *BVLCReadForeignDeviceTable) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m BVLCReadForeignDeviceTable) String() string {
-	return string(m.Box("BVLCReadForeignDeviceTable", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCReadForeignDeviceTable) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCReadForeignDeviceTable"
+	boxName := "BVLCReadForeignDeviceTable"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
index a610e57..3710d9b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
@@ -142,16 +142,17 @@ func (m *BVLCReadForeignDeviceTableAck) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m BVLCReadForeignDeviceTableAck) String() string {
-	return string(m.Box("BVLCReadForeignDeviceTableAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCReadForeignDeviceTableAck) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCReadForeignDeviceTableAck"
+	boxName := "BVLCReadForeignDeviceTableAck"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
index 23b8ecd..f9a5669 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
@@ -142,16 +142,17 @@ func (m *BVLCRegisterForeignDevice) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m BVLCRegisterForeignDevice) String() string {
-	return string(m.Box("BVLCRegisterForeignDevice", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCRegisterForeignDevice) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCRegisterForeignDevice"
+	boxName := "BVLCRegisterForeignDevice"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
index 9b14e0c..9656d17 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
@@ -142,16 +142,17 @@ func (m *BVLCResult) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m BVLCResult) String() string {
-	return string(m.Box("BVLCResult", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCResult) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCResult"
+	boxName := "BVLCResult"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
index dcf1d2b..9f78fdd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
@@ -142,16 +142,17 @@ func (m *BVLCSecureBVLL) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m BVLCSecureBVLL) String() string {
-	return string(m.Box("BVLCSecureBVLL", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCSecureBVLL) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCSecureBVLL"
+	boxName := "BVLCSecureBVLL"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go
index d36399f..f872a8d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go
@@ -142,16 +142,17 @@ func (m *BVLCWideBroadcastDistributionTable) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m BVLCWideBroadcastDistributionTable) String() string {
-	return string(m.Box("BVLCWideBroadcastDistributionTable", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m BVLCWideBroadcastDistributionTable) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "BVLCWideBroadcastDistributionTable"
+	boxName := "BVLCWideBroadcastDistributionTable"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
index b205882..fad0991 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
@@ -278,19 +278,20 @@ func (m *NLM) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m NLM) String() string {
-	return string(m.Box("NLM", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *NLM) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *NLM) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "NLM"
+func (m *NLM) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "NLM"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("VendorId", m.VendorId, width-2))
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
index a084e06..5db949a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
@@ -184,17 +184,18 @@ func (m *NLMIAmRouterToNetwork) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m NLMIAmRouterToNetwork) String() string {
-	return string(m.Box("NLMIAmRouterToNetwork", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m NLMIAmRouterToNetwork) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "NLMIAmRouterToNetwork"
+	boxName := "NLMIAmRouterToNetwork"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DestinationNetworkAddress", m.DestinationNetworkAddress, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
index 050cf54..a9f0e9f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
@@ -184,17 +184,18 @@ func (m *NLMWhoIsRouterToNetwork) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m NLMWhoIsRouterToNetwork) String() string {
-	return string(m.Box("NLMWhoIsRouterToNetwork", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m NLMWhoIsRouterToNetwork) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "NLMWhoIsRouterToNetwork"
+	boxName := "NLMWhoIsRouterToNetwork"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DestinationNetworkAddress", m.DestinationNetworkAddress, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
index 73aa72a..853d004 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
@@ -694,12 +694,13 @@ func (m *NPDU) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m NPDU) String() string {
-	return string(m.Box("NPDU", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m NPDU) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "NPDU"
+	boxName := "NPDU"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("ProtocolVersionNumber", m.ProtocolVersionNumber, width-2))
@@ -717,5 +718,5 @@ func (m NPDU) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("HopCount", m.HopCount, width-2))
 	boxes = append(boxes, utils.BoxAnything("Nlm", m.Nlm, width-2))
 	boxes = append(boxes, utils.BoxAnything("Apdu", m.Apdu, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
index d54598c..29e2bdb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
@@ -286,20 +286,21 @@ func (m *Apdu) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m Apdu) String() string {
-	return string(m.Box("Apdu", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *Apdu) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *Apdu) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "Apdu"
+func (m *Apdu) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "Apdu"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Numbered", m.Numbered, width-2))
 	boxes = append(boxes, utils.BoxAnything("Counter", m.Counter, width-2))
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
index 9079b86..7342980 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
@@ -290,18 +290,19 @@ func (m *ApduControl) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m ApduControl) String() string {
-	return string(m.Box("ApduControl", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ApduControl) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ApduControl) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ApduControl"
+func (m *ApduControl) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ApduControl"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
index dc5ff23..a692f97 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlAck.go
@@ -142,16 +142,17 @@ func (m *ApduControlAck) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m ApduControlAck) String() string {
-	return string(m.Box("ApduControlAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduControlAck) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduControlAck"
+	boxName := "ApduControlAck"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
index c6d1618..2fb6b57 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlConnect.go
@@ -142,16 +142,17 @@ func (m *ApduControlConnect) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ApduControlConnect) String() string {
-	return string(m.Box("ApduControlConnect", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduControlConnect) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduControlConnect"
+	boxName := "ApduControlConnect"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go
index 71ef316..c6b8f4c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlContainer.go
@@ -175,17 +175,18 @@ func (m *ApduControlContainer) MarshalXML(e *xml.Encoder, start xml.StartElement
 }
 
 func (m ApduControlContainer) String() string {
-	return string(m.Box("ApduControlContainer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduControlContainer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduControlContainer"
+	boxName := "ApduControlContainer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ControlApdu", m.ControlApdu, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
index 770ed5c..447264d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlDisconnect.go
@@ -142,16 +142,17 @@ func (m *ApduControlDisconnect) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m ApduControlDisconnect) String() string {
-	return string(m.Box("ApduControlDisconnect", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduControlDisconnect) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduControlDisconnect"
+	boxName := "ApduControlDisconnect"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
index c92d8a8..46dd747 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControlNack.go
@@ -142,16 +142,17 @@ func (m *ApduControlNack) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m ApduControlNack) String() string {
-	return string(m.Box("ApduControlNack", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduControlNack) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduControlNack"
+	boxName := "ApduControlNack"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
index 7b00b09..1980135 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
@@ -486,18 +486,19 @@ func (m *ApduData) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m ApduData) String() string {
-	return string(m.Box("ApduData", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ApduData) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ApduData) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ApduData"
+func (m *ApduData) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ApduData"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
index fdde314..17487a9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataAdcRead) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m ApduDataAdcRead) String() string {
-	return string(m.Box("ApduDataAdcRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataAdcRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataAdcRead"
+	boxName := "ApduDataAdcRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
index f7314ea..7401412 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataAdcResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataAdcResponse) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ApduDataAdcResponse) String() string {
-	return string(m.Box("ApduDataAdcResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataAdcResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataAdcResponse"
+	boxName := "ApduDataAdcResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go
index 196afa5..f59aff4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataContainer.go
@@ -175,17 +175,18 @@ func (m *ApduDataContainer) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m ApduDataContainer) String() string {
-	return string(m.Box("ApduDataContainer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataContainer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataContainer"
+	boxName := "ApduDataContainer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DataApdu", m.DataApdu, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
index e3efa2f..b5bb202 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorRead.go
@@ -171,17 +171,18 @@ func (m *ApduDataDeviceDescriptorRead) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m ApduDataDeviceDescriptorRead) String() string {
-	return string(m.Box("ApduDataDeviceDescriptorRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataDeviceDescriptorRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataDeviceDescriptorRead"
+	boxName := "ApduDataDeviceDescriptorRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DescriptorType", m.DescriptorType, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
index ff87860..d03b9c2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataDeviceDescriptorResponse.go
@@ -218,18 +218,19 @@ func (m *ApduDataDeviceDescriptorResponse) MarshalXML(e *xml.Encoder, start xml.
 }
 
 func (m ApduDataDeviceDescriptorResponse) String() string {
-	return string(m.Box("ApduDataDeviceDescriptorResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataDeviceDescriptorResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataDeviceDescriptorResponse"
+	boxName := "ApduDataDeviceDescriptorResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DescriptorType", m.DescriptorType, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
index 3ceccff..e61e7e2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
@@ -1018,18 +1018,19 @@ func (m *ApduDataExt) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m ApduDataExt) String() string {
-	return string(m.Box("ApduDataExt", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ApduDataExt) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ApduDataExt) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExt"
+func (m *ApduDataExt) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ApduDataExt"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
index f75df6d..8b6738a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeRequest.go
@@ -209,18 +209,19 @@ func (m *ApduDataExtAuthorizeRequest) MarshalXML(e *xml.Encoder, start xml.Start
 }
 
 func (m ApduDataExtAuthorizeRequest) String() string {
-	return string(m.Box("ApduDataExtAuthorizeRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtAuthorizeRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtAuthorizeRequest"
+	boxName := "ApduDataExtAuthorizeRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Level", m.Level, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
index 670ec41..1b44238 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtAuthorizeResponse.go
@@ -171,17 +171,18 @@ func (m *ApduDataExtAuthorizeResponse) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m ApduDataExtAuthorizeResponse) String() string {
-	return string(m.Box("ApduDataExtAuthorizeResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtAuthorizeResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtAuthorizeResponse"
+	boxName := "ApduDataExtAuthorizeResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Level", m.Level, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
index f64aa22..1d96f8b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtDomainAddressRead) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m ApduDataExtDomainAddressRead) String() string {
-	return string(m.Box("ApduDataExtDomainAddressRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtDomainAddressRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtDomainAddressRead"
+	boxName := "ApduDataExtDomainAddressRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
index f6a7e48..2aed6c8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtDomainAddressResponse) MarshalXML(e *xml.Encoder, start xml.
 }
 
 func (m ApduDataExtDomainAddressResponse) String() string {
-	return string(m.Box("ApduDataExtDomainAddressResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtDomainAddressResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtDomainAddressResponse"
+	boxName := "ApduDataExtDomainAddressResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
index 279e2f5..b8b6002 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSelectiveRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtDomainAddressSelectiveRead) MarshalXML(e *xml.Encoder, start
 }
 
 func (m ApduDataExtDomainAddressSelectiveRead) String() string {
-	return string(m.Box("ApduDataExtDomainAddressSelectiveRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtDomainAddressSelectiveRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtDomainAddressSelectiveRead"
+	boxName := "ApduDataExtDomainAddressSelectiveRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
index 046e60a..b31c059 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtDomainAddressSerialNumberRead) MarshalXML(e *xml.Encoder, st
 }
 
 func (m ApduDataExtDomainAddressSerialNumberRead) String() string {
-	return string(m.Box("ApduDataExtDomainAddressSerialNumberRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtDomainAddressSerialNumberRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtDomainAddressSerialNumberRead"
+	boxName := "ApduDataExtDomainAddressSerialNumberRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
index b9ff4c2..6251ffc 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtDomainAddressSerialNumberResponse) MarshalXML(e *xml.Encoder
 }
 
 func (m ApduDataExtDomainAddressSerialNumberResponse) String() string {
-	return string(m.Box("ApduDataExtDomainAddressSerialNumberResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtDomainAddressSerialNumberResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtDomainAddressSerialNumberResponse"
+	boxName := "ApduDataExtDomainAddressSerialNumberResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
index b812f5c..5fa886d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressSerialNumberWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtDomainAddressSerialNumberWrite) MarshalXML(e *xml.Encoder, s
 }
 
 func (m ApduDataExtDomainAddressSerialNumberWrite) String() string {
-	return string(m.Box("ApduDataExtDomainAddressSerialNumberWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtDomainAddressSerialNumberWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtDomainAddressSerialNumberWrite"
+	boxName := "ApduDataExtDomainAddressSerialNumberWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
index 3102028..83402ad 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtDomainAddressWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtDomainAddressWrite) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m ApduDataExtDomainAddressWrite) String() string {
-	return string(m.Box("ApduDataExtDomainAddressWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtDomainAddressWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtDomainAddressWrite"
+	boxName := "ApduDataExtDomainAddressWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
index 5f94878..bd6dd45 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtFileStreamInfoReport.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtFileStreamInfoReport) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m ApduDataExtFileStreamInfoReport) String() string {
-	return string(m.Box("ApduDataExtFileStreamInfoReport", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtFileStreamInfoReport) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtFileStreamInfoReport"
+	boxName := "ApduDataExtFileStreamInfoReport"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
index 46cfbf7..6a7d207 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueInfoReport.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtGroupPropertyValueInfoReport) MarshalXML(e *xml.Encoder, sta
 }
 
 func (m ApduDataExtGroupPropertyValueInfoReport) String() string {
-	return string(m.Box("ApduDataExtGroupPropertyValueInfoReport", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtGroupPropertyValueInfoReport) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtGroupPropertyValueInfoReport"
+	boxName := "ApduDataExtGroupPropertyValueInfoReport"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
index 3b1af3f..cc41e7a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtGroupPropertyValueRead) MarshalXML(e *xml.Encoder, start xml
 }
 
 func (m ApduDataExtGroupPropertyValueRead) String() string {
-	return string(m.Box("ApduDataExtGroupPropertyValueRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtGroupPropertyValueRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtGroupPropertyValueRead"
+	boxName := "ApduDataExtGroupPropertyValueRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
index 1cc6ccb..38df178 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtGroupPropertyValueResponse) MarshalXML(e *xml.Encoder, start
 }
 
 func (m ApduDataExtGroupPropertyValueResponse) String() string {
-	return string(m.Box("ApduDataExtGroupPropertyValueResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtGroupPropertyValueResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtGroupPropertyValueResponse"
+	boxName := "ApduDataExtGroupPropertyValueResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
index d668fba..01e2bcc 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtGroupPropertyValueWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtGroupPropertyValueWrite) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m ApduDataExtGroupPropertyValueWrite) String() string {
-	return string(m.Box("ApduDataExtGroupPropertyValueWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtGroupPropertyValueWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtGroupPropertyValueWrite"
+	boxName := "ApduDataExtGroupPropertyValueWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
index bfc446d..30598ad 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtIndividualAddressSerialNumberRead) MarshalXML(e *xml.Encoder
 }
 
 func (m ApduDataExtIndividualAddressSerialNumberRead) String() string {
-	return string(m.Box("ApduDataExtIndividualAddressSerialNumberRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtIndividualAddressSerialNumberRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtIndividualAddressSerialNumberRead"
+	boxName := "ApduDataExtIndividualAddressSerialNumberRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
index 0b8508e..807076e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtIndividualAddressSerialNumberResponse) MarshalXML(e *xml.Enc
 }
 
 func (m ApduDataExtIndividualAddressSerialNumberResponse) String() string {
-	return string(m.Box("ApduDataExtIndividualAddressSerialNumberResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtIndividualAddressSerialNumberResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtIndividualAddressSerialNumberResponse"
+	boxName := "ApduDataExtIndividualAddressSerialNumberResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
index 0bdb06f..6e998b0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtIndividualAddressSerialNumberWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtIndividualAddressSerialNumberWrite) MarshalXML(e *xml.Encode
 }
 
 func (m ApduDataExtIndividualAddressSerialNumberWrite) String() string {
-	return string(m.Box("ApduDataExtIndividualAddressSerialNumberWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtIndividualAddressSerialNumberWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtIndividualAddressSerialNumberWrite"
+	boxName := "ApduDataExtIndividualAddressSerialNumberWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
index d9976b7..a1dc503 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtKeyResponse) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m ApduDataExtKeyResponse) String() string {
-	return string(m.Box("ApduDataExtKeyResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtKeyResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtKeyResponse"
+	boxName := "ApduDataExtKeyResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
index 22950d4..250530b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtKeyWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtKeyWrite) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ApduDataExtKeyWrite) String() string {
-	return string(m.Box("ApduDataExtKeyWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtKeyWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtKeyWrite"
+	boxName := "ApduDataExtKeyWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
index 5fda6f8..32f184e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtLinkRead) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ApduDataExtLinkRead) String() string {
-	return string(m.Box("ApduDataExtLinkRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtLinkRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtLinkRead"
+	boxName := "ApduDataExtLinkRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
index 0778c51..fccca2b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtLinkResponse) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m ApduDataExtLinkResponse) String() string {
-	return string(m.Box("ApduDataExtLinkResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtLinkResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtLinkResponse"
+	boxName := "ApduDataExtLinkResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
index 5c1ea1f..23295a8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtLinkWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtLinkWrite) MarshalXML(e *xml.Encoder, start xml.StartElement
 }
 
 func (m ApduDataExtLinkWrite) String() string {
-	return string(m.Box("ApduDataExtLinkWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtLinkWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtLinkWrite"
+	boxName := "ApduDataExtLinkWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
index 57f377f..fd18b45 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtMemoryBitWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtMemoryBitWrite) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m ApduDataExtMemoryBitWrite) String() string {
-	return string(m.Box("ApduDataExtMemoryBitWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtMemoryBitWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtMemoryBitWrite"
+	boxName := "ApduDataExtMemoryBitWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
index f5cdac6..2233b21 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtNetworkParameterRead) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m ApduDataExtNetworkParameterRead) String() string {
-	return string(m.Box("ApduDataExtNetworkParameterRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtNetworkParameterRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtNetworkParameterRead"
+	boxName := "ApduDataExtNetworkParameterRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
index 03fd45e..cf89beb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtNetworkParameterResponse) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ApduDataExtNetworkParameterResponse) String() string {
-	return string(m.Box("ApduDataExtNetworkParameterResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtNetworkParameterResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtNetworkParameterResponse"
+	boxName := "ApduDataExtNetworkParameterResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
index bf3579d..9e3126f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtNetworkParameterWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtNetworkParameterWrite) MarshalXML(e *xml.Encoder, start xml.
 }
 
 func (m ApduDataExtNetworkParameterWrite) String() string {
-	return string(m.Box("ApduDataExtNetworkParameterWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtNetworkParameterWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtNetworkParameterWrite"
+	boxName := "ApduDataExtNetworkParameterWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
index cd8606c..d4eff11 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtOpenRoutingTableRequest.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtOpenRoutingTableRequest) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m ApduDataExtOpenRoutingTableRequest) String() string {
-	return string(m.Box("ApduDataExtOpenRoutingTableRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtOpenRoutingTableRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtOpenRoutingTableRequest"
+	boxName := "ApduDataExtOpenRoutingTableRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
index be06832..f48d361 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionRead.go
@@ -227,19 +227,20 @@ func (m *ApduDataExtPropertyDescriptionRead) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m ApduDataExtPropertyDescriptionRead) String() string {
-	return string(m.Box("ApduDataExtPropertyDescriptionRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtPropertyDescriptionRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtPropertyDescriptionRead"
+	boxName := "ApduDataExtPropertyDescriptionRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectIndex", m.ObjectIndex, width-2))
 		boxes = append(boxes, utils.BoxAnything("PropertyId", m.PropertyId, width-2))
 		boxes = append(boxes, utils.BoxAnything("Index", m.Index, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
index 3c9e3ea..8d0e682 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyDescriptionResponse.go
@@ -415,14 +415,15 @@ func (m *ApduDataExtPropertyDescriptionResponse) MarshalXML(e *xml.Encoder, star
 }
 
 func (m ApduDataExtPropertyDescriptionResponse) String() string {
-	return string(m.Box("ApduDataExtPropertyDescriptionResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtPropertyDescriptionResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtPropertyDescriptionResponse"
+	boxName := "ApduDataExtPropertyDescriptionResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectIndex", m.ObjectIndex, width-2))
 		boxes = append(boxes, utils.BoxAnything("PropertyId", m.PropertyId, width-2))
@@ -434,5 +435,5 @@ func (m ApduDataExtPropertyDescriptionResponse) Box(name string, width int) util
 		boxes = append(boxes, utils.BoxAnything("WriteLevel", m.WriteLevel, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
index 3a9cbfc..b0848fb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueRead.go
@@ -255,14 +255,15 @@ func (m *ApduDataExtPropertyValueRead) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m ApduDataExtPropertyValueRead) String() string {
-	return string(m.Box("ApduDataExtPropertyValueRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtPropertyValueRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtPropertyValueRead"
+	boxName := "ApduDataExtPropertyValueRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectIndex", m.ObjectIndex, width-2))
 		boxes = append(boxes, utils.BoxAnything("PropertyId", m.PropertyId, width-2))
@@ -270,5 +271,5 @@ func (m ApduDataExtPropertyValueRead) Box(name string, width int) utils.AsciiBox
 		boxes = append(boxes, utils.BoxAnything("Index", m.Index, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
index 2a97def..f06e435 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueResponse.go
@@ -293,14 +293,15 @@ func (m *ApduDataExtPropertyValueResponse) MarshalXML(e *xml.Encoder, start xml.
 }
 
 func (m ApduDataExtPropertyValueResponse) String() string {
-	return string(m.Box("ApduDataExtPropertyValueResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtPropertyValueResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtPropertyValueResponse"
+	boxName := "ApduDataExtPropertyValueResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectIndex", m.ObjectIndex, width-2))
 		boxes = append(boxes, utils.BoxAnything("PropertyId", m.PropertyId, width-2))
@@ -309,5 +310,5 @@ func (m ApduDataExtPropertyValueResponse) Box(name string, width int) utils.Asci
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
index 5d600cc..2a7aa86 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtPropertyValueWrite.go
@@ -293,14 +293,15 @@ func (m *ApduDataExtPropertyValueWrite) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m ApduDataExtPropertyValueWrite) String() string {
-	return string(m.Box("ApduDataExtPropertyValueWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtPropertyValueWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtPropertyValueWrite"
+	boxName := "ApduDataExtPropertyValueWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ObjectIndex", m.ObjectIndex, width-2))
 		boxes = append(boxes, utils.BoxAnything("PropertyId", m.PropertyId, width-2))
@@ -309,5 +310,5 @@ func (m ApduDataExtPropertyValueWrite) Box(name string, width int) utils.AsciiBo
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
index 3c6b150..2748f53 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryRequest.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtReadRouterMemoryRequest) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m ApduDataExtReadRouterMemoryRequest) String() string {
-	return string(m.Box("ApduDataExtReadRouterMemoryRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtReadRouterMemoryRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtReadRouterMemoryRequest"
+	boxName := "ApduDataExtReadRouterMemoryRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
index ac7d521..f470246 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterMemoryResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtReadRouterMemoryResponse) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ApduDataExtReadRouterMemoryResponse) String() string {
-	return string(m.Box("ApduDataExtReadRouterMemoryResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtReadRouterMemoryResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtReadRouterMemoryResponse"
+	boxName := "ApduDataExtReadRouterMemoryResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
index cb342e0..b92a3f0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusRequest.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtReadRouterStatusRequest) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m ApduDataExtReadRouterStatusRequest) String() string {
-	return string(m.Box("ApduDataExtReadRouterStatusRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtReadRouterStatusRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtReadRouterStatusRequest"
+	boxName := "ApduDataExtReadRouterStatusRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
index 79745d5..33b486b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRouterStatusResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtReadRouterStatusResponse) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ApduDataExtReadRouterStatusResponse) String() string {
-	return string(m.Box("ApduDataExtReadRouterStatusResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtReadRouterStatusResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtReadRouterStatusResponse"
+	boxName := "ApduDataExtReadRouterStatusResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
index b1acede..f0022f2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableRequest.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtReadRoutingTableRequest) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m ApduDataExtReadRoutingTableRequest) String() string {
-	return string(m.Box("ApduDataExtReadRoutingTableRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtReadRoutingTableRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtReadRoutingTableRequest"
+	boxName := "ApduDataExtReadRoutingTableRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
index 979c251..c005f50 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtReadRoutingTableResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtReadRoutingTableResponse) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ApduDataExtReadRoutingTableResponse) String() string {
-	return string(m.Box("ApduDataExtReadRoutingTableResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtReadRoutingTableResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtReadRoutingTableResponse"
+	boxName := "ApduDataExtReadRoutingTableResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
index e172a7c..c572935 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterMemoryRequest.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtWriteRouterMemoryRequest) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ApduDataExtWriteRouterMemoryRequest) String() string {
-	return string(m.Box("ApduDataExtWriteRouterMemoryRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtWriteRouterMemoryRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtWriteRouterMemoryRequest"
+	boxName := "ApduDataExtWriteRouterMemoryRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
index b04f8db..ab9c419 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRouterStatusRequest.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtWriteRouterStatusRequest) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ApduDataExtWriteRouterStatusRequest) String() string {
-	return string(m.Box("ApduDataExtWriteRouterStatusRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtWriteRouterStatusRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtWriteRouterStatusRequest"
+	boxName := "ApduDataExtWriteRouterStatusRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
index 4923226..2a9a7ce 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExtWriteRoutingTableRequest.go
@@ -142,16 +142,17 @@ func (m *ApduDataExtWriteRoutingTableRequest) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ApduDataExtWriteRoutingTableRequest) String() string {
-	return string(m.Box("ApduDataExtWriteRoutingTableRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataExtWriteRoutingTableRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataExtWriteRoutingTableRequest"
+	boxName := "ApduDataExtWriteRoutingTableRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
index e286f20..ab4fc75 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueRead.go
@@ -169,16 +169,17 @@ func (m *ApduDataGroupValueRead) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m ApduDataGroupValueRead) String() string {
-	return string(m.Box("ApduDataGroupValueRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataGroupValueRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataGroupValueRead"
+	boxName := "ApduDataGroupValueRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
index a660b28..ed304fa 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueResponse.go
@@ -218,18 +218,19 @@ func (m *ApduDataGroupValueResponse) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m ApduDataGroupValueResponse) String() string {
-	return string(m.Box("ApduDataGroupValueResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataGroupValueResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataGroupValueResponse"
+	boxName := "ApduDataGroupValueResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DataFirstByte", m.DataFirstByte, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
index 070933e..0e85e23 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataGroupValueWrite.go
@@ -218,18 +218,19 @@ func (m *ApduDataGroupValueWrite) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m ApduDataGroupValueWrite) String() string {
-	return string(m.Box("ApduDataGroupValueWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataGroupValueWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataGroupValueWrite"
+	boxName := "ApduDataGroupValueWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DataFirstByte", m.DataFirstByte, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
index aeea76f..edcdcd5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressRead.go
@@ -142,16 +142,17 @@ func (m *ApduDataIndividualAddressRead) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m ApduDataIndividualAddressRead) String() string {
-	return string(m.Box("ApduDataIndividualAddressRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataIndividualAddressRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataIndividualAddressRead"
+	boxName := "ApduDataIndividualAddressRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
index 319ac92..19707d8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressResponse.go
@@ -142,16 +142,17 @@ func (m *ApduDataIndividualAddressResponse) MarshalXML(e *xml.Encoder, start xml
 }
 
 func (m ApduDataIndividualAddressResponse) String() string {
-	return string(m.Box("ApduDataIndividualAddressResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataIndividualAddressResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataIndividualAddressResponse"
+	boxName := "ApduDataIndividualAddressResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
index 00cc855..7c3042a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataIndividualAddressWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataIndividualAddressWrite) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m ApduDataIndividualAddressWrite) String() string {
-	return string(m.Box("ApduDataIndividualAddressWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataIndividualAddressWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataIndividualAddressWrite"
+	boxName := "ApduDataIndividualAddressWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
index 359aace..d179b48 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryRead.go
@@ -199,18 +199,19 @@ func (m *ApduDataMemoryRead) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ApduDataMemoryRead) String() string {
-	return string(m.Box("ApduDataMemoryRead", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataMemoryRead) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataMemoryRead"
+	boxName := "ApduDataMemoryRead"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("NumBytes", m.NumBytes, width-2))
 		boxes = append(boxes, utils.BoxAnything("Address", m.Address, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
index 8e889a0..39556bb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryResponse.go
@@ -226,18 +226,19 @@ func (m *ApduDataMemoryResponse) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m ApduDataMemoryResponse) String() string {
-	return string(m.Box("ApduDataMemoryResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataMemoryResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataMemoryResponse"
+	boxName := "ApduDataMemoryResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Address", m.Address, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
index 525b7f9..a116ace 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataMemoryWrite.go
@@ -142,16 +142,17 @@ func (m *ApduDataMemoryWrite) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ApduDataMemoryWrite) String() string {
-	return string(m.Box("ApduDataMemoryWrite", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataMemoryWrite) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataMemoryWrite"
+	boxName := "ApduDataMemoryWrite"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
index 2fe4668..7728261 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataOther.go
@@ -173,17 +173,18 @@ func (m *ApduDataOther) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m ApduDataOther) String() string {
-	return string(m.Box("ApduDataOther", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataOther) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataOther"
+	boxName := "ApduDataOther"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ExtendedApdu", m.ExtendedApdu, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
index 13b7d78..d291f53 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataRestart.go
@@ -142,16 +142,17 @@ func (m *ApduDataRestart) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m ApduDataRestart) String() string {
-	return string(m.Box("ApduDataRestart", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataRestart) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataRestart"
+	boxName := "ApduDataRestart"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
index 4dfeb24..179d8c6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataUserMessage.go
@@ -142,16 +142,17 @@ func (m *ApduDataUserMessage) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ApduDataUserMessage) String() string {
-	return string(m.Box("ApduDataUserMessage", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ApduDataUserMessage) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ApduDataUserMessage"
+	boxName := "ApduDataUserMessage"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
index 5bb0391..5487d85 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
@@ -647,18 +647,19 @@ func (m *CEMI) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m CEMI) String() string {
-	return string(m.Box("CEMI", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *CEMI) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *CEMI) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "CEMI"
+func (m *CEMI) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "CEMI"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
index 63fae4f..4cbf038 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
@@ -234,18 +234,19 @@ func (m *CEMIAdditionalInformation) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m CEMIAdditionalInformation) String() string {
-	return string(m.Box("CEMIAdditionalInformation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *CEMIAdditionalInformation) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *CEMIAdditionalInformation) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "CEMIAdditionalInformation"
+func (m *CEMIAdditionalInformation) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "CEMIAdditionalInformation"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
index 0d094c6..d7b46f2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
@@ -333,14 +333,15 @@ func (m *CEMIAdditionalInformationBusmonitorInfo) MarshalXML(e *xml.Encoder, sta
 }
 
 func (m CEMIAdditionalInformationBusmonitorInfo) String() string {
-	return string(m.Box("CEMIAdditionalInformationBusmonitorInfo", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m CEMIAdditionalInformationBusmonitorInfo) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "CEMIAdditionalInformationBusmonitorInfo"
+	boxName := "CEMIAdditionalInformationBusmonitorInfo"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("FrameErrorFlag", m.FrameErrorFlag, width-2))
 		boxes = append(boxes, utils.BoxAnything("BitErrorFlag", m.BitErrorFlag, width-2))
@@ -350,5 +351,5 @@ func (m CEMIAdditionalInformationBusmonitorInfo) Box(name string, width int) uti
 		boxes = append(boxes, utils.BoxAnything("SequenceNumber", m.SequenceNumber, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
index 79c3a3d..31b6276 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
@@ -192,17 +192,18 @@ func (m *CEMIAdditionalInformationRelativeTimestamp) MarshalXML(e *xml.Encoder,
 }
 
 func (m CEMIAdditionalInformationRelativeTimestamp) String() string {
-	return string(m.Box("CEMIAdditionalInformationRelativeTimestamp", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m CEMIAdditionalInformationRelativeTimestamp) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "CEMIAdditionalInformationRelativeTimestamp"
+	boxName := "CEMIAdditionalInformationRelativeTimestamp"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("RelativeTimestamp", m.RelativeTimestamp, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ChannelInformation.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ChannelInformation.go
index d7ab5d6..a3eda07 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ChannelInformation.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ChannelInformation.go
@@ -175,15 +175,16 @@ func (m *ChannelInformation) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ChannelInformation) String() string {
-	return string(m.Box("ChannelInformation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ChannelInformation) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ChannelInformation"
+	boxName := "ChannelInformation"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("NumChannels", m.NumChannels, width-2))
 	boxes = append(boxes, utils.BoxAnything("ChannelCode", m.ChannelCode, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go
index ac14d43..89cc03e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go
@@ -232,18 +232,19 @@ func (m *ComObjectTable) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m ComObjectTable) String() string {
-	return string(m.Box("ComObjectTable", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ComObjectTable) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ComObjectTable) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ComObjectTable"
+func (m *ComObjectTable) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ComObjectTable"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
index 08f8701..60ec23d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType1.go
@@ -248,19 +248,20 @@ func (m *ComObjectTableRealisationType1) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m ComObjectTableRealisationType1) String() string {
-	return string(m.Box("ComObjectTableRealisationType1", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ComObjectTableRealisationType1) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ComObjectTableRealisationType1"
+	boxName := "ComObjectTableRealisationType1"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("NumEntries", m.NumEntries, width-2))
 		boxes = append(boxes, utils.BoxAnything("RamFlagsTablePointer", m.RamFlagsTablePointer, width-2))
 		boxes = append(boxes, utils.BoxAnything("ComObjectDescriptors", m.ComObjectDescriptors, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
index 14398e7..dc37d9e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType2.go
@@ -248,19 +248,20 @@ func (m *ComObjectTableRealisationType2) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m ComObjectTableRealisationType2) String() string {
-	return string(m.Box("ComObjectTableRealisationType2", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ComObjectTableRealisationType2) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ComObjectTableRealisationType2"
+	boxName := "ComObjectTableRealisationType2"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("NumEntries", m.NumEntries, width-2))
 		boxes = append(boxes, utils.BoxAnything("RamFlagsTablePointer", m.RamFlagsTablePointer, width-2))
 		boxes = append(boxes, utils.BoxAnything("ComObjectDescriptors", m.ComObjectDescriptors, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
index 4b6172c..4404181 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
@@ -170,17 +170,18 @@ func (m *ComObjectTableRealisationType6) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m ComObjectTableRealisationType6) String() string {
-	return string(m.Box("ComObjectTableRealisationType6", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ComObjectTableRealisationType6) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ComObjectTableRealisationType6"
+	boxName := "ComObjectTableRealisationType6"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ComObjectDescriptors", m.ComObjectDescriptors, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
index 11d4ae9..4380a0e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
@@ -227,19 +227,20 @@ func (m *ConnectionRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m ConnectionRequest) String() string {
-	return string(m.Box("ConnectionRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionRequest"
+	boxName := "ConnectionRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("HpaiDiscoveryEndpoint", m.HpaiDiscoveryEndpoint, width-2))
 		boxes = append(boxes, utils.BoxAnything("HpaiDataEndpoint", m.HpaiDataEndpoint, width-2))
 		boxes = append(boxes, utils.BoxAnything("ConnectionRequestInformation", m.ConnectionRequestInformation, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
index a63814b..78a9c9a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
@@ -258,18 +258,19 @@ func (m *ConnectionRequestInformation) MarshalXML(e *xml.Encoder, start xml.Star
 }
 
 func (m ConnectionRequestInformation) String() string {
-	return string(m.Box("ConnectionRequestInformation", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ConnectionRequestInformation) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ConnectionRequestInformation) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionRequestInformation"
+func (m *ConnectionRequestInformation) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ConnectionRequestInformation"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
index 0ded65a..c17efef 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
@@ -142,16 +142,17 @@ func (m *ConnectionRequestInformationDeviceManagement) MarshalXML(e *xml.Encoder
 }
 
 func (m ConnectionRequestInformationDeviceManagement) String() string {
-	return string(m.Box("ConnectionRequestInformationDeviceManagement", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionRequestInformationDeviceManagement) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionRequestInformationDeviceManagement"
+	boxName := "ConnectionRequestInformationDeviceManagement"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
index 49316ae..7fa6eef 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
@@ -196,17 +196,18 @@ func (m *ConnectionRequestInformationTunnelConnection) MarshalXML(e *xml.Encoder
 }
 
 func (m ConnectionRequestInformationTunnelConnection) String() string {
-	return string(m.Box("ConnectionRequestInformationTunnelConnection", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionRequestInformationTunnelConnection) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionRequestInformationTunnelConnection"
+	boxName := "ConnectionRequestInformationTunnelConnection"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("KnxLayer", m.KnxLayer, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
index 6ca54e3..4889e9b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
@@ -275,14 +275,15 @@ func (m *ConnectionResponse) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m ConnectionResponse) String() string {
-	return string(m.Box("ConnectionResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionResponse"
+	boxName := "ConnectionResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 		boxes = append(boxes, utils.BoxAnything("Status", m.Status, width-2))
@@ -290,5 +291,5 @@ func (m ConnectionResponse) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("ConnectionResponseDataBlock", m.ConnectionResponseDataBlock, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
index 6351036..3998573 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
@@ -258,18 +258,19 @@ func (m *ConnectionResponseDataBlock) MarshalXML(e *xml.Encoder, start xml.Start
 }
 
 func (m ConnectionResponseDataBlock) String() string {
-	return string(m.Box("ConnectionResponseDataBlock", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ConnectionResponseDataBlock) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ConnectionResponseDataBlock) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionResponseDataBlock"
+func (m *ConnectionResponseDataBlock) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ConnectionResponseDataBlock"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
index 72b6f25..1b5755a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
@@ -142,16 +142,17 @@ func (m *ConnectionResponseDataBlockDeviceManagement) MarshalXML(e *xml.Encoder,
 }
 
 func (m ConnectionResponseDataBlockDeviceManagement) String() string {
-	return string(m.Box("ConnectionResponseDataBlockDeviceManagement", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionResponseDataBlockDeviceManagement) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionResponseDataBlockDeviceManagement"
+	boxName := "ConnectionResponseDataBlockDeviceManagement"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
index b6c2c8b..4f37ee0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
@@ -170,17 +170,18 @@ func (m *ConnectionResponseDataBlockTunnelConnection) MarshalXML(e *xml.Encoder,
 }
 
 func (m ConnectionResponseDataBlockTunnelConnection) String() string {
-	return string(m.Box("ConnectionResponseDataBlockTunnelConnection", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionResponseDataBlockTunnelConnection) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionResponseDataBlockTunnelConnection"
+	boxName := "ConnectionResponseDataBlockTunnelConnection"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("KnxAddress", m.KnxAddress, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
index 0803fb7..da6cefa 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
@@ -224,18 +224,19 @@ func (m *ConnectionStateRequest) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m ConnectionStateRequest) String() string {
-	return string(m.Box("ConnectionStateRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionStateRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionStateRequest"
+	boxName := "ConnectionStateRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 		boxes = append(boxes, utils.BoxAnything("HpaiControlEndpoint", m.HpaiControlEndpoint, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
index cecc726..3940e51 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
@@ -198,18 +198,19 @@ func (m *ConnectionStateResponse) MarshalXML(e *xml.Encoder, start xml.StartElem
 }
 
 func (m ConnectionStateResponse) String() string {
-	return string(m.Box("ConnectionStateResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ConnectionStateResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ConnectionStateResponse"
+	boxName := "ConnectionStateResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 		boxes = append(boxes, utils.BoxAnything("Status", m.Status, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
index 750d135..b25a1d0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
@@ -404,12 +404,13 @@ func (m *DIBDeviceInfo) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m DIBDeviceInfo) String() string {
-	return string(m.Box("DIBDeviceInfo", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DIBDeviceInfo) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DIBDeviceInfo"
+	boxName := "DIBDeviceInfo"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("DescriptionType", m.DescriptionType, width-2))
@@ -421,5 +422,5 @@ func (m DIBDeviceInfo) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("KnxNetIpDeviceMulticastAddress", m.KnxNetIpDeviceMulticastAddress, width-2))
 	boxes = append(boxes, utils.BoxAnything("KnxNetIpDeviceMacAddress", m.KnxNetIpDeviceMacAddress, width-2))
 	boxes = append(boxes, utils.BoxAnything("DeviceFriendlyName", m.DeviceFriendlyName, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go
index e9859eb..9fe2817 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go
@@ -224,15 +224,16 @@ func (m *DIBSuppSvcFamilies) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m DIBSuppSvcFamilies) String() string {
-	return string(m.Box("DIBSuppSvcFamilies", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DIBSuppSvcFamilies) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DIBSuppSvcFamilies"
+	boxName := "DIBSuppSvcFamilies"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("DescriptionType", m.DescriptionType, width-2))
 	boxes = append(boxes, utils.BoxAnything("ServiceIds", m.ServiceIds, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
index b895b39..79b40e0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
@@ -170,17 +170,18 @@ func (m *DescriptionRequest) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m DescriptionRequest) String() string {
-	return string(m.Box("DescriptionRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DescriptionRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DescriptionRequest"
+	boxName := "DescriptionRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("HpaiControlEndpoint", m.HpaiControlEndpoint, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
index d703ada..411675f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
@@ -197,18 +197,19 @@ func (m *DescriptionResponse) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m DescriptionResponse) String() string {
-	return string(m.Box("DescriptionResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DescriptionResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DescriptionResponse"
+	boxName := "DescriptionResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DibDeviceInfo", m.DibDeviceInfo, width-2))
 		boxes = append(boxes, utils.BoxAnything("DibSuppSvcFamilies", m.DibSuppSvcFamilies, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
index e6df3ca..17e1899 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
@@ -170,17 +170,18 @@ func (m *DeviceConfigurationAck) MarshalXML(e *xml.Encoder, start xml.StartEleme
 }
 
 func (m DeviceConfigurationAck) String() string {
-	return string(m.Box("DeviceConfigurationAck", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DeviceConfigurationAck) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DeviceConfigurationAck"
+	boxName := "DeviceConfigurationAck"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DeviceConfigurationAckDataBlock", m.DeviceConfigurationAckDataBlock, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go
index f6a7008..d40bbb4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go
@@ -217,16 +217,17 @@ func (m *DeviceConfigurationAckDataBlock) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m DeviceConfigurationAckDataBlock) String() string {
-	return string(m.Box("DeviceConfigurationAckDataBlock", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DeviceConfigurationAckDataBlock) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DeviceConfigurationAckDataBlock"
+	boxName := "DeviceConfigurationAckDataBlock"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 	boxes = append(boxes, utils.BoxAnything("SequenceCounter", m.SequenceCounter, width-2))
 	boxes = append(boxes, utils.BoxAnything("Status", m.Status, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
index 6b97a95..84ee79b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
@@ -200,18 +200,19 @@ func (m *DeviceConfigurationRequest) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m DeviceConfigurationRequest) String() string {
-	return string(m.Box("DeviceConfigurationRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DeviceConfigurationRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DeviceConfigurationRequest"
+	boxName := "DeviceConfigurationRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("DeviceConfigurationRequestDataBlock", m.DeviceConfigurationRequestDataBlock, width-2))
 		boxes = append(boxes, utils.BoxAnything("Cemi", m.Cemi, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go
index cc41dac..ba986cb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go
@@ -218,15 +218,16 @@ func (m *DeviceConfigurationRequestDataBlock) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m DeviceConfigurationRequestDataBlock) String() string {
-	return string(m.Box("DeviceConfigurationRequestDataBlock", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DeviceConfigurationRequestDataBlock) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DeviceConfigurationRequestDataBlock"
+	boxName := "DeviceConfigurationRequestDataBlock"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 	boxes = append(boxes, utils.BoxAnything("SequenceCounter", m.SequenceCounter, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go
index db56648..e3cc311 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go
@@ -379,12 +379,13 @@ func (m *DeviceDescriptorType2) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m DeviceDescriptorType2) String() string {
-	return string(m.Box("DeviceDescriptorType2", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DeviceDescriptorType2) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DeviceDescriptorType2"
+	boxName := "DeviceDescriptorType2"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("ManufacturerId", m.ManufacturerId, width-2))
@@ -397,5 +398,5 @@ func (m DeviceDescriptorType2) Box(name string, width int) utils.AsciiBox {
 	boxes = append(boxes, utils.BoxAnything("ChannelInfo2", m.ChannelInfo2, width-2))
 	boxes = append(boxes, utils.BoxAnything("ChannelInfo3", m.ChannelInfo3, width-2))
 	boxes = append(boxes, utils.BoxAnything("ChannelInfo4", m.ChannelInfo4, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go
index 7750507..2e2b9aa 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go
@@ -175,14 +175,15 @@ func (m *DeviceStatus) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m DeviceStatus) String() string {
-	return string(m.Box("DeviceStatus", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DeviceStatus) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DeviceStatus"
+	boxName := "DeviceStatus"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("ProgramMode", m.ProgramMode, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
index 1c33587..35876de 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
@@ -224,18 +224,19 @@ func (m *DisconnectRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m DisconnectRequest) String() string {
-	return string(m.Box("DisconnectRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DisconnectRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DisconnectRequest"
+	boxName := "DisconnectRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 		boxes = append(boxes, utils.BoxAnything("HpaiControlEndpoint", m.HpaiControlEndpoint, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
index 5a7c6b0..2a0c9ef 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
@@ -198,18 +198,19 @@ func (m *DisconnectResponse) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m DisconnectResponse) String() string {
-	return string(m.Box("DisconnectResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m DisconnectResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "DisconnectResponse"
+	boxName := "DisconnectResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 		boxes = append(boxes, utils.BoxAnything("Status", m.Status, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType1.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType1.go
index 28a8abf..6f55d5c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType1.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType1.go
@@ -355,12 +355,13 @@ func (m *GroupObjectDescriptorRealisationType1) MarshalXML(e *xml.Encoder, start
 }
 
 func (m GroupObjectDescriptorRealisationType1) String() string {
-	return string(m.Box("GroupObjectDescriptorRealisationType1", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m GroupObjectDescriptorRealisationType1) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "GroupObjectDescriptorRealisationType1"
+	boxName := "GroupObjectDescriptorRealisationType1"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("DataPointer", m.DataPointer, width-2))
@@ -371,5 +372,5 @@ func (m GroupObjectDescriptorRealisationType1) Box(name string, width int) utils
 	boxes = append(boxes, utils.BoxAnything("CommunicationEnable", m.CommunicationEnable, width-2))
 	boxes = append(boxes, utils.BoxAnything("Priority", m.Priority, width-2))
 	boxes = append(boxes, utils.BoxAnything("ValueType", m.ValueType, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType2.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType2.go
index de4a3c4..48c5686 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType2.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType2.go
@@ -355,12 +355,13 @@ func (m *GroupObjectDescriptorRealisationType2) MarshalXML(e *xml.Encoder, start
 }
 
 func (m GroupObjectDescriptorRealisationType2) String() string {
-	return string(m.Box("GroupObjectDescriptorRealisationType2", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m GroupObjectDescriptorRealisationType2) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "GroupObjectDescriptorRealisationType2"
+	boxName := "GroupObjectDescriptorRealisationType2"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("DataPointer", m.DataPointer, width-2))
@@ -372,5 +373,5 @@ func (m GroupObjectDescriptorRealisationType2) Box(name string, width int) utils
 	boxes = append(boxes, utils.BoxAnything("CommunicationEnable", m.CommunicationEnable, width-2))
 	boxes = append(boxes, utils.BoxAnything("Priority", m.Priority, width-2))
 	boxes = append(boxes, utils.BoxAnything("ValueType", m.ValueType, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType6.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType6.go
index ccb48c5..4b179cc 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType6.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType6.go
@@ -122,13 +122,14 @@ func (m *GroupObjectDescriptorRealisationType6) MarshalXML(e *xml.Encoder, start
 }
 
 func (m GroupObjectDescriptorRealisationType6) String() string {
-	return string(m.Box("GroupObjectDescriptorRealisationType6", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m GroupObjectDescriptorRealisationType6) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "GroupObjectDescriptorRealisationType6"
+	boxName := "GroupObjectDescriptorRealisationType6"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType7.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType7.go
index 5a27a32..3d97f35 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType7.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationType7.go
@@ -355,12 +355,13 @@ func (m *GroupObjectDescriptorRealisationType7) MarshalXML(e *xml.Encoder, start
 }
 
 func (m GroupObjectDescriptorRealisationType7) String() string {
-	return string(m.Box("GroupObjectDescriptorRealisationType7", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m GroupObjectDescriptorRealisationType7) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "GroupObjectDescriptorRealisationType7"
+	boxName := "GroupObjectDescriptorRealisationType7"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("DataAddress", m.DataAddress, width-2))
@@ -372,5 +373,5 @@ func (m GroupObjectDescriptorRealisationType7) Box(name string, width int) utils
 	boxes = append(boxes, utils.BoxAnything("CommunicationEnable", m.CommunicationEnable, width-2))
 	boxes = append(boxes, utils.BoxAnything("Priority", m.Priority, width-2))
 	boxes = append(boxes, utils.BoxAnything("ValueType", m.ValueType, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationTypeB.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationTypeB.go
index 1f79bac..fcf893d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationTypeB.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/GroupObjectDescriptorRealisationTypeB.go
@@ -329,12 +329,13 @@ func (m *GroupObjectDescriptorRealisationTypeB) MarshalXML(e *xml.Encoder, start
 }
 
 func (m GroupObjectDescriptorRealisationTypeB) String() string {
-	return string(m.Box("GroupObjectDescriptorRealisationTypeB", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m GroupObjectDescriptorRealisationTypeB) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "GroupObjectDescriptorRealisationTypeB"
+	boxName := "GroupObjectDescriptorRealisationTypeB"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("UpdateEnable", m.UpdateEnable, width-2))
@@ -345,5 +346,5 @@ func (m GroupObjectDescriptorRealisationTypeB) Box(name string, width int) utils
 	boxes = append(boxes, utils.BoxAnything("CommunicationEnable", m.CommunicationEnable, width-2))
 	boxes = append(boxes, utils.BoxAnything("Priority", m.Priority, width-2))
 	boxes = append(boxes, utils.BoxAnything("ValueType", m.ValueType, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
index f6810fd..2a3c546 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
@@ -216,16 +216,17 @@ func (m *HPAIControlEndpoint) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m HPAIControlEndpoint) String() string {
-	return string(m.Box("HPAIControlEndpoint", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m HPAIControlEndpoint) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "HPAIControlEndpoint"
+	boxName := "HPAIControlEndpoint"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("HostProtocolCode", m.HostProtocolCode, width-2))
 	boxes = append(boxes, utils.BoxAnything("IpAddress", m.IpAddress, width-2))
 	boxes = append(boxes, utils.BoxAnything("IpPort", m.IpPort, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
index 943121a..46df302 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
@@ -216,16 +216,17 @@ func (m *HPAIDataEndpoint) MarshalXML(e *xml.Encoder, start xml.StartElement) er
 }
 
 func (m HPAIDataEndpoint) String() string {
-	return string(m.Box("HPAIDataEndpoint", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m HPAIDataEndpoint) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "HPAIDataEndpoint"
+	boxName := "HPAIDataEndpoint"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("HostProtocolCode", m.HostProtocolCode, width-2))
 	boxes = append(boxes, utils.BoxAnything("IpAddress", m.IpAddress, width-2))
 	boxes = append(boxes, utils.BoxAnything("IpPort", m.IpPort, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
index 0998395..d7df176 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
@@ -216,16 +216,17 @@ func (m *HPAIDiscoveryEndpoint) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m HPAIDiscoveryEndpoint) String() string {
-	return string(m.Box("HPAIDiscoveryEndpoint", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m HPAIDiscoveryEndpoint) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "HPAIDiscoveryEndpoint"
+	boxName := "HPAIDiscoveryEndpoint"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("HostProtocolCode", m.HostProtocolCode, width-2))
 	boxes = append(boxes, utils.BoxAnything("IpAddress", m.IpAddress, width-2))
 	boxes = append(boxes, utils.BoxAnything("IpPort", m.IpPort, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
index 20a6b7d..af2d11a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
@@ -168,14 +168,15 @@ func (m *IPAddress) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m IPAddress) String() string {
-	return string(m.Box("IPAddress", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m IPAddress) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "IPAddress"
+	boxName := "IPAddress"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Addr", m.Addr, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxAddress.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxAddress.go
index e0686dc..a67a1fe 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxAddress.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxAddress.go
@@ -201,16 +201,17 @@ func (m *KnxAddress) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m KnxAddress) String() string {
-	return string(m.Box("KnxAddress", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxAddress) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxAddress"
+	boxName := "KnxAddress"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("MainGroup", m.MainGroup, width-2))
 	boxes = append(boxes, utils.BoxAnything("MiddleGroup", m.MiddleGroup, width-2))
 	boxes = append(boxes, utils.BoxAnything("SubGroup", m.SubGroup, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go
index b720cfb..bbbf14b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go
@@ -232,18 +232,19 @@ func (m *KnxGroupAddress) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m KnxGroupAddress) String() string {
-	return string(m.Box("KnxGroupAddress", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *KnxGroupAddress) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *KnxGroupAddress) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "KnxGroupAddress"
+func (m *KnxGroupAddress) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "KnxGroupAddress"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
index 24ff5d2..1dc1fed 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress2Level.go
@@ -199,18 +199,19 @@ func (m *KnxGroupAddress2Level) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m KnxGroupAddress2Level) String() string {
-	return string(m.Box("KnxGroupAddress2Level", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxGroupAddress2Level) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxGroupAddress2Level"
+	boxName := "KnxGroupAddress2Level"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("MainGroup", m.MainGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("SubGroup", m.SubGroup, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
index 0a493c5..3580eb5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress3Level.go
@@ -227,19 +227,20 @@ func (m *KnxGroupAddress3Level) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m KnxGroupAddress3Level) String() string {
-	return string(m.Box("KnxGroupAddress3Level", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxGroupAddress3Level) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxGroupAddress3Level"
+	boxName := "KnxGroupAddress3Level"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("MainGroup", m.MainGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("MiddleGroup", m.MiddleGroup, width-2))
 		boxes = append(boxes, utils.BoxAnything("SubGroup", m.SubGroup, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
index 22ade2d..2f9c2e9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddressFreeLevel.go
@@ -171,17 +171,18 @@ func (m *KnxGroupAddressFreeLevel) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m KnxGroupAddressFreeLevel) String() string {
-	return string(m.Box("KnxGroupAddressFreeLevel", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxGroupAddressFreeLevel) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxGroupAddressFreeLevel"
+	boxName := "KnxGroupAddressFreeLevel"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SubGroup", m.SubGroup, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
index fc49df1..f6ac74e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
@@ -171,17 +171,18 @@ func (m *KnxNetIpCore) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m KnxNetIpCore) String() string {
-	return string(m.Box("KnxNetIpCore", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxNetIpCore) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetIpCore"
+	boxName := "KnxNetIpCore"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Version", m.Version, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
index 66fc2c8..0c894ba 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
@@ -171,17 +171,18 @@ func (m *KnxNetIpDeviceManagement) MarshalXML(e *xml.Encoder, start xml.StartEle
 }
 
 func (m KnxNetIpDeviceManagement) String() string {
-	return string(m.Box("KnxNetIpDeviceManagement", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxNetIpDeviceManagement) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetIpDeviceManagement"
+	boxName := "KnxNetIpDeviceManagement"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Version", m.Version, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
index 43a0c25..881272b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
@@ -493,18 +493,19 @@ func (m *KnxNetIpMessage) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m KnxNetIpMessage) String() string {
-	return string(m.Box("KnxNetIpMessage", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *KnxNetIpMessage) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *KnxNetIpMessage) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetIpMessage"
+func (m *KnxNetIpMessage) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "KnxNetIpMessage"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
index cd07a10..3d01c9e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpRouting.go
@@ -171,17 +171,18 @@ func (m *KnxNetIpRouting) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m KnxNetIpRouting) String() string {
-	return string(m.Box("KnxNetIpRouting", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxNetIpRouting) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetIpRouting"
+	boxName := "KnxNetIpRouting"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Version", m.Version, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
index 082b09e..421c157 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
@@ -171,17 +171,18 @@ func (m *KnxNetIpTunneling) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m KnxNetIpTunneling) String() string {
-	return string(m.Box("KnxNetIpTunneling", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxNetIpTunneling) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetIpTunneling"
+	boxName := "KnxNetIpTunneling"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Version", m.Version, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
index 18b0381..f27f816 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
@@ -171,17 +171,18 @@ func (m *KnxNetObjectServer) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m KnxNetObjectServer) String() string {
-	return string(m.Box("KnxNetObjectServer", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxNetObjectServer) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetObjectServer"
+	boxName := "KnxNetObjectServer"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Version", m.Version, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
index 589885f..9dc121b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
@@ -171,17 +171,18 @@ func (m *KnxNetRemoteConfigurationAndDiagnosis) MarshalXML(e *xml.Encoder, start
 }
 
 func (m KnxNetRemoteConfigurationAndDiagnosis) String() string {
-	return string(m.Box("KnxNetRemoteConfigurationAndDiagnosis", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxNetRemoteConfigurationAndDiagnosis) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetRemoteConfigurationAndDiagnosis"
+	boxName := "KnxNetRemoteConfigurationAndDiagnosis"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Version", m.Version, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
index 9ea4dff..bca1310 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
@@ -171,17 +171,18 @@ func (m *KnxNetRemoteLogging) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m KnxNetRemoteLogging) String() string {
-	return string(m.Box("KnxNetRemoteLogging", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m KnxNetRemoteLogging) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "KnxNetRemoteLogging"
+	boxName := "KnxNetRemoteLogging"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Version", m.Version, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
index c7604ea..b7849a6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
@@ -307,14 +307,15 @@ func (m *LBusmonInd) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LBusmonInd) String() string {
-	return string(m.Box("LBusmonInd", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LBusmonInd) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LBusmonInd"
+	boxName := "LBusmonInd"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformationLength", m.AdditionalInformationLength, width-2))
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformation", m.AdditionalInformation, width-2))
@@ -322,5 +323,5 @@ func (m LBusmonInd) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("Crc", m.Crc, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
index 3b3b665..5fdcfa8 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataCon.go
@@ -261,19 +261,20 @@ func (m *LDataCon) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LDataCon) String() string {
-	return string(m.Box("LDataCon", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LDataCon) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LDataCon"
+	boxName := "LDataCon"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformationLength", m.AdditionalInformationLength, width-2))
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformation", m.AdditionalInformation, width-2))
 		boxes = append(boxes, utils.BoxAnything("DataFrame", m.DataFrame, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
index e15402b..a00f8bf 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
@@ -357,14 +357,15 @@ func (m *LDataExtended) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m LDataExtended) String() string {
-	return string(m.Box("LDataExtended", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LDataExtended) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LDataExtended"
+	boxName := "LDataExtended"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("GroupAddress", m.GroupAddress, width-2))
 		boxes = append(boxes, utils.BoxAnything("HopCount", m.HopCount, width-2))
@@ -374,5 +375,5 @@ func (m LDataExtended) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("Apdu", m.Apdu, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go
index 85956d9..b8c3586 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go
@@ -402,16 +402,17 @@ func (m *LDataFrame) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LDataFrame) String() string {
-	return string(m.Box("LDataFrame", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *LDataFrame) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *LDataFrame) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "LDataFrame"
+func (m *LDataFrame) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "LDataFrame"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("FrameType", m.FrameType, width-2))
@@ -419,6 +420,6 @@ func (m *LDataFrame) BoxParent(name string, width int, boxChild func() []utils.A
 	boxes = append(boxes, utils.BoxAnything("Priority", m.Priority, width-2))
 	boxes = append(boxes, utils.BoxAnything("AcknowledgeRequested", m.AcknowledgeRequested, width-2))
 	boxes = append(boxes, utils.BoxAnything("ErrorFlag", m.ErrorFlag, width-2))
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go
index 5fe366b..34ee9e0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrameACK.go
@@ -151,16 +151,17 @@ func (m *LDataFrameACK) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m LDataFrameACK) String() string {
-	return string(m.Box("LDataFrameACK", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LDataFrameACK) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LDataFrameACK"
+	boxName := "LDataFrameACK"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
index 85541d4..b3d07af 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataInd.go
@@ -261,19 +261,20 @@ func (m *LDataInd) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LDataInd) String() string {
-	return string(m.Box("LDataInd", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LDataInd) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LDataInd"
+	boxName := "LDataInd"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformationLength", m.AdditionalInformationLength, width-2))
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformation", m.AdditionalInformation, width-2))
 		boxes = append(boxes, utils.BoxAnything("DataFrame", m.DataFrame, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
index f94915c..76f97a7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataReq.go
@@ -261,19 +261,20 @@ func (m *LDataReq) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LDataReq) String() string {
-	return string(m.Box("LDataReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LDataReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LDataReq"
+	boxName := "LDataReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformationLength", m.AdditionalInformationLength, width-2))
 		boxes = append(boxes, utils.BoxAnything("AdditionalInformation", m.AdditionalInformation, width-2))
 		boxes = append(boxes, utils.BoxAnything("DataFrame", m.DataFrame, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
index e9a7c4f..0924a13 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
@@ -280,19 +280,20 @@ func (m *LPollData) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LPollData) String() string {
-	return string(m.Box("LPollData", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LPollData) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LPollData"
+	boxName := "LPollData"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SourceAddress", m.SourceAddress, width-2))
 		boxes = append(boxes, utils.BoxAnything("TargetAddress", m.TargetAddress, width-2))
 		boxes = append(boxes, utils.BoxAnything("NumberExpectedPollData", m.NumberExpectedPollData, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
index c9bc845..6d94e5d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataCon.go
@@ -142,16 +142,17 @@ func (m *LPollDataCon) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m LPollDataCon) String() string {
-	return string(m.Box("LPollDataCon", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LPollDataCon) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LPollDataCon"
+	boxName := "LPollDataCon"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
index 0b4fc92..5054224 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollDataReq.go
@@ -142,16 +142,17 @@ func (m *LPollDataReq) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m LPollDataReq) String() string {
-	return string(m.Box("LPollDataReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LPollDataReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LPollDataReq"
+	boxName := "LPollDataReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
index 9d54172..a0edf2c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawCon.go
@@ -142,16 +142,17 @@ func (m *LRawCon) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LRawCon) String() string {
-	return string(m.Box("LRawCon", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LRawCon) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LRawCon"
+	boxName := "LRawCon"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
index 4df4f1a..4ac6656 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawInd.go
@@ -142,16 +142,17 @@ func (m *LRawInd) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LRawInd) String() string {
-	return string(m.Box("LRawInd", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LRawInd) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LRawInd"
+	boxName := "LRawInd"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
index 977dd01..8733e1f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LRawReq.go
@@ -142,16 +142,17 @@ func (m *LRawReq) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m LRawReq) String() string {
-	return string(m.Box("LRawReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m LRawReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "LRawReq"
+	boxName := "LRawReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
index f73a479..0cb2506 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
@@ -168,14 +168,15 @@ func (m *MACAddress) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m MACAddress) String() string {
-	return string(m.Box("MACAddress", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MACAddress) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MACAddress"
+	boxName := "MACAddress"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Addr", m.Addr, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
index bfe17b3..90894e1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCommandReq.go
@@ -142,16 +142,17 @@ func (m *MFuncPropCommandReq) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m MFuncPropCommandReq) String() string {
-	return string(m.Box("MFuncPropCommandReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MFuncPropCommandReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MFuncPropCommandReq"
+	boxName := "MFuncPropCommandReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
index c7852c4..cde90ce 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropCon.go
@@ -142,16 +142,17 @@ func (m *MFuncPropCon) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m MFuncPropCon) String() string {
-	return string(m.Box("MFuncPropCon", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MFuncPropCon) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MFuncPropCon"
+	boxName := "MFuncPropCon"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
index 3b1f52f..1bd5155 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MFuncPropStateReadReq.go
@@ -142,16 +142,17 @@ func (m *MFuncPropStateReadReq) MarshalXML(e *xml.Encoder, start xml.StartElemen
 }
 
 func (m MFuncPropStateReadReq) String() string {
-	return string(m.Box("MFuncPropStateReadReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MFuncPropStateReadReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MFuncPropStateReadReq"
+	boxName := "MFuncPropStateReadReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
index 335daec..0b8c5e6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropInfoInd.go
@@ -142,16 +142,17 @@ func (m *MPropInfoInd) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m MPropInfoInd) String() string {
-	return string(m.Box("MPropInfoInd", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MPropInfoInd) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MPropInfoInd"
+	boxName := "MPropInfoInd"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
index e4be84d..0e93e86 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadCon.go
@@ -311,14 +311,15 @@ func (m *MPropReadCon) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m MPropReadCon) String() string {
-	return string(m.Box("MPropReadCon", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MPropReadCon) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MPropReadCon"
+	boxName := "MPropReadCon"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("InterfaceObjectType", m.InterfaceObjectType, width-2))
 		boxes = append(boxes, utils.BoxAnything("ObjectInstance", m.ObjectInstance, width-2))
@@ -328,5 +329,5 @@ func (m MPropReadCon) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("Unknown", m.Unknown, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
index 03b7f7a..63b1708 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropReadReq.go
@@ -283,14 +283,15 @@ func (m *MPropReadReq) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m MPropReadReq) String() string {
-	return string(m.Box("MPropReadReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MPropReadReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MPropReadReq"
+	boxName := "MPropReadReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("InterfaceObjectType", m.InterfaceObjectType, width-2))
 		boxes = append(boxes, utils.BoxAnything("ObjectInstance", m.ObjectInstance, width-2))
@@ -299,5 +300,5 @@ func (m MPropReadReq) Box(name string, width int) utils.AsciiBox {
 		boxes = append(boxes, utils.BoxAnything("StartIndex", m.StartIndex, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
index f1c6af7..9eac730 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteCon.go
@@ -142,16 +142,17 @@ func (m *MPropWriteCon) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m MPropWriteCon) String() string {
-	return string(m.Box("MPropWriteCon", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MPropWriteCon) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MPropWriteCon"
+	boxName := "MPropWriteCon"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
index 894a76c..a72800d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MPropWriteReq.go
@@ -142,16 +142,17 @@ func (m *MPropWriteReq) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m MPropWriteReq) String() string {
-	return string(m.Box("MPropWriteReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MPropWriteReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MPropWriteReq"
+	boxName := "MPropWriteReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
index 2697ac1..170c7d9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetInd.go
@@ -142,16 +142,17 @@ func (m *MResetInd) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m MResetInd) String() string {
-	return string(m.Box("MResetInd", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MResetInd) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MResetInd"
+	boxName := "MResetInd"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
index 9bcbb09..f1e1b19 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/MResetReq.go
@@ -142,16 +142,17 @@ func (m *MResetReq) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m MResetReq) String() string {
-	return string(m.Box("MResetReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m MResetReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "MResetReq"
+	boxName := "MResetReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go
index dc09da5..b1c262c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go
@@ -175,15 +175,16 @@ func (m *ProjectInstallationIdentifier) MarshalXML(e *xml.Encoder, start xml.Sta
 }
 
 func (m ProjectInstallationIdentifier) String() string {
-	return string(m.Box("ProjectInstallationIdentifier", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ProjectInstallationIdentifier) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ProjectInstallationIdentifier"
+	boxName := "ProjectInstallationIdentifier"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("ProjectNumber", m.ProjectNumber, width-2))
 	boxes = append(boxes, utils.BoxAnything("InstallationNumber", m.InstallationNumber, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go
index a30d22a..9fd129a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go
@@ -149,14 +149,15 @@ func (m *RelativeTimestamp) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m RelativeTimestamp) String() string {
-	return string(m.Box("RelativeTimestamp", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m RelativeTimestamp) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "RelativeTimestamp"
+	boxName := "RelativeTimestamp"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("Timestamp", m.Timestamp, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
index 406b732..b4a48bb 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
@@ -142,16 +142,17 @@ func (m *RoutingIndication) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m RoutingIndication) String() string {
-	return string(m.Box("RoutingIndication", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m RoutingIndication) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "RoutingIndication"
+	boxName := "RoutingIndication"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
index cf8941d..8960642 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
@@ -170,17 +170,18 @@ func (m *SearchRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) error
 }
 
 func (m SearchRequest) String() string {
-	return string(m.Box("SearchRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m SearchRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "SearchRequest"
+	boxName := "SearchRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("HpaiIDiscoveryEndpoint", m.HpaiIDiscoveryEndpoint, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
index 2a8ceeb..3a3aca9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
@@ -224,19 +224,20 @@ func (m *SearchResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m SearchResponse) String() string {
-	return string(m.Box("SearchResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m SearchResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "SearchResponse"
+	boxName := "SearchResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("HpaiControlEndpoint", m.HpaiControlEndpoint, width-2))
 		boxes = append(boxes, utils.BoxAnything("DibDeviceInfo", m.DibDeviceInfo, width-2))
 		boxes = append(boxes, utils.BoxAnything("DibSuppSvcFamilies", m.DibSuppSvcFamilies, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
index fdf2262..1ec7ebd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
@@ -304,18 +304,19 @@ func (m *ServiceId) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m ServiceId) String() string {
-	return string(m.Box("ServiceId", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ServiceId) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ServiceId) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ServiceId"
+func (m *ServiceId) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ServiceId"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
index 67d8f57..60bfda6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedInd.go
@@ -142,16 +142,17 @@ func (m *TDataConnectedInd) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m TDataConnectedInd) String() string {
-	return string(m.Box("TDataConnectedInd", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TDataConnectedInd) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TDataConnectedInd"
+	boxName := "TDataConnectedInd"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
index 903d613..ffb54ea 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataConnectedReq.go
@@ -142,16 +142,17 @@ func (m *TDataConnectedReq) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m TDataConnectedReq) String() string {
-	return string(m.Box("TDataConnectedReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TDataConnectedReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TDataConnectedReq"
+	boxName := "TDataConnectedReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
index 56d6c57..c218f2b 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualInd.go
@@ -142,16 +142,17 @@ func (m *TDataIndividualInd) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m TDataIndividualInd) String() string {
-	return string(m.Box("TDataIndividualInd", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TDataIndividualInd) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TDataIndividualInd"
+	boxName := "TDataIndividualInd"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
index ea0cdc6..3d5b201 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TDataIndividualReq.go
@@ -142,16 +142,17 @@ func (m *TDataIndividualReq) MarshalXML(e *xml.Encoder, start xml.StartElement)
 }
 
 func (m TDataIndividualReq) String() string {
-	return string(m.Box("TDataIndividualReq", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TDataIndividualReq) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TDataIndividualReq"
+	boxName := "TDataIndividualReq"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
index d47d848..3a870fc 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
@@ -200,18 +200,19 @@ func (m *TunnelingRequest) MarshalXML(e *xml.Encoder, start xml.StartElement) er
 }
 
 func (m TunnelingRequest) String() string {
-	return string(m.Box("TunnelingRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TunnelingRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TunnelingRequest"
+	boxName := "TunnelingRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("TunnelingRequestDataBlock", m.TunnelingRequestDataBlock, width-2))
 		boxes = append(boxes, utils.BoxAnything("Cemi", m.Cemi, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go
index de6345b..d98158d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go
@@ -218,15 +218,16 @@ func (m *TunnelingRequestDataBlock) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m TunnelingRequestDataBlock) String() string {
-	return string(m.Box("TunnelingRequestDataBlock", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TunnelingRequestDataBlock) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TunnelingRequestDataBlock"
+	boxName := "TunnelingRequestDataBlock"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 	boxes = append(boxes, utils.BoxAnything("SequenceCounter", m.SequenceCounter, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
index a5ab120..31a90fd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
@@ -170,17 +170,18 @@ func (m *TunnelingResponse) MarshalXML(e *xml.Encoder, start xml.StartElement) e
 }
 
 func (m TunnelingResponse) String() string {
-	return string(m.Box("TunnelingResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TunnelingResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TunnelingResponse"
+	boxName := "TunnelingResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("TunnelingResponseDataBlock", m.TunnelingResponseDataBlock, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go
index 30c608c..a7e88b6 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go
@@ -217,16 +217,17 @@ func (m *TunnelingResponseDataBlock) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m TunnelingResponseDataBlock) String() string {
-	return string(m.Box("TunnelingResponseDataBlock", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m TunnelingResponseDataBlock) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "TunnelingResponseDataBlock"
+	boxName := "TunnelingResponseDataBlock"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
 	boxes = append(boxes, utils.BoxAnything("CommunicationChannelId", m.CommunicationChannelId, width-2))
 	boxes = append(boxes, utils.BoxAnything("SequenceCounter", m.SequenceCounter, width-2))
 	boxes = append(boxes, utils.BoxAnything("Status", m.Status, width-2))
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
index 32ca0b5..528586e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
@@ -190,17 +190,18 @@ func (m *UnknownMessage) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m UnknownMessage) String() string {
-	return string(m.Box("UnknownMessage", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m UnknownMessage) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "UnknownMessage"
+	boxName := "UnknownMessage"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("UnknownData", m.UnknownData, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
index 9eb092f..11432eb 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
@@ -145,13 +145,14 @@ func (m *ModbusConstants) MarshalXML(e *xml.Encoder, start xml.StartElement) err
 }
 
 func (m ModbusConstants) String() string {
-	return string(m.Box("ModbusConstants", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusConstants) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusConstants"
+	boxName := "ModbusConstants"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
index a5f8094..fe1c342 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
@@ -812,18 +812,19 @@ func (m *ModbusPDU) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 }
 
 func (m ModbusPDU) String() string {
-	return string(m.Box("ModbusPDU", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m *ModbusPDU) Box(name string, width int) utils.AsciiBox {
 	return m.Child.Box(name, width)
 }
 
-func (m *ModbusPDU) BoxParent(name string, width int, boxChild func() []utils.AsciiBox) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDU"
+func (m *ModbusPDU) BoxParent(name string, width int, childBoxer func() []utils.AsciiBox) utils.AsciiBox {
+	boxName := "ModbusPDU"
+	if name != "" {
+		boxName += "/" + name
 	}
 	boxes := make([]utils.AsciiBox, 0)
-	boxes = append(boxes, boxChild()...)
-	return utils.BoxBox(name, utils.AlignBoxes(boxes, width-2), 0)
+	boxes = append(boxes, childBoxer()...)
+	return utils.BoxBox(boxName, utils.AlignBoxes(boxes, width-2), 0)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
index d8cd762..de347d8 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
@@ -207,18 +207,19 @@ func (m *ModbusPDUDiagnosticRequest) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m ModbusPDUDiagnosticRequest) String() string {
-	return string(m.Box("ModbusPDUDiagnosticRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUDiagnosticRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUDiagnosticRequest"
+	boxName := "ModbusPDUDiagnosticRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SubFunction", m.SubFunction, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
index ef48faa..ca578f5 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticResponse.go
@@ -207,18 +207,19 @@ func (m *ModbusPDUDiagnosticResponse) MarshalXML(e *xml.Encoder, start xml.Start
 }
 
 func (m ModbusPDUDiagnosticResponse) String() string {
-	return string(m.Box("ModbusPDUDiagnosticResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUDiagnosticResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUDiagnosticResponse"
+	boxName := "ModbusPDUDiagnosticResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("SubFunction", m.SubFunction, width-2))
 		boxes = append(boxes, utils.BoxAnything("Data", m.Data, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
index e9cdcb2..a7fc35f 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
@@ -179,17 +179,18 @@ func (m *ModbusPDUError) MarshalXML(e *xml.Encoder, start xml.StartElement) erro
 }
 
 func (m ModbusPDUError) String() string {
-	return string(m.Box("ModbusPDUError", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUError) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUError"
+	boxName := "ModbusPDUError"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ExceptionCode", m.ExceptionCode, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
index b08142d..3c229ec 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterRequest.go
@@ -150,16 +150,17 @@ func (m *ModbusPDUGetComEventCounterRequest) MarshalXML(e *xml.Encoder, start xm
 }
 
 func (m ModbusPDUGetComEventCounterRequest) String() string {
-	return string(m.Box("ModbusPDUGetComEventCounterRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUGetComEventCounterRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUGetComEventCounterRequest"
+	boxName := "ModbusPDUGetComEventCounterRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
index e3ff79a..71c49cd 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventCounterResponse.go
@@ -207,18 +207,19 @@ func (m *ModbusPDUGetComEventCounterResponse) MarshalXML(e *xml.Encoder, start x
 }
 
 func (m ModbusPDUGetComEventCounterResponse) String() string {
-	return string(m.Box("ModbusPDUGetComEventCounterResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUGetComEventCounterResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUGetComEventCounterResponse"
+	boxName := "ModbusPDUGetComEventCounterResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Status", m.Status, width-2))
 		boxes = append(boxes, utils.BoxAnything("EventCount", m.EventCount, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
index da93b20..75fad27 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
@@ -150,16 +150,17 @@ func (m *ModbusPDUGetComEventLogRequest) MarshalXML(e *xml.Encoder, start xml.St
 }
 
 func (m ModbusPDUGetComEventLogRequest) String() string {
-	return string(m.Box("ModbusPDUGetComEventLogRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUGetComEventLogRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUGetComEventLogRequest"
+	boxName := "ModbusPDUGetComEventLogRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
index 60cb0df..e0065a6 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
@@ -299,14 +299,15 @@ func (m *ModbusPDUGetComEventLogResponse) MarshalXML(e *xml.Encoder, start xml.S
 }
 
 func (m ModbusPDUGetComEventLogResponse) String() string {
-	return string(m.Box("ModbusPDUGetComEventLogResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUGetComEventLogResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUGetComEventLogResponse"
+	boxName := "ModbusPDUGetComEventLogResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("Status", m.Status, width-2))
 		boxes = append(boxes, utils.BoxAnything("EventCount", m.EventCount, width-2))
@@ -314,5 +315,5 @@ func (m ModbusPDUGetComEventLogResponse) Box(name string, width int) utils.Ascii
 		boxes = append(boxes, utils.BoxAnything("Events", m.Events, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
index 4d22b69..1b8e4dc 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
@@ -235,19 +235,20 @@ func (m *ModbusPDUMaskWriteHoldingRegisterRequest) MarshalXML(e *xml.Encoder, st
 }
 
 func (m ModbusPDUMaskWriteHoldingRegisterRequest) String() string {
-	return string(m.Box("ModbusPDUMaskWriteHoldingRegisterRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUMaskWriteHoldingRegisterRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUMaskWriteHoldingRegisterRequest"
+	boxName := "ModbusPDUMaskWriteHoldingRegisterRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ReferenceAddress", m.ReferenceAddress, width-2))
 		boxes = append(boxes, utils.BoxAnything("AndMask", m.AndMask, width-2))
 		boxes = append(boxes, utils.BoxAnything("OrMask", m.OrMask, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
index e94bb3d..6728aa0 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
@@ -235,19 +235,20 @@ func (m *ModbusPDUMaskWriteHoldingRegisterResponse) MarshalXML(e *xml.Encoder, s
 }
 
 func (m ModbusPDUMaskWriteHoldingRegisterResponse) String() string {
-	return string(m.Box("ModbusPDUMaskWriteHoldingRegisterResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUMaskWriteHoldingRegisterResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUMaskWriteHoldingRegisterResponse"
+	boxName := "ModbusPDUMaskWriteHoldingRegisterResponse"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("ReferenceAddress", m.ReferenceAddress, width-2))
 		boxes = append(boxes, utils.BoxAnything("AndMask", m.AndMask, width-2))
 		boxes = append(boxes, utils.BoxAnything("OrMask", m.OrMask, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
index 16d52f1..347e7ef 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
@@ -207,18 +207,19 @@ func (m *ModbusPDUReadCoilsRequest) MarshalXML(e *xml.Encoder, start xml.StartEl
 }
 
 func (m ModbusPDUReadCoilsRequest) String() string {
-	return string(m.Box("ModbusPDUReadCoilsRequest", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUReadCoilsRequest) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUReadCoilsRequest"
+	boxName := "ModbusPDUReadCoilsRequest"
+	if name != "" {
+		boxName += "/" + name
 	}
-	boxChild := func() []utils.AsciiBox {
+	childBoxer := func() []utils.AsciiBox {
 		boxes := make([]utils.AsciiBox, 0)
 		boxes = append(boxes, utils.BoxAnything("StartingAddress", m.StartingAddress, width-2))
 		boxes = append(boxes, utils.BoxAnything("Quantity", m.Quantity, width-2))
 		return boxes
 	}
-	return m.Parent.BoxParent(name, width, boxChild)
+	return m.Parent.BoxParent(boxName, width, childBoxer)
 }
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
index 899fbed..10d4c7f 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
@@ -215,17 +215,18 @@ func (m *ModbusPDUReadCoilsResponse) MarshalXML(e *xml.Encoder, start xml.StartE
 }
 
 func (m ModbusPDUReadCoilsResponse) String() string {
-	return string(m.Box("ModbusPDUReadCoilsResponse", utils.DefaultWidth*2))
+	return string(m.Box("", 120))
 }
 
 func (m ModbusPDUReadCoilsResponse) Box(name string, width int) utils.AsciiBox {
-	if name == "" {
-		name = "ModbusPDUReadCoilsResponse"
+	boxName := "ModbusPDUReadCoilsResponse"
+	if name != "" {
... 2286 lines suppressed ...