You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/10/13 14:58:12 UTC

[plc4x] branch feature/plc4go updated: - Fixed issues that were causing failures in the parser/serializer tests

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

cdutz pushed a commit to branch feature/plc4go
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/feature/plc4go by this push:
     new 3f83fa1  - Fixed issues that were causing failures in the parser/serializer tests
3f83fa1 is described below

commit 3f83fa119ad95f1134ff8f09b69088b4460beba9
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Tue Oct 13 16:58:04 2020 +0200

    - Fixed issues that were causing failures in the parser/serializer tests
---
 .../main/resources/templates/go/enum-template.ftlh |  2 +-
 .../resources/templates/go/model-template.ftlh     | 49 +++++++++++----------
 sandbox/plc4go/cmd/main/drivers/bacnetip.go        |  2 +-
 sandbox/plc4go/cmd/main/drivers/knxnetip.go        |  2 +-
 sandbox/plc4go/cmd/main/drivers/modbus.go          | 23 +++++++---
 sandbox/plc4go/cmd/main/drivers/s7.go              |  2 +-
 .../plc4go/bacnetip/readwrite/model/APDU.go        |  2 +-
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   |  2 +-
 .../bacnetip/readwrite/model/APDUComplexAck.go     |  2 +-
 .../readwrite/model/APDUConfirmedRequest.go        |  2 +-
 .../plc4go/bacnetip/readwrite/model/APDUError.go   |  2 +-
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  |  2 +-
 .../bacnetip/readwrite/model/APDUSegmentAck.go     |  2 +-
 .../bacnetip/readwrite/model/APDUSimpleAck.go      |  2 +-
 .../readwrite/model/APDUUnconfirmedRequest.go      |  2 +-
 .../bacnetip/readwrite/model/ApplicationTag.go     |  2 +-
 .../bacnetip/readwrite/model/BACnetAddress.go      | 19 ++++----
 .../readwrite/model/BACnetConfirmedServiceACK.go   |  2 +-
 .../BACnetConfirmedServiceACKAtomicReadFile.go     |  2 +-
 .../BACnetConfirmedServiceACKAtomicWriteFile.go    |  2 +-
 ...tConfirmedServiceACKConfirmedPrivateTransfer.go |  2 +-
 .../model/BACnetConfirmedServiceACKCreateObject.go |  2 +-
 .../BACnetConfirmedServiceACKGetAlarmSummary.go    |  2 +-
 ...ACnetConfirmedServiceACKGetEnrollmentSummary.go |  2 +-
 ...BACnetConfirmedServiceACKGetEventInformation.go |  2 +-
 .../model/BACnetConfirmedServiceACKReadProperty.go |  2 +-
 ...ACnetConfirmedServiceACKReadPropertyMultiple.go |  2 +-
 .../model/BACnetConfirmedServiceACKReadRange.go    |  2 +-
 ...BACnetConfirmedServiceACKRemovedAuthenticate.go |  2 +-
 ...rmedServiceACKRemovedReadPropertyConditional.go |  2 +-
 .../model/BACnetConfirmedServiceACKVTData.go       |  2 +-
 .../model/BACnetConfirmedServiceACKVTOpen.go       |  2 +-
 .../model/BACnetConfirmedServiceRequest.go         |  2 +-
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |  2 +-
 .../BACnetConfirmedServiceRequestAddListElement.go |  2 +-
 .../BACnetConfirmedServiceRequestAtomicReadFile.go |  2 +-
 ...BACnetConfirmedServiceRequestAtomicWriteFile.go |  2 +-
 ...firmedServiceRequestConfirmedCOVNotification.go | 19 ++++----
 ...rviceRequestConfirmedCOVNotificationMultiple.go |  2 +-
 ...rmedServiceRequestConfirmedEventNotification.go |  2 +-
 ...firmedServiceRequestConfirmedPrivateTransfer.go |  2 +-
 ...tConfirmedServiceRequestConfirmedTextMessage.go |  2 +-
 .../BACnetConfirmedServiceRequestCreateObject.go   |  2 +-
 .../BACnetConfirmedServiceRequestDeleteObject.go   |  2 +-
 ...rmedServiceRequestDeviceCommunicationControl.go |  2 +-
 ...tConfirmedServiceRequestGetEnrollmentSummary.go |  2 +-
 ...etConfirmedServiceRequestGetEventInformation.go |  2 +-
 ...etConfirmedServiceRequestLifeSafetyOperation.go |  2 +-
 .../BACnetConfirmedServiceRequestReadProperty.go   | 17 +++-----
 ...tConfirmedServiceRequestReadPropertyMultiple.go |  2 +-
 .../BACnetConfirmedServiceRequestReadRange.go      |  2 +-
 ...netConfirmedServiceRequestReinitializeDevice.go |  2 +-
 ...CnetConfirmedServiceRequestRemoveListElement.go |  2 +-
 ...etConfirmedServiceRequestRemovedAuthenticate.go |  2 +-
 ...ServiceRequestRemovedReadPropertyConditional.go |  2 +-
 ...CnetConfirmedServiceRequestRemovedRequestKey.go |  2 +-
 .../BACnetConfirmedServiceRequestSubscribeCOV.go   | 17 +++-----
 ...tConfirmedServiceRequestSubscribeCOVProperty.go |  2 +-
 ...edServiceRequestSubscribeCOVPropertyMultiple.go |  2 +-
 .../model/BACnetConfirmedServiceRequestVTClose.go  |  2 +-
 .../model/BACnetConfirmedServiceRequestVTData.go   |  2 +-
 .../model/BACnetConfirmedServiceRequestVTOpen.go   |  2 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  | 17 +++-----
 ...ConfirmedServiceRequestWritePropertyMultiple.go |  2 +-
 .../plc4go/bacnetip/readwrite/model/BACnetError.go |  2 +-
 .../readwrite/model/BACnetErrorAtomicReadFile.go   |  2 +-
 .../readwrite/model/BACnetErrorAtomicWriteFile.go  |  2 +-
 .../model/BACnetErrorConfirmedPrivateTransfer.go   |  2 +-
 .../readwrite/model/BACnetErrorCreateObject.go     |  2 +-
 .../readwrite/model/BACnetErrorGetAlarmSummary.go  |  2 +-
 .../model/BACnetErrorGetEnrollmentSummary.go       |  2 +-
 .../model/BACnetErrorGetEventInformation.go        |  2 +-
 .../readwrite/model/BACnetErrorReadProperty.go     | 32 ++++++--------
 .../model/BACnetErrorReadPropertyMultiple.go       |  2 +-
 .../readwrite/model/BACnetErrorReadRange.go        |  2 +-
 .../model/BACnetErrorRemovedAuthenticate.go        |  2 +-
 .../BACnetErrorRemovedReadPropertyConditional.go   |  2 +-
 .../bacnetip/readwrite/model/BACnetErrorVTData.go  |  2 +-
 .../bacnetip/readwrite/model/BACnetErrorVTOpen.go  |  2 +-
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |  2 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |  2 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |  2 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |  2 +-
 .../bacnetip/readwrite/model/BACnetServiceAck.go   |  2 +-
 .../model/BACnetServiceAckAtomicReadFile.go        |  2 +-
 .../model/BACnetServiceAckAtomicWriteFile.go       |  2 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |  2 +-
 .../model/BACnetServiceAckCreateObject.go          |  2 +-
 .../model/BACnetServiceAckGetAlarmSummary.go       |  2 +-
 .../model/BACnetServiceAckGetEnrollmentSummary.go  |  2 +-
 .../model/BACnetServiceAckGetEventInformation.go   |  2 +-
 .../model/BACnetServiceAckReadProperty.go          | 17 +++-----
 .../model/BACnetServiceAckReadPropertyMultiple.go  |  2 +-
 .../readwrite/model/BACnetServiceAckReadRange.go   |  2 +-
 .../model/BACnetServiceAckRemovedAuthenticate.go   |  2 +-
 ...CnetServiceAckRemovedReadPropertyConditional.go |  2 +-
 .../readwrite/model/BACnetServiceAckVTData.go      |  2 +-
 .../readwrite/model/BACnetServiceAckVTOpen.go      |  2 +-
 .../plc4go/bacnetip/readwrite/model/BACnetTag.go   |  2 +-
 .../model/BACnetTagApplicationBitString.go         |  8 ++--
 .../readwrite/model/BACnetTagApplicationBoolean.go |  2 +-
 .../model/BACnetTagApplicationCharacterString.go   |  2 +-
 .../readwrite/model/BACnetTagApplicationDate.go    |  2 +-
 .../readwrite/model/BACnetTagApplicationDouble.go  |  2 +-
 .../model/BACnetTagApplicationEnumerated.go        |  8 ++--
 .../readwrite/model/BACnetTagApplicationNull.go    |  2 +-
 .../model/BACnetTagApplicationObjectIdentifier.go  |  2 +-
 .../model/BACnetTagApplicationOctetString.go       |  2 +-
 .../readwrite/model/BACnetTagApplicationReal.go    |  2 +-
 .../model/BACnetTagApplicationSignedInteger.go     |  8 ++--
 .../readwrite/model/BACnetTagApplicationTime.go    |  2 +-
 .../model/BACnetTagApplicationUnsignedInteger.go   |  8 ++--
 .../bacnetip/readwrite/model/BACnetTagContext.go   |  8 ++--
 .../readwrite/model/BACnetTagWithContent.go        |  8 ++--
 .../model/BACnetUnconfirmedServiceRequest.go       |  2 +-
 .../model/BACnetUnconfirmedServiceRequestIAm.go    | 17 +++-----
 .../model/BACnetUnconfirmedServiceRequestIHave.go  |  2 +-
 ...UnconfirmedServiceRequestTimeSynchronization.go |  2 +-
 ...onfirmedServiceRequestUTCTimeSynchronization.go |  2 +-
 ...rmedServiceRequestUnconfirmedCOVNotification.go |  2 +-
 ...iceRequestUnconfirmedCOVNotificationMultiple.go |  2 +-
 ...edServiceRequestUnconfirmedEventNotification.go |  2 +-
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |  8 ++--
 ...onfirmedServiceRequestUnconfirmedTextMessage.go |  2 +-
 .../model/BACnetUnconfirmedServiceRequestWhoHas.go |  8 ++--
 .../model/BACnetUnconfirmedServiceRequestWhoIs.go  | 32 ++++++--------
 .../BACnetUnconfirmedServiceRequestWriteGroup.go   |  2 +-
 .../plc4go/bacnetip/readwrite/model/BVLC.go        |  2 +-
 .../model/BVLCDeleteForeignDeviceTableEntry.go     |  2 +-
 .../model/BVLCDistributeBroadcastToNetwork.go      |  2 +-
 .../bacnetip/readwrite/model/BVLCForwardedNPDU.go  | 17 +++-----
 .../readwrite/model/BVLCOriginalBroadcastNPDU.go   |  2 +-
 .../readwrite/model/BVLCOriginalUnicastNPDU.go     |  2 +-
 .../model/BVLCReadBroadcastDistributionTable.go    |  2 +-
 .../model/BVLCReadBroadcastDistributionTableAck.go |  2 +-
 .../readwrite/model/BVLCReadForeignDeviceTable.go  |  2 +-
 .../model/BVLCReadForeignDeviceTableAck.go         |  2 +-
 .../readwrite/model/BVLCRegisterForeignDevice.go   |  2 +-
 .../plc4go/bacnetip/readwrite/model/BVLCResult.go  |  2 +-
 .../bacnetip/readwrite/model/BVLCSecureBVLL.go     |  2 +-
 .../model/BVLCWideBroadcastDistributionTable.go    |  2 +-
 .../plc4go/bacnetip/readwrite/model/NLM.go         |  2 +-
 .../readwrite/model/NLMIAmRouterToNetwork.go       |  8 ++--
 .../readwrite/model/NLMWhoIsRouterToNetwork.go     |  8 ++--
 .../plc4go/bacnetip/readwrite/model/NPDU.go        | 36 +++++++---------
 .../plc4go/knxnetip/readwrite/model/APCI.go        |  2 +-
 .../plc4go/knxnetip/readwrite/model/CEMI.go        |  2 +-
 .../readwrite/model/CEMIAdditionalInformation.go   |  2 +-
 .../CEMIAdditionalInformationBusmonitorInfo.go     |  2 +-
 .../CEMIAdditionalInformationRelativeTimestamp.go  |  2 +-
 .../knxnetip/readwrite/model/CEMIBusmonInd.go      |  4 +-
 .../plc4go/knxnetip/readwrite/model/CEMIDataCon.go |  4 +-
 .../knxnetip/readwrite/model/CEMIDataFrame.go      | 36 +++++++---------
 .../plc4go/knxnetip/readwrite/model/CEMIDataInd.go |  4 +-
 .../plc4go/knxnetip/readwrite/model/CEMIDataReq.go |  4 +-
 .../plc4go/knxnetip/readwrite/model/CEMIFrame.go   |  2 +-
 .../knxnetip/readwrite/model/CEMIFrameAck.go       |  2 +-
 .../knxnetip/readwrite/model/CEMIFrameData.go      | 32 ++++++--------
 .../knxnetip/readwrite/model/CEMIFrameDataExt.go   | 32 ++++++--------
 .../readwrite/model/CEMIFramePollingData.go        |  2 +-
 .../readwrite/model/CEMIFramePollingDataExt.go     |  2 +-
 .../knxnetip/readwrite/model/CEMIMPropReadCon.go   |  2 +-
 .../knxnetip/readwrite/model/CEMIMPropReadReq.go   |  2 +-
 .../knxnetip/readwrite/model/CEMIPollDataCon.go    |  2 +-
 .../knxnetip/readwrite/model/CEMIPollDataReq.go    |  2 +-
 .../knxnetip/readwrite/model/CEMIPriority.go       |  2 +-
 .../plc4go/knxnetip/readwrite/model/CEMIRawCon.go  |  2 +-
 .../plc4go/knxnetip/readwrite/model/CEMIRawInd.go  |  2 +-
 .../plc4go/knxnetip/readwrite/model/CEMIRawReq.go  |  2 +-
 .../knxnetip/readwrite/model/ConnectionRequest.go  |  2 +-
 .../model/ConnectionRequestInformation.go          |  2 +-
 ...ConnectionRequestInformationDeviceManagement.go |  2 +-
 ...ConnectionRequestInformationTunnelConnection.go |  2 +-
 .../knxnetip/readwrite/model/ConnectionResponse.go |  2 +-
 .../readwrite/model/ConnectionResponseDataBlock.go |  2 +-
 .../ConnectionResponseDataBlockDeviceManagement.go |  2 +-
 .../ConnectionResponseDataBlockTunnelConnection.go |  2 +-
 .../readwrite/model/ConnectionStateRequest.go      |  2 +-
 .../readwrite/model/ConnectionStateResponse.go     |  2 +-
 .../knxnetip/readwrite/model/DIBDeviceInfo.go      | 36 +++++++---------
 .../knxnetip/readwrite/model/DIBSuppSvcFamilies.go | 29 ++++++-------
 .../knxnetip/readwrite/model/DescriptionRequest.go |  2 +-
 .../readwrite/model/DescriptionResponse.go         |  2 +-
 .../readwrite/model/DeviceConfigurationAck.go      |  2 +-
 .../model/DeviceConfigurationAckDataBlock.go       |  2 +-
 .../readwrite/model/DeviceConfigurationRequest.go  |  2 +-
 .../model/DeviceConfigurationRequestDataBlock.go   |  2 +-
 .../knxnetip/readwrite/model/DeviceStatus.go       |  2 +-
 .../knxnetip/readwrite/model/DisconnectRequest.go  |  2 +-
 .../knxnetip/readwrite/model/DisconnectResponse.go |  2 +-
 .../readwrite/model/HPAIControlEndpoint.go         |  2 +-
 .../knxnetip/readwrite/model/HPAIDataEndpoint.go   |  2 +-
 .../readwrite/model/HPAIDiscoveryEndpoint.go       |  2 +-
 .../knxnetip/readwrite/model/HostProtocolCode.go   |  2 +-
 .../plc4go/knxnetip/readwrite/model/IPAddress.go   | 19 ++++----
 .../plc4go/knxnetip/readwrite/model/KNXAddress.go  |  2 +-
 .../knxnetip/readwrite/model/KNXGroupAddress.go    |  2 +-
 .../readwrite/model/KNXGroupAddress2Level.go       |  2 +-
 .../readwrite/model/KNXGroupAddress3Level.go       |  2 +-
 .../readwrite/model/KNXGroupAddressFreeLevel.go    |  2 +-
 .../knxnetip/readwrite/model/KNXNetIPMessage.go    |  2 +-
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |  2 +-
 .../knxnetip/readwrite/model/KnxNetIpCore.go       |  2 +-
 .../readwrite/model/KnxNetIpDeviceManagement.go    |  2 +-
 .../knxnetip/readwrite/model/KnxNetIpTunneling.go  |  2 +-
 .../knxnetip/readwrite/model/KnxNetObjectServer.go |  2 +-
 .../model/KnxNetRemoteConfigurationAndDiagnosis.go |  2 +-
 .../readwrite/model/KnxNetRemoteLogging.go         |  2 +-
 .../plc4go/knxnetip/readwrite/model/MACAddress.go  | 19 ++++----
 .../model/ProjectInstallationIdentifier.go         |  2 +-
 .../knxnetip/readwrite/model/RelativeTimestamp.go  |  2 +-
 .../knxnetip/readwrite/model/RoutingIndication.go  |  2 +-
 .../knxnetip/readwrite/model/SearchRequest.go      |  2 +-
 .../knxnetip/readwrite/model/SearchResponse.go     |  2 +-
 .../plc4go/knxnetip/readwrite/model/ServiceId.go   |  2 +-
 .../plc4go/knxnetip/readwrite/model/Status.go      |  2 +-
 .../plc4go/knxnetip/readwrite/model/TPCI.go        |  2 +-
 .../knxnetip/readwrite/model/TunnelingRequest.go   |  2 +-
 .../readwrite/model/TunnelingRequestDataBlock.go   |  2 +-
 .../knxnetip/readwrite/model/TunnelingResponse.go  |  2 +-
 .../readwrite/model/TunnelingResponseDataBlock.go  |  2 +-
 .../knxnetip/readwrite/model/UnknownMessage.go     | 17 +++-----
 .../modbus/readwrite/model/ModbusConstants.go      |  2 +-
 .../modbus/readwrite/model/ModbusDataType.go       |  2 +-
 .../plc4go/modbus/readwrite/model/ModbusPDU.go     |  2 +-
 .../readwrite/model/ModbusPDUDiagnosticRequest.go  |  2 +-
 .../modbus/readwrite/model/ModbusPDUError.go       |  2 +-
 .../model/ModbusPDUGetComEventLogRequest.go        |  2 +-
 .../model/ModbusPDUGetComEventLogResponse.go       | 17 +++-----
 .../ModbusPDUMaskWriteHoldingRegisterRequest.go    |  2 +-
 .../ModbusPDUMaskWriteHoldingRegisterResponse.go   |  2 +-
 .../readwrite/model/ModbusPDUReadCoilsRequest.go   |  2 +-
 .../readwrite/model/ModbusPDUReadCoilsResponse.go  | 17 +++-----
 .../ModbusPDUReadDeviceIdentificationRequest.go    |  2 +-
 .../ModbusPDUReadDeviceIdentificationResponse.go   |  2 +-
 .../model/ModbusPDUReadDiscreteInputsRequest.go    |  2 +-
 .../model/ModbusPDUReadDiscreteInputsResponse.go   | 17 +++-----
 .../model/ModbusPDUReadExceptionStatusRequest.go   |  2 +-
 .../model/ModbusPDUReadExceptionStatusResponse.go  |  2 +-
 .../model/ModbusPDUReadFifoQueueRequest.go         |  2 +-
 .../model/ModbusPDUReadFifoQueueResponse.go        | 17 +++-----
 .../model/ModbusPDUReadFileRecordRequest.go        |  4 +-
 .../model/ModbusPDUReadFileRecordRequestItem.go    |  2 +-
 .../model/ModbusPDUReadFileRecordResponse.go       |  4 +-
 .../model/ModbusPDUReadFileRecordResponseItem.go   |  8 ++--
 .../model/ModbusPDUReadHoldingRegistersRequest.go  |  2 +-
 .../model/ModbusPDUReadHoldingRegistersResponse.go | 17 +++-----
 .../model/ModbusPDUReadInputRegistersRequest.go    |  2 +-
 .../model/ModbusPDUReadInputRegistersResponse.go   | 17 +++-----
 ...sPDUReadWriteMultipleHoldingRegistersRequest.go | 17 +++-----
 ...PDUReadWriteMultipleHoldingRegistersResponse.go | 17 +++-----
 .../model/ModbusPDUReportServerIdRequest.go        |  2 +-
 .../model/ModbusPDUReportServerIdResponse.go       | 17 +++-----
 .../model/ModbusPDUWriteFileRecordRequest.go       |  4 +-
 .../model/ModbusPDUWriteFileRecordRequestItem.go   |  8 ++--
 .../model/ModbusPDUWriteFileRecordResponse.go      |  4 +-
 .../model/ModbusPDUWriteFileRecordResponseItem.go  |  8 ++--
 .../model/ModbusPDUWriteMultipleCoilsRequest.go    | 17 +++-----
 .../model/ModbusPDUWriteMultipleCoilsResponse.go   |  2 +-
 ...odbusPDUWriteMultipleHoldingRegistersRequest.go | 17 +++-----
 ...dbusPDUWriteMultipleHoldingRegistersResponse.go |  2 +-
 .../model/ModbusPDUWriteSingleCoilRequest.go       |  2 +-
 .../model/ModbusPDUWriteSingleCoilResponse.go      |  2 +-
 .../model/ModbusPDUWriteSingleRegisterRequest.go   |  2 +-
 .../model/ModbusPDUWriteSingleRegisterResponse.go  |  2 +-
 .../modbus/readwrite/model/ModbusSerialADU.go      |  2 +-
 .../plc4go/modbus/readwrite/model/ModbusTcpADU.go  |  2 +-
 .../plc4go/s7/readwrite/model/COTPPacket.go        |  4 +-
 .../readwrite/model/COTPPacketConnectionRequest.go |  2 +-
 .../model/COTPPacketConnectionResponse.go          |  2 +-
 .../plc4go/s7/readwrite/model/COTPPacketData.go    |  2 +-
 .../readwrite/model/COTPPacketDisconnectRequest.go |  2 +-
 .../model/COTPPacketDisconnectResponse.go          |  2 +-
 .../s7/readwrite/model/COTPPacketTpduError.go      |  2 +-
 .../plc4go/s7/readwrite/model/COTPParameter.go     |  2 +-
 .../s7/readwrite/model/COTPParameterCalledTsap.go  |  2 +-
 .../s7/readwrite/model/COTPParameterCallingTsap.go |  2 +-
 .../s7/readwrite/model/COTPParameterChecksum.go    |  2 +-
 ...COTPParameterDisconnectAdditionalInformation.go | 17 +++-----
 .../s7/readwrite/model/COTPParameterTpduSize.go    |  2 +-
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |  2 +-
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |  2 +-
 .../s7/readwrite/model/DataTransportErrorCode.go   |  2 +-
 .../plc4go/s7/readwrite/model/DataTransportSize.go |  2 +-
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |  2 +-
 .../plc4go/s7/readwrite/model/MemoryArea.go        |  2 +-
 .../plc4go/s7/readwrite/model/S7Address.go         |  2 +-
 .../plc4go/s7/readwrite/model/S7AddressAny.go      |  2 +-
 .../plc4go/s7/readwrite/model/S7Message.go         |  2 +-
 .../plc4go/s7/readwrite/model/S7MessageRequest.go  |  2 +-
 .../plc4go/s7/readwrite/model/S7MessageResponse.go |  2 +-
 .../s7/readwrite/model/S7MessageResponseData.go    |  2 +-
 .../plc4go/s7/readwrite/model/S7MessageUserData.go |  2 +-
 .../plc4go/s7/readwrite/model/S7Parameter.go       |  2 +-
 .../readwrite/model/S7ParameterReadVarRequest.go   | 27 ++++++------
 .../readwrite/model/S7ParameterReadVarResponse.go  |  2 +-
 .../model/S7ParameterSetupCommunication.go         |  2 +-
 .../s7/readwrite/model/S7ParameterUserData.go      | 27 ++++++------
 .../s7/readwrite/model/S7ParameterUserDataItem.go  |  2 +-
 .../model/S7ParameterUserDataItemCPUFunctions.go   |  2 +-
 .../readwrite/model/S7ParameterWriteVarRequest.go  | 27 ++++++------
 .../readwrite/model/S7ParameterWriteVarResponse.go |  2 +-
 .../plc4go/s7/readwrite/model/S7Payload.go         |  2 +-
 .../s7/readwrite/model/S7PayloadReadVarResponse.go | 29 ++++++-------
 .../plc4go/s7/readwrite/model/S7PayloadUserData.go | 27 ++++++------
 .../s7/readwrite/model/S7PayloadUserDataItem.go    |  2 +-
 ...PayloadUserDataItemCpuFunctionReadSzlRequest.go |  2 +-
 ...ayloadUserDataItemCpuFunctionReadSzlResponse.go | 27 ++++++------
 .../s7/readwrite/model/S7PayloadWriteVarRequest.go | 29 ++++++-------
 .../readwrite/model/S7PayloadWriteVarResponse.go   | 27 ++++++------
 .../s7/readwrite/model/S7VarPayloadDataItem.go     | 17 +++-----
 .../s7/readwrite/model/S7VarPayloadStatusItem.go   |  2 +-
 .../readwrite/model/S7VarRequestParameterItem.go   |  2 +-
 .../model/S7VarRequestParameterItemAddress.go      |  2 +-
 .../plc4go/s7/readwrite/model/SzlDataTreeItem.go   | 19 ++++----
 .../internal/plc4go/s7/readwrite/model/SzlId.go    |  2 +-
 .../s7/readwrite/model/SzlModuleTypeClass.go       |  2 +-
 .../plc4go/s7/readwrite/model/SzlSublist.go        |  2 +-
 .../plc4go/s7/readwrite/model/TPKTPacket.go        |  2 +-
 .../plc4go/s7/readwrite/model/TransportSize.go     |  2 +-
 sandbox/plc4go/internal/plc4go/spi/ReadBuffer.go   | 50 ++++++++++++++--------
 321 files changed, 788 insertions(+), 904 deletions(-)

diff --git a/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
index 3a55b19..753a787 100644
--- a/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
@@ -110,7 +110,7 @@ func (m ${type.name}) LengthInBytes() uint16 {
 }
 
 <#if type.type?has_content>
-func ${type.name}Parse(io spi.ReadBuffer) (${type.name}, error) {
+func ${type.name}Parse(io *spi.ReadBuffer) (${type.name}, error) {
     // TODO: Implement ...
     return 0, nil
 }
diff --git a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
index 37dbab0..6381ec4 100644
--- a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
@@ -299,7 +299,7 @@ func (m ${type.name}) LengthInBytes() uint16 {
     return m.LengthInBits() / 8
 }
 
-func ${type.name}Parse(io spi.ReadBuffer<#if type.parserArguments?has_content>, <#list type.parserArguments as parserArgument>${parserArgument.name} <#if helper.isComplexTypeReference(parserArgument.type)>I</#if>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#sep>, </#sep></#list></#if>) (<#if type.parentType??>${type.parentType.name}Initializer<#else>spi.Message</#if>, error) {
+func ${type.name}Parse(io *spi.ReadBuffer<#if type.parserArguments?has_content>, <#list type.parserArguments as parserArgument>${parserArgument.name} <#if helper.isComplexTypeReference(parserArgument.type)>I</#if>${helper.getLanguageTypeNameForTypeReference(parserArgument.type)}<#sep>, </#sep></#list></#if>) (<#if type.parentType??>${type.parentType.name}Initializer<#else>spi.Message</#if>, error) {
     <#if helper.requiresStartPosAndCurPos()>
     var startPos = io.GetPos()
     var curPos uint16
@@ -314,49 +314,47 @@ func ${type.name}Parse(io spi.ReadBuffer<#if type.parserArguments?has_content>,
                 <#if arrayField.loopExpression.contains("curPos")>
     curPos = io.GetPos() - startPos
                 </#if>
-    var ${arrayField.name} []<#if helper.isComplexTypeReference(arrayField.type)>I</#if>${helper.getLanguageTypeNameForField(arrayField)}
             <#-- If this is a count array, we can directly initialize an array with the given size -->
                 <#if helper.isCountArrayField(field)>
     // Count array
-    {
-        ${arrayField.name} := make([]<#if helper.isComplexTypeReference(arrayField.type)>I</#if>${helper.getLanguageTypeNameForField(field)}, ${helper.toIntegerParseExpression(16, arrayField.loopExpression, type.parserArguments)})
-        for curItem := uint16(0); curItem < uint16(${helper.toIntegerParseExpression(16, arrayField.loopExpression, type.parserArguments)}); curItem++ {
+    ${arrayField.name} := make([]<#if helper.isComplexTypeReference(arrayField.type)>I</#if>${helper.getLanguageTypeNameForField(field)}, ${helper.toIntegerParseExpression(16, arrayField.loopExpression, type.parserArguments)})
+    for curItem := uint16(0); curItem < uint16(${helper.toIntegerParseExpression(16, arrayField.loopExpression, type.parserArguments)}); curItem++ {
 <#if (!helper.isSimpleTypeReference(arrayField.type)) && helper.requiresVariable(arrayField, "lastItem")>            lastItem := curItem == uint16(${helper.toParseExpression(arrayField, arrayField.loopExpression, type.parserArguments)} - 1)</#if>
                     <#if helper.isSimpleTypeReference(arrayField.type)>
                         <#assign simpleTypeReference = arrayField.type>
-            _${arrayField.name}Val, _err := ${helper.getReadBufferReadMethodCall(simpleTypeReference)}
-            if _err != nil {
-                return nil, errors.New("Error parsing '${arrayField.name}' field " + _err.Error())
-            }
-            ${arrayField.name} = append(${arrayField.name}, _${arrayField.name}Val)
+        _item, _err := ${helper.getReadBufferReadMethodCall(simpleTypeReference)}
+        if _err != nil {
+            return nil, errors.New("Error parsing '${arrayField.name}' field " + _err.Error())
+        }
+        ${arrayField.name}[curItem] = _item
                     <#else>
-            _message, _err := ${arrayField.type.name}Parse(io<#if field.params?has_content>, <#list field.params as parserArgument><#if helper.isOptionalField(helper.getFieldForNameFromCurrentOrParent(parserArgument.name))>*</#if>${helper.toTypedParseExpression(helper.getArgumentType(arrayField.type, parserArgument?index), parserArgument, type.parserArguments)}<#sep>, </#sep></#list></#if>)
-            if _err != nil {
-                return nil, errors.New("Error parsing '${arrayField.name}' field " + _err.Error())
-            }
-            var _item I${helper.getLanguageTypeNameForField(field)}
-            _item, _ok := _message.(I${arrayField.type.name})
-            if !_ok {
-                return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to ${arrayField.type.name}")
-            }
-            ${arrayField.name} = append(${arrayField.name}, _item)
-                    </#if>
+        _message, _err := ${arrayField.type.name}Parse(io<#if field.params?has_content>, <#list field.params as parserArgument><#if helper.isOptionalField(helper.getFieldForNameFromCurrentOrParent(parserArgument.name))>*</#if>${helper.toTypedParseExpression(helper.getArgumentType(arrayField.type, parserArgument?index), parserArgument, type.parserArguments)}<#sep>, </#sep></#list></#if>)
+        if _err != nil {
+            return nil, errors.New("Error parsing '${arrayField.name}' field " + _err.Error())
+        }
+        var _item I${helper.getLanguageTypeNameForField(field)}
+        _item, _ok := _message.(I${arrayField.type.name})
+        if !_ok {
+            return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to ${arrayField.type.name}")
         }
+        ${arrayField.name}[curItem] = _item
+                    </#if>
     }
                 <#-- In all other cases do we have to work with a list, that is later converted to an array -->
                 <#elseif helper.isLengthArrayField(field)>
                 <#-- For a length array, we read data till the read position of the buffer reaches a given position -->
     // Length array
+    ${arrayField.name} := make([]<#if helper.isComplexTypeReference(arrayField.type)>I</#if>${helper.getLanguageTypeNameForField(field)}, 0)
     _${arrayField.name}Length := ${helper.toIntegerParseExpression(16, arrayField.loopExpression, type.parserArguments)}
     _${arrayField.name}EndPos := io.GetPos() + uint16(_${arrayField.name}Length)
     for ;io.GetPos() < _${arrayField.name}EndPos; {
                     <#if helper.isSimpleTypeReference(arrayField.type)>
                         <#assign simpleTypeReference = arrayField.type>
-        _${arrayField.name}Val, _err := ${helper.getReadBufferReadMethodCall(simpleTypeReference)}
+        _item, _err := ${helper.getReadBufferReadMethodCall(simpleTypeReference)}
         if _err != nil {
             return nil, errors.New("Error parsing '${arrayField.name}' field " + _err.Error())
         }
-        ${arrayField.name} = append(${arrayField.name}, _${arrayField.name}Val)
+        ${arrayField.name} = append(${arrayField.name}, _item)
                     <#else>
         _message, _err := ${arrayField.type.name}Parse(io<#if field.params?has_content>, <#list field.params as parserArgument><#if helper.isOptionalField(helper.getFieldForNameFromCurrentOrParent(parserArgument.name))>*</#if>${helper.toTypedParseExpression(helper.getArgumentType(arrayField.type, parserArgument?index), parserArgument, type.parserArguments)}<#sep>, </#sep></#list></#if>)
         if _err != nil {
@@ -377,14 +375,15 @@ func ${type.name}Parse(io spi.ReadBuffer<#if type.parserArguments?has_content>,
                     <#-- A terminated array keeps on reading data as long as the termination expression evaluates to false -->
                 <#elseif helper.isTerminatedArrayField(field)>
     // Terminated array
+    ${arrayField.name} := make([]<#if helper.isComplexTypeReference(arrayField.type)>I</#if>${helper.getLanguageTypeNameForField(field)}, 0)
     for ;!bool(${helper.toParseExpression(arrayField, arrayField.loopExpression, type.parserArguments)}); {
                     <#if helper.isSimpleTypeReference(arrayField.type)>
                         <#assign simpleTypeReference = arrayField.type>
-        _${arrayField.name}Val, _err := ${helper.getReadBufferReadMethodCall(simpleTypeReference)}
+        _item, _err := ${helper.getReadBufferReadMethodCall(simpleTypeReference)}
         if _err != nil {
             return nil, errors.New("Error parsing '${arrayField.name}' field " + _err.Error())
         }
-        ${arrayField.name} = append(${arrayField.name}, _${arrayField.name}Val)
+        ${arrayField.name} = append(${arrayField.name}, _item)
                     <#else>
         _message, _err := ${arrayField.type.name}Parse(io<#if field.params?has_content>, <#list field.params as parserArgument><#if helper.isOptionalField(helper.getFieldForNameFromCurrentOrParent(parserArgument.name))>*</#if>${helper.toTypedParseExpression(helper.getArgumentType(arrayField.type, parserArgument?index), parserArgument, type.parserArguments)}<#sep>, </#sep></#list></#if>)
         if _err != nil {
diff --git a/sandbox/plc4go/cmd/main/drivers/bacnetip.go b/sandbox/plc4go/cmd/main/drivers/bacnetip.go
index 83a7139..850c44b 100644
--- a/sandbox/plc4go/cmd/main/drivers/bacnetip.go
+++ b/sandbox/plc4go/cmd/main/drivers/bacnetip.go
@@ -27,7 +27,7 @@ func BacnetIp() {
 		// Output an error ...
 	}
 	rb := spi.ReadBufferNew(request)
-	adu, err := model.BVLCParse(*rb)
+	adu, err := model.BVLCParse(rb)
 	if err != nil {
 		// Output an error ...
 	}
diff --git a/sandbox/plc4go/cmd/main/drivers/knxnetip.go b/sandbox/plc4go/cmd/main/drivers/knxnetip.go
index 8d045dc..6cc4078 100644
--- a/sandbox/plc4go/cmd/main/drivers/knxnetip.go
+++ b/sandbox/plc4go/cmd/main/drivers/knxnetip.go
@@ -27,7 +27,7 @@ func KnxNetIp() {
 		// Output an error ...
 	}
 	rb := spi.ReadBufferNew(request)
-	adu, err := model.KNXNetIPMessageParse(*rb)
+	adu, err := model.KNXNetIPMessageParse(rb)
 	if err != nil {
 		// Output an error ...
 	}
diff --git a/sandbox/plc4go/cmd/main/drivers/modbus.go b/sandbox/plc4go/cmd/main/drivers/modbus.go
index aa9dde9..d41916e 100644
--- a/sandbox/plc4go/cmd/main/drivers/modbus.go
+++ b/sandbox/plc4go/cmd/main/drivers/modbus.go
@@ -20,18 +20,28 @@ import (
 	"fmt"
 	"plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/modbus/readwrite/model"
 	"plc4x.apache.org/plc4go-modbus-driver/0.8.0/internal/plc4go/spi"
+	"strings"
 )
 
 func Modbus() {
+	test("000000000006ff0408d20002", false)
+	test("7cfe000000c9ff04c600000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000001db000001d600004a380000000000000000000000000000000000000000000000000000000000006461696d006e0000000000000000000000000000303100300000000000000000000000000000000000000000000000000000000000000000000000000000", true)
+	test("000a0000001101140e060003270e000206000400000008", false)
+	test("000a0000001b011418050600000000110600000000000000000000000000000000", true)
+	test("000a0000000c011509060002000000010008", false)
+	test("000a00000015011512060001270F00010000060002000000010000", false)
+}
+
+func test(rawMessage string, response bool) {
 	// Create the input data
 	// "000a 0000 0006 01 03 00 00 00 04"
-	request, err := hex.DecodeString("000a00000006010300000004")
+	request, err := hex.DecodeString(rawMessage)
 	if err != nil {
 		fmt.Errorf("error preparing input buffer")
 		return
 	}
 	rb := spi.ReadBufferNew(request)
-	adu, err := model.ModbusTcpADUParse(*rb, false)
+	adu, err := model.ModbusTcpADUParse(rb, response)
 	if err != nil {
 		fmt.Errorf("error parsing input")
 		return
@@ -40,8 +50,11 @@ func Modbus() {
 		wb := spi.WriteBufferNew()
 		val := model.CastIModbusTcpADU(adu)
 		val.Serialize(*wb)
-		serializedRequest := hex.EncodeToString(wb.GetBytes())
-		fmt.Printf("Got result: %s", serializedRequest)
+		serializedMessage := hex.EncodeToString(wb.GetBytes())
+		if strings.ToUpper(serializedMessage) == strings.ToUpper(rawMessage) {
+			fmt.Println("Success")
+		} else {
+			fmt.Println("Failure")
+		}
 	}
-
 }
diff --git a/sandbox/plc4go/cmd/main/drivers/s7.go b/sandbox/plc4go/cmd/main/drivers/s7.go
index 8511af3..f6c582b 100644
--- a/sandbox/plc4go/cmd/main/drivers/s7.go
+++ b/sandbox/plc4go/cmd/main/drivers/s7.go
@@ -27,7 +27,7 @@ func S7() {
 		// Output an error ...
 	}
 	rb := spi.ReadBufferNew(request)
-	adu, err := model.TPKTPacketParse(*rb)
+	adu, err := model.TPKTPacketParse(rb)
 	if err != nil {
 		// Output an error ...
 	}
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
index 360873d..1b9d8eb 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
@@ -77,7 +77,7 @@ func (m APDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUParse(io spi.ReadBuffer, apduLength uint16) (spi.Message, error) {
+func APDUParse(io *spi.ReadBuffer, apduLength uint16) (spi.Message, error) {
 
 	// Discriminator Field (apduType) (Used as input to a switch field)
 	apduType, _apduTypeErr := io.ReadUint8(4)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
index ff07cc9..a4344d6 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
@@ -93,7 +93,7 @@ func (m APDUAbort) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUAbortParse(io spi.ReadBuffer) (APDUInitializer, error) {
+func APDUAbortParse(io *spi.ReadBuffer) (APDUInitializer, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
index 3153022..5bea9a4 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
@@ -110,7 +110,7 @@ func (m APDUComplexAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUComplexAckParse(io spi.ReadBuffer) (APDUInitializer, error) {
+func APDUComplexAckParse(io *spi.ReadBuffer) (APDUInitializer, error) {
 
 	// Simple Field (segmentedMessage)
 	segmentedMessage, _segmentedMessageErr := io.ReadBit()
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
index 472e697..51be524 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -122,7 +122,7 @@ func (m APDUConfirmedRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUConfirmedRequestParse(io spi.ReadBuffer, apduLength uint16) (APDUInitializer, error) {
+func APDUConfirmedRequestParse(io *spi.ReadBuffer, apduLength uint16) (APDUInitializer, error) {
 
 	// Simple Field (segmentedMessage)
 	segmentedMessage, _segmentedMessageErr := io.ReadBit()
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
index 1bc4b0f..9028fe2 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUError.go
@@ -90,7 +90,7 @@ func (m APDUError) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUErrorParse(io spi.ReadBuffer) (APDUInitializer, error) {
+func APDUErrorParse(io *spi.ReadBuffer) (APDUInitializer, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
index 8be5e2b..bdc27fd 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
@@ -89,7 +89,7 @@ func (m APDUReject) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDURejectParse(io spi.ReadBuffer) (APDUInitializer, error) {
+func APDURejectParse(io *spi.ReadBuffer) (APDUInitializer, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
index d25bc53..f58737d 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSegmentAck.go
@@ -101,7 +101,7 @@ func (m APDUSegmentAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUSegmentAckParse(io spi.ReadBuffer) (APDUInitializer, error) {
+func APDUSegmentAckParse(io *spi.ReadBuffer) (APDUInitializer, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
index 0f53daa..66223a0 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUSimpleAck.go
@@ -89,7 +89,7 @@ func (m APDUSimpleAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUSimpleAckParse(io spi.ReadBuffer) (APDUInitializer, error) {
+func APDUSimpleAckParse(io *spi.ReadBuffer) (APDUInitializer, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
index 0803ee7..11006f4 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUUnconfirmedRequest.go
@@ -86,7 +86,7 @@ func (m APDUUnconfirmedRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APDUUnconfirmedRequestParse(io spi.ReadBuffer, apduLength uint16) (APDUInitializer, error) {
+func APDUUnconfirmedRequestParse(io *spi.ReadBuffer, apduLength uint16) (APDUInitializer, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
index d97d077..f23f299 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
@@ -61,7 +61,7 @@ func (m ApplicationTag) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ApplicationTagParse(io spi.ReadBuffer) (ApplicationTag, error) {
+func ApplicationTagParse(io *spi.ReadBuffer) (ApplicationTag, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
index 106b548..c5ba724 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetAddress.go
@@ -77,21 +77,18 @@ func (m BACnetAddress) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetAddressParse(io spi.ReadBuffer) (spi.Message, error) {
+func BACnetAddressParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Array field (address)
-	var address []uint8
 	// Count array
-	{
-		address := make([]uint8, uint16(4))
-		for curItem := uint16(0); curItem < uint16(uint16(4)); curItem++ {
-
-			_addressVal, _err := io.ReadUint8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'address' field " + _err.Error())
-			}
-			address = append(address, _addressVal)
+	address := make([]uint8, uint16(4))
+	for curItem := uint16(0); curItem < uint16(uint16(4)); curItem++ {
+
+		_item, _err := io.ReadUint8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'address' field " + _err.Error())
 		}
+		address[curItem] = _item
 	}
 
 	// Simple Field (port)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
index 86be560..5c2bd40 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
@@ -77,7 +77,7 @@ func (m BACnetConfirmedServiceACK) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKParse(io spi.ReadBuffer) (spi.Message, error) {
+func BACnetConfirmedServiceACKParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (serviceChoice) (Used as input to a switch field)
 	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
index 8484782..d4d56ec 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicReadFile.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKAtomicReadFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKAtomicReadFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKAtomicReadFileParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKAtomicReadFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
index 836bef8..9cbc185 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKAtomicWriteFile.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKAtomicWriteFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKAtomicWriteFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKAtomicWriteFileParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKAtomicWriteFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
index 30c3090..b35dde9 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKConfirmedPrivateTransfer.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKConfirmedPrivateTransfer) LengthInBytes() uint1
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKConfirmedPrivateTransferParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKConfirmedPrivateTransfer(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
index c61faa1..1686b38 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKCreateObject.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKCreateObject) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKCreateObjectParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKCreateObjectParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKCreateObject(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
index 5c02bfd..9e34269 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetAlarmSummary.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKGetAlarmSummary) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKGetAlarmSummaryParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKGetAlarmSummaryParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKGetAlarmSummary(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
index a25b3a7..76aa6b1 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEnrollmentSummary.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKGetEnrollmentSummary) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKGetEnrollmentSummaryParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKGetEnrollmentSummary(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
index 591d8c7..0235e2c 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKGetEventInformation.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKGetEventInformation) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKGetEventInformationParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKGetEventInformationParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKGetEventInformation(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
index 8db496a..2b01b03 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadProperty.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKReadProperty) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKReadPropertyParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKReadPropertyParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKReadProperty(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
index 447e181..44c93e6 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadPropertyMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKReadPropertyMultiple) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKReadPropertyMultipleParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKReadPropertyMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
index b9e22e9..2d0f011 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKReadRange.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKReadRange) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKReadRangeParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKReadRangeParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKReadRange(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
index 2b97bb1..3d57f4b 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedAuthenticate.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKRemovedAuthenticate) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKRemovedAuthenticateParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKRemovedAuthenticate(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
index 9eeb923..98e3251 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKRemovedReadPropertyConditional.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKRemovedReadPropertyConditional) LengthInBytes()
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKRemovedReadPropertyConditionalParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKRemovedReadPropertyConditional(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
index 47485b4..7d0018b 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTData.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKVTData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKVTDataParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKVTDataParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKVTData(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
index 2683f1e..1e11502 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACKVTOpen.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceACKVTOpen) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceACKVTOpenParse(io spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
+func BACnetConfirmedServiceACKVTOpenParse(io *spi.ReadBuffer) (BACnetConfirmedServiceACKInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceACKVTOpen(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
index ac4a544..f5dd7fd 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
@@ -77,7 +77,7 @@ func (m BACnetConfirmedServiceRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestParse(io spi.ReadBuffer, len uint16) (spi.Message, error) {
+func BACnetConfirmedServiceRequestParse(io *spi.ReadBuffer, len uint16) (spi.Message, error) {
 
 	// Discriminator Field (serviceChoice) (Used as input to a switch field)
 	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
index 5a833b9..34b01ec 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestAcknowledgeAlarm) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestAcknowledgeAlarmParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestAcknowledgeAlarmParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestAcknowledgeAlarm(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
index b024406..9b608bb 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestAddListElement) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestAddListElementParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestAddListElementParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestAddListElement(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
index 9460ecc..37abcf1 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicReadFile.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestAtomicReadFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestAtomicReadFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestAtomicReadFileParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestAtomicReadFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
index 849d0d5..c3a5c89 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAtomicWriteFile.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestAtomicWriteFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestAtomicWriteFileParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestAtomicWriteFileParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestAtomicWriteFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
index 6bd2736..4b912c2 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotification.go
@@ -143,7 +143,7 @@ func (m BACnetConfirmedServiceRequestConfirmedCOVNotification) LengthInBytes() u
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io spi.ReadBuffer, len uint16) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io *spi.ReadBuffer, len uint16) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Const Field (subscriberProcessIdentifierHeader)
 	subscriberProcessIdentifierHeader, _subscriberProcessIdentifierHeaderErr := io.ReadUint8(8)
@@ -218,18 +218,15 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io spi.ReadBuffe
 	}
 
 	// Array field (lifetimeSeconds)
-	var lifetimeSeconds []int8
 	// Count array
-	{
-		lifetimeSeconds := make([]int8, lifetimeLength)
-		for curItem := uint16(0); curItem < uint16(lifetimeLength); curItem++ {
+	lifetimeSeconds := make([]int8, lifetimeLength)
+	for curItem := uint16(0); curItem < uint16(lifetimeLength); curItem++ {
 
-			_lifetimeSecondsVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'lifetimeSeconds' field " + _err.Error())
-			}
-			lifetimeSeconds = append(lifetimeSeconds, _lifetimeSecondsVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'lifetimeSeconds' field " + _err.Error())
 		}
+		lifetimeSeconds[curItem] = _item
 	}
 
 	// Const Field (listOfValuesOpeningTag)
@@ -242,8 +239,8 @@ func BACnetConfirmedServiceRequestConfirmedCOVNotificationParse(io spi.ReadBuffe
 	}
 
 	// Array field (notifications)
-	var notifications []IBACnetTagWithContent
 	// Length array
+	notifications := make([]IBACnetTagWithContent, 0)
 	_notificationsLength := uint16(len) - uint16(uint16(18))
 	_notificationsEndPos := io.GetPos() + uint16(_notificationsLength)
 	for io.GetPos() < _notificationsEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
index 75f77f4..4ac5f74 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple) LengthInB
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
index 7729529..80bba48 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestConfirmedEventNotification) LengthInBytes()
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestConfirmedEventNotification(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
index 7eca520..ce5336d 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestConfirmedPrivateTransfer) LengthInBytes() u
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestConfirmedPrivateTransfer(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
index b4c7a2a..b62129b 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedTextMessage.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestConfirmedTextMessage) LengthInBytes() uint1
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestConfirmedTextMessageParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestConfirmedTextMessageParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestConfirmedTextMessage(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
index 29b065c..f5f2946 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestCreateObject.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestCreateObject) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestCreateObjectParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestCreateObjectParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestCreateObject(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
index e3cb64e..abf93e9 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeleteObject.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestDeleteObject) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestDeleteObjectParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestDeleteObjectParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestDeleteObject(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
index 354c6f4..dd39d90 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestDeviceCommunicationControl) LengthInBytes()
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestDeviceCommunicationControlParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestDeviceCommunicationControlParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestDeviceCommunicationControl(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
index f51cd44..fffcf270 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEnrollmentSummary.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestGetEnrollmentSummary) LengthInBytes() uint1
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestGetEnrollmentSummaryParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestGetEnrollmentSummary(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
index 63588cd..fec7e78 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestGetEventInformation.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestGetEventInformation) LengthInBytes() uint16
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestGetEventInformationParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestGetEventInformationParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestGetEventInformation(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
index b642807..5f4e878 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestLifeSafetyOperation.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestLifeSafetyOperation) LengthInBytes() uint16
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestLifeSafetyOperationParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestLifeSafetyOperationParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestLifeSafetyOperation(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index 92f4932..1babc39 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -106,7 +106,7 @@ func (m BACnetConfirmedServiceRequestReadProperty) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestReadPropertyParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestReadPropertyParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Const Field (objectIdentifierHeader)
 	objectIdentifierHeader, _objectIdentifierHeaderErr := io.ReadUint8(8)
@@ -145,18 +145,15 @@ func BACnetConfirmedServiceRequestReadPropertyParse(io spi.ReadBuffer) (BACnetCo
 	}
 
 	// Array field (propertyIdentifier)
-	var propertyIdentifier []int8
 	// Count array
-	{
-		propertyIdentifier := make([]int8, propertyIdentifierLength)
-		for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
+	propertyIdentifier := make([]int8, propertyIdentifierLength)
+	for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
 
-			_propertyIdentifierVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'propertyIdentifier' field " + _err.Error())
-			}
-			propertyIdentifier = append(propertyIdentifier, _propertyIdentifierVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'propertyIdentifier' field " + _err.Error())
 		}
+		propertyIdentifier[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
index ae796a2..5903c32 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadPropertyMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestReadPropertyMultiple) LengthInBytes() uint1
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestReadPropertyMultipleParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestReadPropertyMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
index a0da68b..6c14476 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestReadRange) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestReadRangeParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestReadRangeParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestReadRange(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
index f613f29..01384d1 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestReinitializeDevice) LengthInBytes() uint16
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestReinitializeDeviceParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestReinitializeDeviceParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestReinitializeDevice(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
index 08d6d64..761cc5c 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestRemoveListElement) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestRemoveListElementParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestRemoveListElementParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestRemoveListElement(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
index f6396f1..f426b40 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedAuthenticate.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestRemovedAuthenticate) LengthInBytes() uint16
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestRemovedAuthenticateParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestRemovedAuthenticate(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
index 57aaa63..2c922b3 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedReadPropertyConditional.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestRemovedReadPropertyConditional) LengthInByt
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestRemovedReadPropertyConditionalParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestRemovedReadPropertyConditional(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
index 766c3d6..432faf4 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemovedRequestKey.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestRemovedRequestKey) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestRemovedRequestKeyParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestRemovedRequestKeyParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestRemovedRequestKey(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
index eb3848e..5e10fff 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOV.go
@@ -126,7 +126,7 @@ func (m BACnetConfirmedServiceRequestSubscribeCOV) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestSubscribeCOVParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestSubscribeCOVParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Const Field (subscriberProcessIdentifierHeader)
 	subscriberProcessIdentifierHeader, _subscriberProcessIdentifierHeaderErr := io.ReadUint8(8)
@@ -204,18 +204,15 @@ func BACnetConfirmedServiceRequestSubscribeCOVParse(io spi.ReadBuffer) (BACnetCo
 	}
 
 	// Array field (lifetimeSeconds)
-	var lifetimeSeconds []int8
 	// Count array
-	{
-		lifetimeSeconds := make([]int8, lifetimeLength)
-		for curItem := uint16(0); curItem < uint16(lifetimeLength); curItem++ {
+	lifetimeSeconds := make([]int8, lifetimeLength)
+	for curItem := uint16(0); curItem < uint16(lifetimeLength); curItem++ {
 
-			_lifetimeSecondsVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'lifetimeSeconds' field " + _err.Error())
-			}
-			lifetimeSeconds = append(lifetimeSeconds, _lifetimeSecondsVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'lifetimeSeconds' field " + _err.Error())
 		}
+		lifetimeSeconds[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
index 227ed88..fdbf803 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVProperty.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestSubscribeCOVProperty) LengthInBytes() uint1
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestSubscribeCOVPropertyParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestSubscribeCOVProperty(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
index 97d4ad2..e07cb1f 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple) LengthInBytes
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
index 3b35ceb..294f08c 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTClose.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestVTClose) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestVTCloseParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestVTCloseParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestVTClose(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
index fbbbfd5..bb51558 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTData.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestVTData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestVTDataParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestVTDataParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestVTData(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
index acddeb0..a74e252 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestVTOpen.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestVTOpen) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestVTOpenParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestVTOpenParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestVTOpen(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 07664c4..35819a5 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -125,7 +125,7 @@ func (m BACnetConfirmedServiceRequestWriteProperty) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestWritePropertyParse(io spi.ReadBuffer, len uint16) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestWritePropertyParse(io *spi.ReadBuffer, len uint16) (BACnetConfirmedServiceRequestInitializer, error) {
 	var startPos = io.GetPos()
 	var curPos uint16
 
@@ -166,18 +166,15 @@ func BACnetConfirmedServiceRequestWritePropertyParse(io spi.ReadBuffer, len uint
 	}
 
 	// Array field (propertyIdentifier)
-	var propertyIdentifier []int8
 	// Count array
-	{
-		propertyIdentifier := make([]int8, propertyIdentifierLength)
-		for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
+	propertyIdentifier := make([]int8, propertyIdentifierLength)
+	for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
 
-			_propertyIdentifierVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'propertyIdentifier' field " + _err.Error())
-			}
-			propertyIdentifier = append(propertyIdentifier, _propertyIdentifierVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'propertyIdentifier' field " + _err.Error())
 		}
+		propertyIdentifier[curItem] = _item
 	}
 
 	// Const Field (openingTag)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
index 30d10fa..5441100 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWritePropertyMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetConfirmedServiceRequestWritePropertyMultiple) LengthInBytes() uint
 	return m.LengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestWritePropertyMultipleParse(io spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
+func BACnetConfirmedServiceRequestWritePropertyMultipleParse(io *spi.ReadBuffer) (BACnetConfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetConfirmedServiceRequestWritePropertyMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
index 1e3cce8..e1bfd88 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
@@ -77,7 +77,7 @@ func (m BACnetError) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorParse(io spi.ReadBuffer) (spi.Message, error) {
+func BACnetErrorParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (serviceChoice) (Used as input to a switch field)
 	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
index 59e81f9..c459668 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicReadFile.go
@@ -76,7 +76,7 @@ func (m BACnetErrorAtomicReadFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorAtomicReadFileParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorAtomicReadFileParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorAtomicReadFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
index b12ff8b..a8a2382 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorAtomicWriteFile.go
@@ -76,7 +76,7 @@ func (m BACnetErrorAtomicWriteFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorAtomicWriteFileParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorAtomicWriteFileParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorAtomicWriteFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
index 35b5714..a5b5ffc 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorConfirmedPrivateTransfer.go
@@ -76,7 +76,7 @@ func (m BACnetErrorConfirmedPrivateTransfer) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorConfirmedPrivateTransferParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorConfirmedPrivateTransfer(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
index 8049a10..343be75 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorCreateObject.go
@@ -76,7 +76,7 @@ func (m BACnetErrorCreateObject) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorCreateObjectParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorCreateObjectParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorCreateObject(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
index 3a93bc2..db3a0df 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetAlarmSummary.go
@@ -76,7 +76,7 @@ func (m BACnetErrorGetAlarmSummary) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorGetAlarmSummaryParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorGetAlarmSummaryParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorGetAlarmSummary(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
index 1b42e5b..cb20c5d 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEnrollmentSummary.go
@@ -76,7 +76,7 @@ func (m BACnetErrorGetEnrollmentSummary) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorGetEnrollmentSummaryParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorGetEnrollmentSummary(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
index 1a34416..688af41 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorGetEventInformation.go
@@ -76,7 +76,7 @@ func (m BACnetErrorGetEventInformation) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorGetEventInformationParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorGetEventInformationParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorGetEventInformation(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
index 545756c..b1b4105 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadProperty.go
@@ -108,7 +108,7 @@ func (m BACnetErrorReadProperty) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorReadPropertyParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorReadPropertyParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Const Field (errorClassHeader)
 	errorClassHeader, _errorClassHeaderErr := io.ReadUint8(5)
@@ -126,18 +126,15 @@ func BACnetErrorReadPropertyParse(io spi.ReadBuffer) (BACnetErrorInitializer, er
 	}
 
 	// Array field (errorClass)
-	var errorClass []int8
 	// Count array
-	{
-		errorClass := make([]int8, errorClassLength)
-		for curItem := uint16(0); curItem < uint16(errorClassLength); curItem++ {
+	errorClass := make([]int8, errorClassLength)
+	for curItem := uint16(0); curItem < uint16(errorClassLength); curItem++ {
 
-			_errorClassVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'errorClass' field " + _err.Error())
-			}
-			errorClass = append(errorClass, _errorClassVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'errorClass' field " + _err.Error())
 		}
+		errorClass[curItem] = _item
 	}
 
 	// Const Field (errorCodeHeader)
@@ -156,18 +153,15 @@ func BACnetErrorReadPropertyParse(io spi.ReadBuffer) (BACnetErrorInitializer, er
 	}
 
 	// Array field (errorCode)
-	var errorCode []int8
 	// Count array
-	{
-		errorCode := make([]int8, errorCodeLength)
-		for curItem := uint16(0); curItem < uint16(errorCodeLength); curItem++ {
+	errorCode := make([]int8, errorCodeLength)
+	for curItem := uint16(0); curItem < uint16(errorCodeLength); curItem++ {
 
-			_errorCodeVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'errorCode' field " + _err.Error())
-			}
-			errorCode = append(errorCode, _errorCodeVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'errorCode' field " + _err.Error())
 		}
+		errorCode[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
index df95314..a928128 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadPropertyMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetErrorReadPropertyMultiple) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorReadPropertyMultipleParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorReadPropertyMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
index 19749e6..6c066d0 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorReadRange.go
@@ -76,7 +76,7 @@ func (m BACnetErrorReadRange) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorReadRangeParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorReadRangeParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorReadRange(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
index 822b39c..e960cef 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedAuthenticate.go
@@ -76,7 +76,7 @@ func (m BACnetErrorRemovedAuthenticate) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorRemovedAuthenticateParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorRemovedAuthenticate(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
index 6ddecc8..30a385b 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorRemovedReadPropertyConditional.go
@@ -76,7 +76,7 @@ func (m BACnetErrorRemovedReadPropertyConditional) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorRemovedReadPropertyConditionalParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorRemovedReadPropertyConditional(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
index d4edacd..180b297 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTData.go
@@ -76,7 +76,7 @@ func (m BACnetErrorVTData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorVTDataParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorVTDataParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorVTData(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
index 2f043b5..a8cbd95 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetErrorVTOpen.go
@@ -76,7 +76,7 @@ func (m BACnetErrorVTOpen) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetErrorVTOpenParse(io spi.ReadBuffer) (BACnetErrorInitializer, error) {
+func BACnetErrorVTOpenParse(io *spi.ReadBuffer) (BACnetErrorInitializer, error) {
 
 	// Create the instance
 	return NewBACnetErrorVTOpen(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
index c749a44..9f752cb 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
@@ -59,7 +59,7 @@ func (m BACnetNetworkType) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNetworkTypeParse(io spi.ReadBuffer) (BACnetNetworkType, error) {
+func BACnetNetworkTypeParse(io *spi.ReadBuffer) (BACnetNetworkType, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
index a1150d5..b4f2194 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
@@ -70,7 +70,7 @@ func (m BACnetNodeType) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNodeTypeParse(io spi.ReadBuffer) (BACnetNodeType, error) {
+func BACnetNodeTypeParse(io *spi.ReadBuffer) (BACnetNodeType, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
index 60ac271..455cfdb 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
@@ -51,7 +51,7 @@ func (m BACnetNotifyType) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetNotifyTypeParse(io spi.ReadBuffer) (BACnetNotifyType, error) {
+func BACnetNotifyTypeParse(io *spi.ReadBuffer) (BACnetNotifyType, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
index 025063a..3f292c7 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
@@ -107,7 +107,7 @@ func (m BACnetObjectType) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetObjectTypeParse(io spi.ReadBuffer) (BACnetObjectType, error) {
+func BACnetObjectTypeParse(io *spi.ReadBuffer) (BACnetObjectType, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
index d810c33..b0d6d37 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
@@ -77,7 +77,7 @@ func (m BACnetServiceAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckParse(io spi.ReadBuffer) (spi.Message, error) {
+func BACnetServiceAckParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (serviceChoice) (Used as input to a switch field)
 	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
index cacfb3e..7d29a6f 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicReadFile.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckAtomicReadFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckAtomicReadFileParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckAtomicReadFileParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckAtomicReadFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
index d50795a..43ef81f 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckAtomicWriteFile.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckAtomicWriteFile) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckAtomicWriteFileParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckAtomicWriteFileParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckAtomicWriteFile(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
index d4e46ef..bd0c852 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckConfirmedPrivateTransfer.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckConfirmedPrivateTransfer) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckConfirmedPrivateTransferParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckConfirmedPrivateTransferParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckConfirmedPrivateTransfer(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
index 1720452..0cfe474 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckCreateObject.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckCreateObject) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckCreateObjectParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckCreateObjectParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckCreateObject(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
index de13799..a7a7710 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetAlarmSummary.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckGetAlarmSummary) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckGetAlarmSummaryParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckGetAlarmSummaryParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckGetAlarmSummary(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
index 2857ae6..65f61f3 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEnrollmentSummary.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckGetEnrollmentSummary) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckGetEnrollmentSummaryParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckGetEnrollmentSummaryParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckGetEnrollmentSummary(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
index d118945..5e386f7 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckGetEventInformation.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckGetEventInformation) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckGetEventInformationParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckGetEventInformationParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckGetEventInformation(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
index a641eff..6afd7bc 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadProperty.go
@@ -119,7 +119,7 @@ func (m BACnetServiceAckReadProperty) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckReadPropertyParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckReadPropertyParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Const Field (objectIdentifierHeader)
 	objectIdentifierHeader, _objectIdentifierHeaderErr := io.ReadUint8(8)
@@ -158,18 +158,15 @@ func BACnetServiceAckReadPropertyParse(io spi.ReadBuffer) (BACnetServiceAckIniti
 	}
 
 	// Array field (propertyIdentifier)
-	var propertyIdentifier []int8
 	// Count array
-	{
-		propertyIdentifier := make([]int8, propertyIdentifierLength)
-		for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
+	propertyIdentifier := make([]int8, propertyIdentifierLength)
+	for curItem := uint16(0); curItem < uint16(propertyIdentifierLength); curItem++ {
 
-			_propertyIdentifierVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'propertyIdentifier' field " + _err.Error())
-			}
-			propertyIdentifier = append(propertyIdentifier, _propertyIdentifierVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'propertyIdentifier' field " + _err.Error())
 		}
+		propertyIdentifier[curItem] = _item
 	}
 
 	// Const Field (openingTag)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
index 189f03e..88bde24 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadPropertyMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckReadPropertyMultiple) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckReadPropertyMultipleParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckReadPropertyMultipleParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckReadPropertyMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
index 7603d13..5e192b4 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckReadRange.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckReadRange) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckReadRangeParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckReadRangeParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckReadRange(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
index 9ebcaff..03a2e70 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedAuthenticate.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckRemovedAuthenticate) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckRemovedAuthenticateParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckRemovedAuthenticateParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckRemovedAuthenticate(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
index b3d5a03..0df0a00 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckRemovedReadPropertyConditional.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckRemovedReadPropertyConditional) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckRemovedReadPropertyConditionalParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckRemovedReadPropertyConditionalParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckRemovedReadPropertyConditional(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
index eb6a39b..45305dd 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTData.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckVTData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckVTDataParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckVTDataParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckVTData(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
index b63b74e..2e59f5a 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAckVTOpen.go
@@ -76,7 +76,7 @@ func (m BACnetServiceAckVTOpen) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetServiceAckVTOpenParse(io spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
+func BACnetServiceAckVTOpenParse(io *spi.ReadBuffer) (BACnetServiceAckInitializer, error) {
 
 	// Create the instance
 	return NewBACnetServiceAckVTOpen(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
index 53be709..59b97fe 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
@@ -97,7 +97,7 @@ func (m BACnetTag) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagParse(io spi.ReadBuffer) (spi.Message, error) {
+func BACnetTagParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (typeOrTagNumber)
 	typeOrTagNumber, _typeOrTagNumberErr := io.ReadUint8(4)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
index ae7150c..5a7541f 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBitString.go
@@ -91,7 +91,7 @@ func (m BACnetTagApplicationBitString) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationBitStringParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+func BACnetTagApplicationBitStringParse(io *spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
 
 	// Simple Field (unusedBits)
 	unusedBits, _unusedBitsErr := io.ReadUint8(8)
@@ -100,16 +100,16 @@ func BACnetTagApplicationBitStringParse(io spi.ReadBuffer, lengthValueType uint8
 	}
 
 	// Array field (data)
-	var data []int8
 	// Length array
+	data := make([]int8, 0)
 	_dataLength := spi.InlineIf(bool(bool((lengthValueType) == (5))), uint16(uint16(uint16(extLength)-uint16(uint16(1)))), uint16(uint16(uint16(lengthValueType)-uint16(uint16(1)))))
 	_dataEndPos := io.GetPos() + uint16(_dataLength)
 	for io.GetPos() < _dataEndPos {
-		_dataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
-		data = append(data, _dataVal)
+		data = append(data, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
index 890751f..a06b740 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationBoolean.go
@@ -80,7 +80,7 @@ func (m BACnetTagApplicationBoolean) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationBooleanParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+func BACnetTagApplicationBooleanParse(io *spi.ReadBuffer) (BACnetTagInitializer, error) {
 
 	// Create the instance
 	return NewBACnetTagApplicationBoolean(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
index ce498df..a9d419b 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationCharacterString.go
@@ -80,7 +80,7 @@ func (m BACnetTagApplicationCharacterString) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationCharacterStringParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+func BACnetTagApplicationCharacterStringParse(io *spi.ReadBuffer) (BACnetTagInitializer, error) {
 
 	// Create the instance
 	return NewBACnetTagApplicationCharacterString(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
index 660230b..418b1e8 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDate.go
@@ -80,7 +80,7 @@ func (m BACnetTagApplicationDate) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationDateParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+func BACnetTagApplicationDateParse(io *spi.ReadBuffer) (BACnetTagInitializer, error) {
 
 	// Create the instance
 	return NewBACnetTagApplicationDate(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
index 92a4ea8..9fc81b3 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationDouble.go
@@ -85,7 +85,7 @@ func (m BACnetTagApplicationDouble) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationDoubleParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+func BACnetTagApplicationDoubleParse(io *spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
 
 	// Simple Field (value)
 	value, _valueErr := io.ReadFloat64(64)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
index 6981d57..35e9c17 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationEnumerated.go
@@ -87,19 +87,19 @@ func (m BACnetTagApplicationEnumerated) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationEnumeratedParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+func BACnetTagApplicationEnumeratedParse(io *spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
 
 	// Array field (data)
-	var data []int8
 	// Length array
+	data := make([]int8, 0)
 	_dataLength := spi.InlineIf(bool(bool((lengthValueType) == (5))), uint16(extLength), uint16(lengthValueType))
 	_dataEndPos := io.GetPos() + uint16(_dataLength)
 	for io.GetPos() < _dataEndPos {
-		_dataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
-		data = append(data, _dataVal)
+		data = append(data, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
index 9cd921e..0b07c24 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationNull.go
@@ -80,7 +80,7 @@ func (m BACnetTagApplicationNull) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationNullParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+func BACnetTagApplicationNullParse(io *spi.ReadBuffer) (BACnetTagInitializer, error) {
 
 	// Create the instance
 	return NewBACnetTagApplicationNull(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
index 077d6d7..5ea7542 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationObjectIdentifier.go
@@ -80,7 +80,7 @@ func (m BACnetTagApplicationObjectIdentifier) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationObjectIdentifierParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+func BACnetTagApplicationObjectIdentifierParse(io *spi.ReadBuffer) (BACnetTagInitializer, error) {
 
 	// Create the instance
 	return NewBACnetTagApplicationObjectIdentifier(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
index 065c915..4606ad4 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationOctetString.go
@@ -80,7 +80,7 @@ func (m BACnetTagApplicationOctetString) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationOctetStringParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+func BACnetTagApplicationOctetStringParse(io *spi.ReadBuffer) (BACnetTagInitializer, error) {
 
 	// Create the instance
 	return NewBACnetTagApplicationOctetString(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
index 962e8d1..5ba6238 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationReal.go
@@ -85,7 +85,7 @@ func (m BACnetTagApplicationReal) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationRealParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+func BACnetTagApplicationRealParse(io *spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
 
 	// Simple Field (value)
 	value, _valueErr := io.ReadFloat32(32)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
index 8e88559..091ce78 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationSignedInteger.go
@@ -87,19 +87,19 @@ func (m BACnetTagApplicationSignedInteger) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationSignedIntegerParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+func BACnetTagApplicationSignedIntegerParse(io *spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
 
 	// Array field (data)
-	var data []int8
 	// Length array
+	data := make([]int8, 0)
 	_dataLength := spi.InlineIf(bool(bool((lengthValueType) == (5))), uint16(extLength), uint16(lengthValueType))
 	_dataEndPos := io.GetPos() + uint16(_dataLength)
 	for io.GetPos() < _dataEndPos {
-		_dataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
-		data = append(data, _dataVal)
+		data = append(data, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
index 9431062..7a5e8f6 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationTime.go
@@ -80,7 +80,7 @@ func (m BACnetTagApplicationTime) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationTimeParse(io spi.ReadBuffer) (BACnetTagInitializer, error) {
+func BACnetTagApplicationTimeParse(io *spi.ReadBuffer) (BACnetTagInitializer, error) {
 
 	// Create the instance
 	return NewBACnetTagApplicationTime(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
index 19e33e3..8abec83 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagApplicationUnsignedInteger.go
@@ -87,19 +87,19 @@ func (m BACnetTagApplicationUnsignedInteger) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagApplicationUnsignedIntegerParse(io spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+func BACnetTagApplicationUnsignedIntegerParse(io *spi.ReadBuffer, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
 
 	// Array field (data)
-	var data []int8
 	// Length array
+	data := make([]int8, 0)
 	_dataLength := spi.InlineIf(bool(bool((lengthValueType) == (5))), uint16(extLength), uint16(lengthValueType))
 	_dataEndPos := io.GetPos() + uint16(_dataLength)
 	for io.GetPos() < _dataEndPos {
-		_dataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
-		data = append(data, _dataVal)
+		data = append(data, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
index b4911cc..dcffd64 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagContext.go
@@ -87,19 +87,19 @@ func (m BACnetTagContext) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagContextParse(io spi.ReadBuffer, typeOrTagNumber uint8, extTagNumber uint8, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
+func BACnetTagContextParse(io *spi.ReadBuffer, typeOrTagNumber uint8, extTagNumber uint8, lengthValueType uint8, extLength uint8) (BACnetTagInitializer, error) {
 
 	// Array field (data)
-	var data []int8
 	// Length array
+	data := make([]int8, 0)
 	_dataLength := spi.InlineIf(bool(bool((lengthValueType) == (5))), uint16(extLength), uint16(lengthValueType))
 	_dataEndPos := io.GetPos() + uint16(_dataLength)
 	for io.GetPos() < _dataEndPos {
-		_dataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
-		data = append(data, _dataVal)
+		data = append(data, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
index e375e28..aad6bea 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
@@ -113,7 +113,7 @@ func (m BACnetTagWithContent) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetTagWithContentParse(io spi.ReadBuffer) (spi.Message, error) {
+func BACnetTagWithContentParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (typeOrTagNumber)
 	typeOrTagNumber, _typeOrTagNumberErr := io.ReadUint8(4)
@@ -156,16 +156,16 @@ func BACnetTagWithContentParse(io spi.ReadBuffer) (spi.Message, error) {
 	}
 
 	// Array field (propertyIdentifier)
-	var propertyIdentifier []uint8
 	// Length array
+	propertyIdentifier := make([]uint8, 0)
 	_propertyIdentifierLength := spi.InlineIf(bool(bool((lengthValueType) == (5))), uint16((*extLength)), uint16(lengthValueType))
 	_propertyIdentifierEndPos := io.GetPos() + uint16(_propertyIdentifierLength)
 	for io.GetPos() < _propertyIdentifierEndPos {
-		_propertyIdentifierVal, _err := io.ReadUint8(8)
+		_item, _err := io.ReadUint8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'propertyIdentifier' field " + _err.Error())
 		}
-		propertyIdentifier = append(propertyIdentifier, _propertyIdentifierVal)
+		propertyIdentifier = append(propertyIdentifier, _item)
 	}
 
 	// Const Field (openTag)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
index 55f2492..4cd7b60 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
@@ -77,7 +77,7 @@ func (m BACnetUnconfirmedServiceRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestParse(io spi.ReadBuffer, len uint16) (spi.Message, error) {
+func BACnetUnconfirmedServiceRequestParse(io *spi.ReadBuffer, len uint16) (spi.Message, error) {
 
 	// Discriminator Field (serviceChoice) (Used as input to a switch field)
 	serviceChoice, _serviceChoiceErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
index 3f134b7..7272ab5 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIAm.go
@@ -122,7 +122,7 @@ func (m BACnetUnconfirmedServiceRequestIAm) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestIAmParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestIAmParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Const Field (objectIdentifierHeader)
 	objectIdentifierHeader, _objectIdentifierHeaderErr := io.ReadUint8(8)
@@ -161,18 +161,15 @@ func BACnetUnconfirmedServiceRequestIAmParse(io spi.ReadBuffer) (BACnetUnconfirm
 	}
 
 	// Array field (maximumApduLengthAccepted)
-	var maximumApduLengthAccepted []int8
 	// Count array
-	{
-		maximumApduLengthAccepted := make([]int8, maximumApduLengthAcceptedLength)
-		for curItem := uint16(0); curItem < uint16(maximumApduLengthAcceptedLength); curItem++ {
+	maximumApduLengthAccepted := make([]int8, maximumApduLengthAcceptedLength)
+	for curItem := uint16(0); curItem < uint16(maximumApduLengthAcceptedLength); curItem++ {
 
-			_maximumApduLengthAcceptedVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'maximumApduLengthAccepted' field " + _err.Error())
-			}
-			maximumApduLengthAccepted = append(maximumApduLengthAccepted, _maximumApduLengthAcceptedVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'maximumApduLengthAccepted' field " + _err.Error())
 		}
+		maximumApduLengthAccepted[curItem] = _item
 	}
 
 	// Const Field (segmentationSupportedHeader)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
index fa9d519..a882221 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestIHave.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestIHave) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestIHaveParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestIHaveParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestIHave(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
index b0b9ed4..cd3285f 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestTimeSynchronization.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestTimeSynchronization) LengthInBytes() uint
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestTimeSynchronizationParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestTimeSynchronizationParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestTimeSynchronization(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
index e05407d..4faaa6c 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUTCTimeSynchronization.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestUTCTimeSynchronization) LengthInBytes() u
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestUTCTimeSynchronizationParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestUTCTimeSynchronizationParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestUTCTimeSynchronization(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
index 26d9f5b..c8b867a 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestUnconfirmedCOVNotification) LengthInBytes
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestUnconfirmedCOVNotification(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
index 3bd42d4..9b935ed 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple) Lengt
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultipleParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultipleParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
index 635c4da..68b1b44 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedEventNotification.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestUnconfirmedEventNotification) LengthInByt
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestUnconfirmedEventNotificationParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestUnconfirmedEventNotificationParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestUnconfirmedEventNotification(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
index 84b6b0f..41c78df 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer.go
@@ -110,7 +110,7 @@ func (m BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransfer) LengthInBytes
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransferParse(io spi.ReadBuffer, len uint16) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransferParse(io *spi.ReadBuffer, len uint16) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Const Field (vendorIdHeader)
 	vendorIdHeader, _vendorIdHeaderErr := io.ReadUint8(8)
@@ -152,16 +152,16 @@ func BACnetUnconfirmedServiceRequestUnconfirmedPrivateTransferParse(io spi.ReadB
 	}
 
 	// Array field (values)
-	var values []int8
 	// Length array
+	values := make([]int8, 0)
 	_valuesLength := uint16(len) - uint16(uint16(8))
 	_valuesEndPos := io.GetPos() + uint16(_valuesLength)
 	for io.GetPos() < _valuesEndPos {
-		_valuesVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'values' field " + _err.Error())
 		}
-		values = append(values, _valuesVal)
+		values = append(values, _item)
 	}
 
 	// Const Field (listOfValuesClosingTag)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
index f24f2bd..d12529d 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestUnconfirmedTextMessage.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestUnconfirmedTextMessage) LengthInBytes() u
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestUnconfirmedTextMessageParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestUnconfirmedTextMessageParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestUnconfirmedTextMessage(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
index b672aef..6d3f87c 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoHas.go
@@ -113,7 +113,7 @@ func (m BACnetUnconfirmedServiceRequestWhoHas) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestWhoHasParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestWhoHasParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Const Field (deviceInstanceLowLimitHeader)
 	deviceInstanceLowLimitHeader, _deviceInstanceLowLimitHeaderErr := io.ReadUint8(8)
@@ -167,16 +167,16 @@ func BACnetUnconfirmedServiceRequestWhoHasParse(io spi.ReadBuffer) (BACnetUnconf
 	}
 
 	// Array field (objectName)
-	var objectName []int8
 	// Length array
+	objectName := make([]int8, 0)
 	_objectNameLength := uint16(objectNameLength) - uint16(uint16(1))
 	_objectNameEndPos := io.GetPos() + uint16(_objectNameLength)
 	for io.GetPos() < _objectNameEndPos {
-		_objectNameVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'objectName' field " + _err.Error())
 		}
-		objectName = append(objectName, _objectNameVal)
+		objectName = append(objectName, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
index addf36b..679fce0 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWhoIs.go
@@ -108,7 +108,7 @@ func (m BACnetUnconfirmedServiceRequestWhoIs) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestWhoIsParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestWhoIsParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Const Field (deviceInstanceRangeLowLimitHeader)
 	deviceInstanceRangeLowLimitHeader, _deviceInstanceRangeLowLimitHeaderErr := io.ReadUint8(5)
@@ -126,18 +126,15 @@ func BACnetUnconfirmedServiceRequestWhoIsParse(io spi.ReadBuffer) (BACnetUnconfi
 	}
 
 	// Array field (deviceInstanceRangeLowLimit)
-	var deviceInstanceRangeLowLimit []int8
 	// Count array
-	{
-		deviceInstanceRangeLowLimit := make([]int8, deviceInstanceRangeLowLimitLength)
-		for curItem := uint16(0); curItem < uint16(deviceInstanceRangeLowLimitLength); curItem++ {
+	deviceInstanceRangeLowLimit := make([]int8, deviceInstanceRangeLowLimitLength)
+	for curItem := uint16(0); curItem < uint16(deviceInstanceRangeLowLimitLength); curItem++ {
 
-			_deviceInstanceRangeLowLimitVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'deviceInstanceRangeLowLimit' field " + _err.Error())
-			}
-			deviceInstanceRangeLowLimit = append(deviceInstanceRangeLowLimit, _deviceInstanceRangeLowLimitVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'deviceInstanceRangeLowLimit' field " + _err.Error())
 		}
+		deviceInstanceRangeLowLimit[curItem] = _item
 	}
 
 	// Const Field (deviceInstanceRangeHighLimitHeader)
@@ -156,18 +153,15 @@ func BACnetUnconfirmedServiceRequestWhoIsParse(io spi.ReadBuffer) (BACnetUnconfi
 	}
 
 	// Array field (deviceInstanceRangeHighLimit)
-	var deviceInstanceRangeHighLimit []int8
 	// Count array
-	{
-		deviceInstanceRangeHighLimit := make([]int8, deviceInstanceRangeHighLimitLength)
-		for curItem := uint16(0); curItem < uint16(deviceInstanceRangeHighLimitLength); curItem++ {
+	deviceInstanceRangeHighLimit := make([]int8, deviceInstanceRangeHighLimitLength)
+	for curItem := uint16(0); curItem < uint16(deviceInstanceRangeHighLimitLength); curItem++ {
 
-			_deviceInstanceRangeHighLimitVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'deviceInstanceRangeHighLimit' field " + _err.Error())
-			}
-			deviceInstanceRangeHighLimit = append(deviceInstanceRangeHighLimit, _deviceInstanceRangeHighLimitVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'deviceInstanceRangeHighLimit' field " + _err.Error())
 		}
+		deviceInstanceRangeHighLimit[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
index 3861570..8e25564 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequestWriteGroup.go
@@ -76,7 +76,7 @@ func (m BACnetUnconfirmedServiceRequestWriteGroup) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BACnetUnconfirmedServiceRequestWriteGroupParse(io spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
+func BACnetUnconfirmedServiceRequestWriteGroupParse(io *spi.ReadBuffer) (BACnetUnconfirmedServiceRequestInitializer, error) {
 
 	// Create the instance
 	return NewBACnetUnconfirmedServiceRequestWriteGroup(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
index 2b14894..27d14db 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
@@ -87,7 +87,7 @@ func (m BVLC) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCParse(io spi.ReadBuffer) (spi.Message, error) {
+func BVLCParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Const Field (bacnetType)
 	bacnetType, _bacnetTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
index 9f91d2d..276402b 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDeleteForeignDeviceTableEntry.go
@@ -76,7 +76,7 @@ func (m BVLCDeleteForeignDeviceTableEntry) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCDeleteForeignDeviceTableEntryParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCDeleteForeignDeviceTableEntryParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCDeleteForeignDeviceTableEntry(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
index 5d62afe..37d85a3 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCDistributeBroadcastToNetwork.go
@@ -76,7 +76,7 @@ func (m BVLCDistributeBroadcastToNetwork) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCDistributeBroadcastToNetworkParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCDistributeBroadcastToNetworkParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCDistributeBroadcastToNetwork(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
index 3e62c51..de6ccfa 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
@@ -92,21 +92,18 @@ func (m BVLCForwardedNPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCForwardedNPDUParse(io spi.ReadBuffer, bvlcLength uint16) (BVLCInitializer, error) {
+func BVLCForwardedNPDUParse(io *spi.ReadBuffer, bvlcLength uint16) (BVLCInitializer, error) {
 
 	// Array field (ip)
-	var ip []uint8
 	// Count array
-	{
-		ip := make([]uint8, uint16(4))
-		for curItem := uint16(0); curItem < uint16(uint16(4)); curItem++ {
+	ip := make([]uint8, uint16(4))
+	for curItem := uint16(0); curItem < uint16(uint16(4)); curItem++ {
 
-			_ipVal, _err := io.ReadUint8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'ip' field " + _err.Error())
-			}
-			ip = append(ip, _ipVal)
+		_item, _err := io.ReadUint8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'ip' field " + _err.Error())
 		}
+		ip[curItem] = _item
 	}
 
 	// Simple Field (port)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
index b7ad290..e48a588 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
@@ -82,7 +82,7 @@ func (m BVLCOriginalBroadcastNPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCOriginalBroadcastNPDUParse(io spi.ReadBuffer, bvlcLength uint16) (BVLCInitializer, error) {
+func BVLCOriginalBroadcastNPDUParse(io *spi.ReadBuffer, bvlcLength uint16) (BVLCInitializer, error) {
 
 	// Simple Field (npdu)
 	_npduMessage, _err := NPDUParse(io, uint16(bvlcLength)-uint16(uint16(4)))
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
index e781d35..e8a28f1 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
@@ -82,7 +82,7 @@ func (m BVLCOriginalUnicastNPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCOriginalUnicastNPDUParse(io spi.ReadBuffer, bvlcLength uint16) (BVLCInitializer, error) {
+func BVLCOriginalUnicastNPDUParse(io *spi.ReadBuffer, bvlcLength uint16) (BVLCInitializer, error) {
 
 	// Simple Field (npdu)
 	_npduMessage, _err := NPDUParse(io, uint16(bvlcLength)-uint16(uint16(4)))
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
index 026bb26..f1caf73 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTable.go
@@ -76,7 +76,7 @@ func (m BVLCReadBroadcastDistributionTable) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCReadBroadcastDistributionTableParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCReadBroadcastDistributionTableParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCReadBroadcastDistributionTable(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
index aa927d87..d05f9fc 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadBroadcastDistributionTableAck.go
@@ -76,7 +76,7 @@ func (m BVLCReadBroadcastDistributionTableAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCReadBroadcastDistributionTableAckParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCReadBroadcastDistributionTableAckParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCReadBroadcastDistributionTableAck(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
index 5f530b1..f5905a2 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTable.go
@@ -76,7 +76,7 @@ func (m BVLCReadForeignDeviceTable) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCReadForeignDeviceTableParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCReadForeignDeviceTableParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCReadForeignDeviceTable(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
index 7e53b36..a754d43 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCReadForeignDeviceTableAck.go
@@ -76,7 +76,7 @@ func (m BVLCReadForeignDeviceTableAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCReadForeignDeviceTableAckParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCReadForeignDeviceTableAckParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCReadForeignDeviceTableAck(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
index 6759be6..1536550 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCRegisterForeignDevice.go
@@ -76,7 +76,7 @@ func (m BVLCRegisterForeignDevice) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCRegisterForeignDeviceParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCRegisterForeignDeviceParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCRegisterForeignDevice(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
index b652175..dcd439a 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCResult.go
@@ -76,7 +76,7 @@ func (m BVLCResult) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCResultParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCResultParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCResult(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
index 9463fec..7e7995e 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCSecureBVLL.go
@@ -76,7 +76,7 @@ func (m BVLCSecureBVLL) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCSecureBVLLParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCSecureBVLLParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCSecureBVLL(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go
index 7d85dd7..c73f87c 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCWideBroadcastDistributionTable.go
@@ -76,7 +76,7 @@ func (m BVLCWideBroadcastDistributionTable) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func BVLCWideBroadcastDistributionTableParse(io spi.ReadBuffer) (BVLCInitializer, error) {
+func BVLCWideBroadcastDistributionTableParse(io *spi.ReadBuffer) (BVLCInitializer, error) {
 
 	// Create the instance
 	return NewBVLCWideBroadcastDistributionTable(), nil
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
index 308ede2..5087f72 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
@@ -83,7 +83,7 @@ func (m NLM) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func NLMParse(io spi.ReadBuffer, apduLength uint16) (spi.Message, error) {
+func NLMParse(io *spi.ReadBuffer, apduLength uint16) (spi.Message, error) {
 
 	// Discriminator Field (messageType) (Used as input to a switch field)
 	messageType, _messageTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
index 21789fa..e8d6a8e 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMIAmRouterToNetwork.go
@@ -84,19 +84,19 @@ func (m NLMIAmRouterToNetwork) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func NLMIAmRouterToNetworkParse(io spi.ReadBuffer, apduLength uint16, messageType uint8) (NLMInitializer, error) {
+func NLMIAmRouterToNetworkParse(io *spi.ReadBuffer, apduLength uint16, messageType uint8) (NLMInitializer, error) {
 
 	// Array field (destinationNetworkAddress)
-	var destinationNetworkAddress []uint16
 	// Length array
+	destinationNetworkAddress := make([]uint16, 0)
 	_destinationNetworkAddressLength := uint16(apduLength) - uint16(uint16(spi.InlineIf(bool(bool(bool(bool((messageType) >= (128)))) && bool(bool(bool((messageType) <= (255))))), uint16(uint16(3)), uint16(uint16(1)))))
 	_destinationNetworkAddressEndPos := io.GetPos() + uint16(_destinationNetworkAddressLength)
 	for io.GetPos() < _destinationNetworkAddressEndPos {
-		_destinationNetworkAddressVal, _err := io.ReadUint16(16)
+		_item, _err := io.ReadUint16(16)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'destinationNetworkAddress' field " + _err.Error())
 		}
-		destinationNetworkAddress = append(destinationNetworkAddress, _destinationNetworkAddressVal)
+		destinationNetworkAddress = append(destinationNetworkAddress, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
index eee597a..3e8cb44 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NLMWhoIsRouterToNetwork.go
@@ -84,19 +84,19 @@ func (m NLMWhoIsRouterToNetwork) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func NLMWhoIsRouterToNetworkParse(io spi.ReadBuffer, apduLength uint16, messageType uint8) (NLMInitializer, error) {
+func NLMWhoIsRouterToNetworkParse(io *spi.ReadBuffer, apduLength uint16, messageType uint8) (NLMInitializer, error) {
 
 	// Array field (destinationNetworkAddress)
-	var destinationNetworkAddress []uint16
 	// Length array
+	destinationNetworkAddress := make([]uint16, 0)
 	_destinationNetworkAddressLength := uint16(apduLength) - uint16(uint16(spi.InlineIf(bool(bool(bool(bool((messageType) >= (128)))) && bool(bool(bool((messageType) <= (255))))), uint16(uint16(3)), uint16(uint16(1)))))
 	_destinationNetworkAddressEndPos := io.GetPos() + uint16(_destinationNetworkAddressLength)
 	for io.GetPos() < _destinationNetworkAddressEndPos {
-		_destinationNetworkAddressVal, _err := io.ReadUint16(16)
+		_item, _err := io.ReadUint16(16)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'destinationNetworkAddress' field " + _err.Error())
 		}
-		destinationNetworkAddress = append(destinationNetworkAddress, _destinationNetworkAddressVal)
+		destinationNetworkAddress = append(destinationNetworkAddress, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
index b9278f3..72526b2 100644
--- a/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
+++ b/sandbox/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
@@ -153,7 +153,7 @@ func (m NPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func NPDUParse(io spi.ReadBuffer, npduLength uint16) (spi.Message, error) {
+func NPDUParse(io *spi.ReadBuffer, npduLength uint16) (spi.Message, error) {
 
 	// Simple Field (protocolVersionNumber)
 	protocolVersionNumber, _protocolVersionNumberErr := io.ReadUint8(8)
@@ -242,18 +242,15 @@ func NPDUParse(io spi.ReadBuffer, npduLength uint16) (spi.Message, error) {
 	}
 
 	// Array field (destinationAddress)
-	var destinationAddress []uint8
 	// Count array
-	{
-		destinationAddress := make([]uint8, spi.InlineIf(destinationSpecified, uint16((*destinationLength)), uint16(uint16(0))))
-		for curItem := uint16(0); curItem < uint16(spi.InlineIf(destinationSpecified, uint16((*destinationLength)), uint16(uint16(0)))); curItem++ {
-
-			_destinationAddressVal, _err := io.ReadUint8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
-			}
-			destinationAddress = append(destinationAddress, _destinationAddressVal)
+	destinationAddress := make([]uint8, spi.InlineIf(destinationSpecified, uint16((*destinationLength)), uint16(uint16(0))))
+	for curItem := uint16(0); curItem < uint16(spi.InlineIf(destinationSpecified, uint16((*destinationLength)), uint16(uint16(0)))); curItem++ {
+
+		_item, _err := io.ReadUint8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
 		}
+		destinationAddress[curItem] = _item
 	}
 
 	// Optional Field (sourceNetworkAddress) (Can be skipped, if a given expression evaluates to false)
@@ -279,18 +276,15 @@ func NPDUParse(io spi.ReadBuffer, npduLength uint16) (spi.Message, error) {
 	}
 
 	// Array field (sourceAddress)
-	var sourceAddress []uint8
 	// Count array
-	{
-		sourceAddress := make([]uint8, spi.InlineIf(sourceSpecified, uint16((*sourceLength)), uint16(uint16(0))))
-		for curItem := uint16(0); curItem < uint16(spi.InlineIf(sourceSpecified, uint16((*sourceLength)), uint16(uint16(0)))); curItem++ {
-
-			_sourceAddressVal, _err := io.ReadUint8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'sourceAddress' field " + _err.Error())
-			}
-			sourceAddress = append(sourceAddress, _sourceAddressVal)
+	sourceAddress := make([]uint8, spi.InlineIf(sourceSpecified, uint16((*sourceLength)), uint16(uint16(0))))
+	for curItem := uint16(0); curItem < uint16(spi.InlineIf(sourceSpecified, uint16((*sourceLength)), uint16(uint16(0)))); curItem++ {
+
+		_item, _err := io.ReadUint8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'sourceAddress' field " + _err.Error())
 		}
+		sourceAddress[curItem] = _item
 	}
 
 	// Optional Field (hopCount) (Can be skipped, if a given expression evaluates to false)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/APCI.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/APCI.go
index 8822379..300c01d 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/APCI.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/APCI.go
@@ -64,7 +64,7 @@ func (m APCI) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func APCIParse(io spi.ReadBuffer) (APCI, error) {
+func APCIParse(io *spi.ReadBuffer) (APCI, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
index 7e73160..4ef02e3 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
@@ -77,7 +77,7 @@ func (m CEMI) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIParse(io spi.ReadBuffer, size uint8) (spi.Message, error) {
+func CEMIParse(io *spi.ReadBuffer, size uint8) (spi.Message, error) {
 
 	// Discriminator Field (messageCode) (Used as input to a switch field)
 	messageCode, _messageCodeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
index 4822c56..c922164 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
@@ -77,7 +77,7 @@ func (m CEMIAdditionalInformation) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIAdditionalInformationParse(io spi.ReadBuffer) (spi.Message, error) {
+func CEMIAdditionalInformationParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (additionalInformationType) (Used as input to a switch field)
 	additionalInformationType, _additionalInformationTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
index 701cb11..f6714d3 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationBusmonitorInfo.go
@@ -108,7 +108,7 @@ func (m CEMIAdditionalInformationBusmonitorInfo) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIAdditionalInformationBusmonitorInfoParse(io spi.ReadBuffer) (CEMIAdditionalInformationInitializer, error) {
+func CEMIAdditionalInformationBusmonitorInfoParse(io *spi.ReadBuffer) (CEMIAdditionalInformationInitializer, error) {
 
 	// Const Field (len)
 	len, _lenErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
index 66bc178..b2d2175 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
@@ -89,7 +89,7 @@ func (m CEMIAdditionalInformationRelativeTimestamp) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIAdditionalInformationRelativeTimestampParse(io spi.ReadBuffer) (CEMIAdditionalInformationInitializer, error) {
+func CEMIAdditionalInformationRelativeTimestampParse(io *spi.ReadBuffer) (CEMIAdditionalInformationInitializer, error) {
 
 	// Const Field (len)
 	len, _lenErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIBusmonInd.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIBusmonInd.go
index 03845d0..61ba83a 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIBusmonInd.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIBusmonInd.go
@@ -94,7 +94,7 @@ func (m CEMIBusmonInd) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIBusmonIndParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIBusmonIndParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Simple Field (additionalInformationLength)
 	additionalInformationLength, _additionalInformationLengthErr := io.ReadUint8(8)
@@ -103,8 +103,8 @@ func CEMIBusmonIndParse(io spi.ReadBuffer) (CEMIInitializer, error) {
 	}
 
 	// Array field (additionalInformation)
-	var additionalInformation []ICEMIAdditionalInformation
 	// Length array
+	additionalInformation := make([]ICEMIAdditionalInformation, 0)
 	_additionalInformationLength := additionalInformationLength
 	_additionalInformationEndPos := io.GetPos() + uint16(_additionalInformationLength)
 	for io.GetPos() < _additionalInformationEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataCon.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataCon.go
index 92ef261..2bf3862 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataCon.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataCon.go
@@ -94,7 +94,7 @@ func (m CEMIDataCon) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIDataConParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIDataConParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Simple Field (additionalInformationLength)
 	additionalInformationLength, _additionalInformationLengthErr := io.ReadUint8(8)
@@ -103,8 +103,8 @@ func CEMIDataConParse(io spi.ReadBuffer) (CEMIInitializer, error) {
 	}
 
 	// Array field (additionalInformation)
-	var additionalInformation []ICEMIAdditionalInformation
 	// Length array
+	additionalInformation := make([]ICEMIAdditionalInformation, 0)
 	_additionalInformationLength := additionalInformationLength
 	_additionalInformationEndPos := io.GetPos() + uint16(_additionalInformationLength)
 	for io.GetPos() < _additionalInformationEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataFrame.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataFrame.go
index fe0df32..c253c14 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataFrame.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataFrame.go
@@ -144,7 +144,7 @@ func (m CEMIDataFrame) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIDataFrameParse(io spi.ReadBuffer) (spi.Message, error) {
+func CEMIDataFrameParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (standardFrame)
 	standardFrame, _standardFrameErr := io.ReadBit()
@@ -218,18 +218,15 @@ func CEMIDataFrameParse(io spi.ReadBuffer) (spi.Message, error) {
 	}
 
 	// Array field (destinationAddress)
-	var destinationAddress []int8
 	// Count array
-	{
-		destinationAddress := make([]int8, uint16(2))
-		for curItem := uint16(0); curItem < uint16(uint16(2)); curItem++ {
-
-			_destinationAddressVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
-			}
-			destinationAddress = append(destinationAddress, _destinationAddressVal)
+	destinationAddress := make([]int8, uint16(2))
+	for curItem := uint16(0); curItem < uint16(uint16(2)); curItem++ {
+
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
 		}
+		destinationAddress[curItem] = _item
 	}
 
 	// Simple Field (dataLength)
@@ -263,18 +260,15 @@ func CEMIDataFrameParse(io spi.ReadBuffer) (spi.Message, error) {
 	}
 
 	// Array field (data)
-	var data []int8
 	// Count array
-	{
-		data := make([]int8, uint16(dataLength)-uint16(uint16(1)))
-		for curItem := uint16(0); curItem < uint16(uint16(dataLength)-uint16(uint16(1))); curItem++ {
-
-			_dataVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'data' field " + _err.Error())
-			}
-			data = append(data, _dataVal)
+	data := make([]int8, uint16(dataLength)-uint16(uint16(1)))
+	for curItem := uint16(0); curItem < uint16(uint16(dataLength)-uint16(uint16(1))); curItem++ {
+
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
+		data[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataInd.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataInd.go
index 76163ea..da61319 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataInd.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataInd.go
@@ -94,7 +94,7 @@ func (m CEMIDataInd) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIDataIndParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIDataIndParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Simple Field (additionalInformationLength)
 	additionalInformationLength, _additionalInformationLengthErr := io.ReadUint8(8)
@@ -103,8 +103,8 @@ func CEMIDataIndParse(io spi.ReadBuffer) (CEMIInitializer, error) {
 	}
 
 	// Array field (additionalInformation)
-	var additionalInformation []ICEMIAdditionalInformation
 	// Length array
+	additionalInformation := make([]ICEMIAdditionalInformation, 0)
 	_additionalInformationLength := additionalInformationLength
 	_additionalInformationEndPos := io.GetPos() + uint16(_additionalInformationLength)
 	for io.GetPos() < _additionalInformationEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataReq.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataReq.go
index e19d652..79d72a4 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataReq.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIDataReq.go
@@ -94,7 +94,7 @@ func (m CEMIDataReq) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIDataReqParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIDataReqParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Simple Field (additionalInformationLength)
 	additionalInformationLength, _additionalInformationLengthErr := io.ReadUint8(8)
@@ -103,8 +103,8 @@ func CEMIDataReqParse(io spi.ReadBuffer) (CEMIInitializer, error) {
 	}
 
 	// Array field (additionalInformation)
-	var additionalInformation []ICEMIAdditionalInformation
 	// Length array
+	additionalInformation := make([]ICEMIAdditionalInformation, 0)
 	_additionalInformationLength := additionalInformationLength
 	_additionalInformationEndPos := io.GetPos() + uint16(_additionalInformationLength)
 	for io.GetPos() < _additionalInformationEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrame.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrame.go
index 9093524..279c294 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrame.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrame.go
@@ -109,7 +109,7 @@ func (m CEMIFrame) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIFrameParse(io spi.ReadBuffer) (spi.Message, error) {
+func CEMIFrameParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (standardFrame) (Used as input to a switch field)
 	standardFrame, _standardFrameErr := io.ReadBit()
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameAck.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameAck.go
index f2cb6c7..f936d6a 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameAck.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameAck.go
@@ -88,7 +88,7 @@ func (m CEMIFrameAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIFrameAckParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
+func CEMIFrameAckParse(io *spi.ReadBuffer) (CEMIFrameInitializer, error) {
 
 	// Create the instance
 	return NewCEMIFrameAck(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameData.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameData.go
index 868eccf..0c6a445 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameData.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameData.go
@@ -138,7 +138,7 @@ func (m CEMIFrameData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIFrameDataParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
+func CEMIFrameDataParse(io *spi.ReadBuffer) (CEMIFrameInitializer, error) {
 
 	// Simple Field (sourceAddress)
 	_sourceAddressMessage, _err := KNXAddressParse(io)
@@ -152,18 +152,15 @@ func CEMIFrameDataParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
 	}
 
 	// Array field (destinationAddress)
-	var destinationAddress []int8
 	// Count array
-	{
-		destinationAddress := make([]int8, uint16(2))
-		for curItem := uint16(0); curItem < uint16(uint16(2)); curItem++ {
+	destinationAddress := make([]int8, uint16(2))
+	for curItem := uint16(0); curItem < uint16(uint16(2)); curItem++ {
 
-			_destinationAddressVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
-			}
-			destinationAddress = append(destinationAddress, _destinationAddressVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
 		}
+		destinationAddress[curItem] = _item
 	}
 
 	// Simple Field (groupAddress)
@@ -209,18 +206,15 @@ func CEMIFrameDataParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
 	}
 
 	// Array field (data)
-	var data []int8
 	// Count array
-	{
-		data := make([]int8, uint16(dataLength)-uint16(uint16(1)))
-		for curItem := uint16(0); curItem < uint16(uint16(dataLength)-uint16(uint16(1))); curItem++ {
+	data := make([]int8, uint16(dataLength)-uint16(uint16(1)))
+	for curItem := uint16(0); curItem < uint16(uint16(dataLength)-uint16(uint16(1))); curItem++ {
 
-			_dataVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'data' field " + _err.Error())
-			}
-			data = append(data, _dataVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
+		data[curItem] = _item
 	}
 
 	// Simple Field (crc)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameDataExt.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameDataExt.go
index cc8ee6b..73375df 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameDataExt.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFrameDataExt.go
@@ -142,7 +142,7 @@ func (m CEMIFrameDataExt) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIFrameDataExtParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
+func CEMIFrameDataExtParse(io *spi.ReadBuffer) (CEMIFrameInitializer, error) {
 
 	// Simple Field (groupAddress)
 	groupAddress, _groupAddressErr := io.ReadBit()
@@ -174,18 +174,15 @@ func CEMIFrameDataExtParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
 	}
 
 	// Array field (destinationAddress)
-	var destinationAddress []int8
 	// Count array
-	{
-		destinationAddress := make([]int8, uint16(2))
-		for curItem := uint16(0); curItem < uint16(uint16(2)); curItem++ {
+	destinationAddress := make([]int8, uint16(2))
+	for curItem := uint16(0); curItem < uint16(uint16(2)); curItem++ {
 
-			_destinationAddressVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
-			}
-			destinationAddress = append(destinationAddress, _destinationAddressVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'destinationAddress' field " + _err.Error())
 		}
+		destinationAddress[curItem] = _item
 	}
 
 	// Simple Field (dataLength)
@@ -219,18 +216,15 @@ func CEMIFrameDataExtParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
 	}
 
 	// Array field (data)
-	var data []int8
 	// Count array
-	{
-		data := make([]int8, uint16(dataLength)-uint16(uint16(1)))
-		for curItem := uint16(0); curItem < uint16(uint16(dataLength)-uint16(uint16(1))); curItem++ {
+	data := make([]int8, uint16(dataLength)-uint16(uint16(1)))
+	for curItem := uint16(0); curItem < uint16(uint16(dataLength)-uint16(uint16(1))); curItem++ {
 
-			_dataVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'data' field " + _err.Error())
-			}
-			data = append(data, _dataVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
+		data[curItem] = _item
 	}
 
 	// Simple Field (crc)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingData.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingData.go
index e7a5cc3..c05a0ea 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingData.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingData.go
@@ -88,7 +88,7 @@ func (m CEMIFramePollingData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIFramePollingDataParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
+func CEMIFramePollingDataParse(io *spi.ReadBuffer) (CEMIFrameInitializer, error) {
 
 	// Create the instance
 	return NewCEMIFramePollingData(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingDataExt.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingDataExt.go
index ede4c4c..a542a5e 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingDataExt.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIFramePollingDataExt.go
@@ -88,7 +88,7 @@ func (m CEMIFramePollingDataExt) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIFramePollingDataExtParse(io spi.ReadBuffer) (CEMIFrameInitializer, error) {
+func CEMIFramePollingDataExtParse(io *spi.ReadBuffer) (CEMIFrameInitializer, error) {
 
 	// Create the instance
 	return NewCEMIFramePollingDataExt(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadCon.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadCon.go
index fb53334..fccf5d5 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadCon.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadCon.go
@@ -101,7 +101,7 @@ func (m CEMIMPropReadCon) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIMPropReadConParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIMPropReadConParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Simple Field (interfaceObjectType)
 	interfaceObjectType, _interfaceObjectTypeErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadReq.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadReq.go
index e1e40f7..150c17a 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadReq.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIMPropReadReq.go
@@ -97,7 +97,7 @@ func (m CEMIMPropReadReq) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIMPropReadReqParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIMPropReadReqParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Simple Field (interfaceObjectType)
 	interfaceObjectType, _interfaceObjectTypeErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataCon.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataCon.go
index 6dd2b41..8592b04 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataCon.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataCon.go
@@ -76,7 +76,7 @@ func (m CEMIPollDataCon) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIPollDataConParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIPollDataConParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Create the instance
 	return NewCEMIPollDataCon(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataReq.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataReq.go
index 5e7d925..3a730fb 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataReq.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPollDataReq.go
@@ -76,7 +76,7 @@ func (m CEMIPollDataReq) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIPollDataReqParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIPollDataReqParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Create the instance
 	return NewCEMIPollDataReq(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
index 636babe..1c23946 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
@@ -52,7 +52,7 @@ func (m CEMIPriority) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIPriorityParse(io spi.ReadBuffer) (CEMIPriority, error) {
+func CEMIPriorityParse(io *spi.ReadBuffer) (CEMIPriority, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawCon.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawCon.go
index 92f8d0f..bf09ec5 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawCon.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawCon.go
@@ -76,7 +76,7 @@ func (m CEMIRawCon) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIRawConParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIRawConParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Create the instance
 	return NewCEMIRawCon(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawInd.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawInd.go
index fa8bca9..521a0d4 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawInd.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawInd.go
@@ -76,7 +76,7 @@ func (m CEMIRawInd) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIRawIndParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIRawIndParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Create the instance
 	return NewCEMIRawInd(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawReq.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawReq.go
index 155a166..10be7f4 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawReq.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIRawReq.go
@@ -76,7 +76,7 @@ func (m CEMIRawReq) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func CEMIRawReqParse(io spi.ReadBuffer) (CEMIInitializer, error) {
+func CEMIRawReqParse(io *spi.ReadBuffer) (CEMIInitializer, error) {
 
 	// Create the instance
 	return NewCEMIRawReq(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
index 2462129..6d0711f 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
@@ -90,7 +90,7 @@ func (m ConnectionRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionRequestParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func ConnectionRequestParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (hpaiDiscoveryEndpoint)
 	_hpaiDiscoveryEndpointMessage, _err := HPAIDiscoveryEndpointParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
index 42c26b0..80eaffb 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
@@ -80,7 +80,7 @@ func (m ConnectionRequestInformation) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionRequestInformationParse(io spi.ReadBuffer) (spi.Message, error) {
+func ConnectionRequestInformationParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
index 2cc3141..44b21d1 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationDeviceManagement.go
@@ -76,7 +76,7 @@ func (m ConnectionRequestInformationDeviceManagement) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionRequestInformationDeviceManagementParse(io spi.ReadBuffer) (ConnectionRequestInformationInitializer, error) {
+func ConnectionRequestInformationDeviceManagementParse(io *spi.ReadBuffer) (ConnectionRequestInformationInitializer, error) {
 
 	// Create the instance
 	return NewConnectionRequestInformationDeviceManagement(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
index f56ad09..5572cb6 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformationTunnelConnection.go
@@ -85,7 +85,7 @@ func (m ConnectionRequestInformationTunnelConnection) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionRequestInformationTunnelConnectionParse(io spi.ReadBuffer) (ConnectionRequestInformationInitializer, error) {
+func ConnectionRequestInformationTunnelConnectionParse(io *spi.ReadBuffer) (ConnectionRequestInformationInitializer, error) {
 
 	// Enum field (knxLayer)
 	knxLayer, _knxLayerErr := KnxLayerParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
index 314b04c..b44d107 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
@@ -98,7 +98,7 @@ func (m ConnectionResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionResponseParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func ConnectionResponseParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (communicationChannelId)
 	communicationChannelId, _communicationChannelIdErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
index 16cf89a..9ab4fac 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
@@ -80,7 +80,7 @@ func (m ConnectionResponseDataBlock) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionResponseDataBlockParse(io spi.ReadBuffer) (spi.Message, error) {
+func ConnectionResponseDataBlockParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
index 4094677..4a5fb42 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockDeviceManagement.go
@@ -76,7 +76,7 @@ func (m ConnectionResponseDataBlockDeviceManagement) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionResponseDataBlockDeviceManagementParse(io spi.ReadBuffer) (ConnectionResponseDataBlockInitializer, error) {
+func ConnectionResponseDataBlockDeviceManagementParse(io *spi.ReadBuffer) (ConnectionResponseDataBlockInitializer, error) {
 
 	// Create the instance
 	return NewConnectionResponseDataBlockDeviceManagement(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
index 4c45df6..8146e49 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
@@ -82,7 +82,7 @@ func (m ConnectionResponseDataBlockTunnelConnection) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionResponseDataBlockTunnelConnectionParse(io spi.ReadBuffer) (ConnectionResponseDataBlockInitializer, error) {
+func ConnectionResponseDataBlockTunnelConnectionParse(io *spi.ReadBuffer) (ConnectionResponseDataBlockInitializer, error) {
 
 	// Simple Field (knxAddress)
 	_knxAddressMessage, _err := KNXAddressParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
index d8348e4..1484241 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
@@ -90,7 +90,7 @@ func (m ConnectionStateRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionStateRequestParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func ConnectionStateRequestParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (communicationChannelId)
 	communicationChannelId, _communicationChannelIdErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
index a611e07..6114efd 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateResponse.go
@@ -85,7 +85,7 @@ func (m ConnectionStateResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ConnectionStateResponseParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func ConnectionStateResponseParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (communicationChannelId)
 	communicationChannelId, _communicationChannelIdErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
index 11f3362..54c4fcc 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
@@ -111,7 +111,7 @@ func (m DIBDeviceInfo) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DIBDeviceInfoParse(io spi.ReadBuffer) (spi.Message, error) {
+func DIBDeviceInfoParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
@@ -165,18 +165,15 @@ func DIBDeviceInfoParse(io spi.ReadBuffer) (spi.Message, error) {
 	}
 
 	// Array field (knxNetIpDeviceSerialNumber)
-	var knxNetIpDeviceSerialNumber []int8
 	// Count array
-	{
-		knxNetIpDeviceSerialNumber := make([]int8, uint16(6))
-		for curItem := uint16(0); curItem < uint16(uint16(6)); curItem++ {
-
-			_knxNetIpDeviceSerialNumberVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'knxNetIpDeviceSerialNumber' field " + _err.Error())
-			}
-			knxNetIpDeviceSerialNumber = append(knxNetIpDeviceSerialNumber, _knxNetIpDeviceSerialNumberVal)
+	knxNetIpDeviceSerialNumber := make([]int8, uint16(6))
+	for curItem := uint16(0); curItem < uint16(uint16(6)); curItem++ {
+
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'knxNetIpDeviceSerialNumber' field " + _err.Error())
 		}
+		knxNetIpDeviceSerialNumber[curItem] = _item
 	}
 
 	// Simple Field (knxNetIpDeviceMulticastAddress)
@@ -202,18 +199,15 @@ func DIBDeviceInfoParse(io spi.ReadBuffer) (spi.Message, error) {
 	}
 
 	// Array field (deviceFriendlyName)
-	var deviceFriendlyName []int8
 	// Count array
-	{
-		deviceFriendlyName := make([]int8, uint16(30))
-		for curItem := uint16(0); curItem < uint16(uint16(30)); curItem++ {
-
-			_deviceFriendlyNameVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'deviceFriendlyName' field " + _err.Error())
-			}
-			deviceFriendlyName = append(deviceFriendlyName, _deviceFriendlyNameVal)
+	deviceFriendlyName := make([]int8, uint16(30))
+	for curItem := uint16(0); curItem < uint16(uint16(30)); curItem++ {
+
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'deviceFriendlyName' field " + _err.Error())
 		}
+		deviceFriendlyName[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go
index 1832aec..41d4649 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBSuppSvcFamilies.go
@@ -83,7 +83,7 @@ func (m DIBSuppSvcFamilies) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DIBSuppSvcFamiliesParse(io spi.ReadBuffer) (spi.Message, error) {
+func DIBSuppSvcFamiliesParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
@@ -98,23 +98,20 @@ func DIBSuppSvcFamiliesParse(io spi.ReadBuffer) (spi.Message, error) {
 	}
 
 	// Array field (serviceIds)
-	var serviceIds []IServiceId
 	// Count array
-	{
-		serviceIds := make([]IServiceId, uint16(3))
-		for curItem := uint16(0); curItem < uint16(uint16(3)); curItem++ {
-
-			_message, _err := ServiceIdParse(io)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'serviceIds' field " + _err.Error())
-			}
-			var _item IServiceId
-			_item, _ok := _message.(IServiceId)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to ServiceId")
-			}
-			serviceIds = append(serviceIds, _item)
+	serviceIds := make([]IServiceId, uint16(3))
+	for curItem := uint16(0); curItem < uint16(uint16(3)); curItem++ {
+
+		_message, _err := ServiceIdParse(io)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'serviceIds' field " + _err.Error())
+		}
+		var _item IServiceId
+		_item, _ok := _message.(IServiceId)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to ServiceId")
 		}
+		serviceIds[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
index 6088d2e..e85fa2e 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
@@ -82,7 +82,7 @@ func (m DescriptionRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DescriptionRequestParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func DescriptionRequestParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (hpaiControlEndpoint)
 	_hpaiControlEndpointMessage, _err := HPAIControlEndpointParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
index ed002b3..1e900f7 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
@@ -86,7 +86,7 @@ func (m DescriptionResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DescriptionResponseParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func DescriptionResponseParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (dibDeviceInfo)
 	_dibDeviceInfoMessage, _err := DIBDeviceInfoParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
index d1a6259..ac64912 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
@@ -82,7 +82,7 @@ func (m DeviceConfigurationAck) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DeviceConfigurationAckParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func DeviceConfigurationAckParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (deviceConfigurationAckDataBlock)
 	_deviceConfigurationAckDataBlockMessage, _err := DeviceConfigurationAckDataBlockParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go
index 551668f..f942bfc 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAckDataBlock.go
@@ -82,7 +82,7 @@ func (m DeviceConfigurationAckDataBlock) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DeviceConfigurationAckDataBlockParse(io spi.ReadBuffer) (spi.Message, error) {
+func DeviceConfigurationAckDataBlockParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
index 3ee55d6..62dcdb5 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
@@ -86,7 +86,7 @@ func (m DeviceConfigurationRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DeviceConfigurationRequestParse(io spi.ReadBuffer, totalLength uint16) (KNXNetIPMessageInitializer, error) {
+func DeviceConfigurationRequestParse(io *spi.ReadBuffer, totalLength uint16) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (deviceConfigurationRequestDataBlock)
 	_deviceConfigurationRequestDataBlockMessage, _err := DeviceConfigurationRequestDataBlockParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go
index 8a729ac..478847d 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequestDataBlock.go
@@ -82,7 +82,7 @@ func (m DeviceConfigurationRequestDataBlock) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DeviceConfigurationRequestDataBlockParse(io spi.ReadBuffer) (spi.Message, error) {
+func DeviceConfigurationRequestDataBlockParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go
index 0d910e4..0267dc5 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceStatus.go
@@ -75,7 +75,7 @@ func (m DeviceStatus) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DeviceStatusParse(io spi.ReadBuffer) (spi.Message, error) {
+func DeviceStatusParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
index 749d140..9520a4c 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
@@ -90,7 +90,7 @@ func (m DisconnectRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DisconnectRequestParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func DisconnectRequestParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (communicationChannelId)
 	communicationChannelId, _communicationChannelIdErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
index 013199d..9b82327 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectResponse.go
@@ -85,7 +85,7 @@ func (m DisconnectResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DisconnectResponseParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func DisconnectResponseParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (communicationChannelId)
 	communicationChannelId, _communicationChannelIdErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
index ff7667f..1a616a0 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
@@ -83,7 +83,7 @@ func (m HPAIControlEndpoint) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func HPAIControlEndpointParse(io spi.ReadBuffer) (spi.Message, error) {
+func HPAIControlEndpointParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
index 845aaef..d9425f3 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
@@ -83,7 +83,7 @@ func (m HPAIDataEndpoint) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func HPAIDataEndpointParse(io spi.ReadBuffer) (spi.Message, error) {
+func HPAIDataEndpointParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
index bae9c1e..8a3c86c 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
@@ -83,7 +83,7 @@ func (m HPAIDiscoveryEndpoint) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func HPAIDiscoveryEndpointParse(io spi.ReadBuffer) (spi.Message, error) {
+func HPAIDiscoveryEndpointParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
index 1cb1eef..2459c28 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
@@ -50,7 +50,7 @@ func (m HostProtocolCode) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func HostProtocolCodeParse(io spi.ReadBuffer) (HostProtocolCode, error) {
+func HostProtocolCodeParse(io *spi.ReadBuffer) (HostProtocolCode, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
index 86ebd76..8d42bd2 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/IPAddress.go
@@ -73,21 +73,18 @@ func (m IPAddress) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func IPAddressParse(io spi.ReadBuffer) (spi.Message, error) {
+func IPAddressParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Array field (addr)
-	var addr []int8
 	// Count array
-	{
-		addr := make([]int8, uint16(4))
-		for curItem := uint16(0); curItem < uint16(uint16(4)); curItem++ {
-
-			_addrVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'addr' field " + _err.Error())
-			}
-			addr = append(addr, _addrVal)
+	addr := make([]int8, uint16(4))
+	for curItem := uint16(0); curItem < uint16(uint16(4)); curItem++ {
+
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'addr' field " + _err.Error())
 		}
+		addr[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXAddress.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXAddress.go
index 7175cd4..84ee309 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXAddress.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXAddress.go
@@ -79,7 +79,7 @@ func (m KNXAddress) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KNXAddressParse(io spi.ReadBuffer) (spi.Message, error) {
+func KNXAddressParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (mainGroup)
 	mainGroup, _mainGroupErr := io.ReadUint8(4)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress.go
index f8d7ed5..a886eec 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress.go
@@ -74,7 +74,7 @@ func (m KNXGroupAddress) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KNXGroupAddressParse(io spi.ReadBuffer, numLevels uint8) (spi.Message, error) {
+func KNXGroupAddressParse(io *spi.ReadBuffer, numLevels uint8) (spi.Message, error) {
 
 	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
 	var initializer KNXGroupAddressInitializer
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress2Level.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress2Level.go
index 5c6d2b0..f8654cf 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress2Level.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress2Level.go
@@ -85,7 +85,7 @@ func (m KNXGroupAddress2Level) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KNXGroupAddress2LevelParse(io spi.ReadBuffer) (KNXGroupAddressInitializer, error) {
+func KNXGroupAddress2LevelParse(io *spi.ReadBuffer) (KNXGroupAddressInitializer, error) {
 
 	// Simple Field (mainGroup)
 	mainGroup, _mainGroupErr := io.ReadUint8(5)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress3Level.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress3Level.go
index 17413ae..e894620 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress3Level.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddress3Level.go
@@ -89,7 +89,7 @@ func (m KNXGroupAddress3Level) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KNXGroupAddress3LevelParse(io spi.ReadBuffer) (KNXGroupAddressInitializer, error) {
+func KNXGroupAddress3LevelParse(io *spi.ReadBuffer) (KNXGroupAddressInitializer, error) {
 
 	// Simple Field (mainGroup)
 	mainGroup, _mainGroupErr := io.ReadUint8(5)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddressFreeLevel.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddressFreeLevel.go
index 5690f21..265bbca 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddressFreeLevel.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXGroupAddressFreeLevel.go
@@ -81,7 +81,7 @@ func (m KNXGroupAddressFreeLevel) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KNXGroupAddressFreeLevelParse(io spi.ReadBuffer) (KNXGroupAddressInitializer, error) {
+func KNXGroupAddressFreeLevelParse(io *spi.ReadBuffer) (KNXGroupAddressInitializer, error) {
 
 	// Simple Field (subGroup)
 	subGroup, _subGroupErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXNetIPMessage.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXNetIPMessage.go
index 9ee8b5b..48417da 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXNetIPMessage.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KNXNetIPMessage.go
@@ -90,7 +90,7 @@ func (m KNXNetIPMessage) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KNXNetIPMessageParse(io spi.ReadBuffer) (spi.Message, error) {
+func KNXNetIPMessageParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (headerLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _headerLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
index d9d6c9c..addd4d9 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
@@ -51,7 +51,7 @@ func (m KnxLayer) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KnxLayerParse(io spi.ReadBuffer) (KnxLayer, error) {
+func KnxLayerParse(io *spi.ReadBuffer) (KnxLayer, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
index 041b0ad..ddef9ce 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpCore.go
@@ -81,7 +81,7 @@ func (m KnxNetIpCore) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KnxNetIpCoreParse(io spi.ReadBuffer) (ServiceIdInitializer, error) {
+func KnxNetIpCoreParse(io *spi.ReadBuffer) (ServiceIdInitializer, error) {
 
 	// Simple Field (version)
 	version, _versionErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
index acf4b4b..86687c2 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpDeviceManagement.go
@@ -81,7 +81,7 @@ func (m KnxNetIpDeviceManagement) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KnxNetIpDeviceManagementParse(io spi.ReadBuffer) (ServiceIdInitializer, error) {
+func KnxNetIpDeviceManagementParse(io *spi.ReadBuffer) (ServiceIdInitializer, error) {
 
 	// Simple Field (version)
 	version, _versionErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
index 1c6067f..c729b2a 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpTunneling.go
@@ -81,7 +81,7 @@ func (m KnxNetIpTunneling) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KnxNetIpTunnelingParse(io spi.ReadBuffer) (ServiceIdInitializer, error) {
+func KnxNetIpTunnelingParse(io *spi.ReadBuffer) (ServiceIdInitializer, error) {
 
 	// Simple Field (version)
 	version, _versionErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
index e3b6454..c7af8ae 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetObjectServer.go
@@ -81,7 +81,7 @@ func (m KnxNetObjectServer) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KnxNetObjectServerParse(io spi.ReadBuffer) (ServiceIdInitializer, error) {
+func KnxNetObjectServerParse(io *spi.ReadBuffer) (ServiceIdInitializer, error) {
 
 	// Simple Field (version)
 	version, _versionErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
index 79daf5d..21bdea8 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteConfigurationAndDiagnosis.go
@@ -81,7 +81,7 @@ func (m KnxNetRemoteConfigurationAndDiagnosis) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KnxNetRemoteConfigurationAndDiagnosisParse(io spi.ReadBuffer) (ServiceIdInitializer, error) {
+func KnxNetRemoteConfigurationAndDiagnosisParse(io *spi.ReadBuffer) (ServiceIdInitializer, error) {
 
 	// Simple Field (version)
 	version, _versionErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
index 7f448d8..8ee20c1 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetRemoteLogging.go
@@ -81,7 +81,7 @@ func (m KnxNetRemoteLogging) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func KnxNetRemoteLoggingParse(io spi.ReadBuffer) (ServiceIdInitializer, error) {
+func KnxNetRemoteLoggingParse(io *spi.ReadBuffer) (ServiceIdInitializer, error) {
 
 	// Simple Field (version)
 	version, _versionErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
index 622b583..f0e8b65 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/MACAddress.go
@@ -73,21 +73,18 @@ func (m MACAddress) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func MACAddressParse(io spi.ReadBuffer) (spi.Message, error) {
+func MACAddressParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Array field (addr)
-	var addr []int8
 	// Count array
-	{
-		addr := make([]int8, uint16(6))
-		for curItem := uint16(0); curItem < uint16(uint16(6)); curItem++ {
-
-			_addrVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'addr' field " + _err.Error())
-			}
-			addr = append(addr, _addrVal)
+	addr := make([]int8, uint16(6))
+	for curItem := uint16(0); curItem < uint16(uint16(6)); curItem++ {
+
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'addr' field " + _err.Error())
 		}
+		addr[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go
index 2c9c948..9f5ce74 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ProjectInstallationIdentifier.go
@@ -75,7 +75,7 @@ func (m ProjectInstallationIdentifier) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ProjectInstallationIdentifierParse(io spi.ReadBuffer) (spi.Message, error) {
+func ProjectInstallationIdentifierParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (projectNumber)
 	projectNumber, _projectNumberErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go
index 4c55b4f..419862a 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RelativeTimestamp.go
@@ -71,7 +71,7 @@ func (m RelativeTimestamp) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func RelativeTimestampParse(io spi.ReadBuffer) (spi.Message, error) {
+func RelativeTimestampParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (timestamp)
 	timestamp, _timestampErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
index 0058e4f..63fe800 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/RoutingIndication.go
@@ -76,7 +76,7 @@ func (m RoutingIndication) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func RoutingIndicationParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func RoutingIndicationParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Create the instance
 	return NewRoutingIndication(), nil
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
index 619bb6a..85d0bec 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
@@ -82,7 +82,7 @@ func (m SearchRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func SearchRequestParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func SearchRequestParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (hpaiIDiscoveryEndpoint)
 	_hpaiIDiscoveryEndpointMessage, _err := HPAIDiscoveryEndpointParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
index 06ef837..8ca5ae6 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
@@ -90,7 +90,7 @@ func (m SearchResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func SearchResponseParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func SearchResponseParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (hpaiControlEndpoint)
 	_hpaiControlEndpointMessage, _err := HPAIControlEndpointParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
index 13aacd7..5730045 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
@@ -77,7 +77,7 @@ func (m ServiceId) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ServiceIdParse(io spi.ReadBuffer) (spi.Message, error) {
+func ServiceIdParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (serviceType) (Used as input to a switch field)
 	serviceType, _serviceTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
index b6e5077..adfa770 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
@@ -60,7 +60,7 @@ func (m Status) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func StatusParse(io spi.ReadBuffer) (Status, error) {
+func StatusParse(io *spi.ReadBuffer) (Status, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TPCI.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TPCI.go
index 9c32560..82aeb61 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TPCI.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TPCI.go
@@ -52,7 +52,7 @@ func (m TPCI) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func TPCIParse(io spi.ReadBuffer) (TPCI, error) {
+func TPCIParse(io *spi.ReadBuffer) (TPCI, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
index bc8c873..addb627 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
@@ -86,7 +86,7 @@ func (m TunnelingRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func TunnelingRequestParse(io spi.ReadBuffer, totalLength uint16) (KNXNetIPMessageInitializer, error) {
+func TunnelingRequestParse(io *spi.ReadBuffer, totalLength uint16) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (tunnelingRequestDataBlock)
 	_tunnelingRequestDataBlockMessage, _err := TunnelingRequestDataBlockParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go
index b01a2d4..4e565aa 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequestDataBlock.go
@@ -82,7 +82,7 @@ func (m TunnelingRequestDataBlock) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func TunnelingRequestDataBlockParse(io spi.ReadBuffer) (spi.Message, error) {
+func TunnelingRequestDataBlockParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
index 2d5edb2..cebbc91 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
@@ -82,7 +82,7 @@ func (m TunnelingResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func TunnelingResponseParse(io spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
+func TunnelingResponseParse(io *spi.ReadBuffer) (KNXNetIPMessageInitializer, error) {
 
 	// Simple Field (tunnelingResponseDataBlock)
 	_tunnelingResponseDataBlockMessage, _err := TunnelingResponseDataBlockParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go
index 18523ba..f101b99 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponseDataBlock.go
@@ -82,7 +82,7 @@ func (m TunnelingResponseDataBlock) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func TunnelingResponseDataBlockParse(io spi.ReadBuffer) (spi.Message, error) {
+func TunnelingResponseDataBlockParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (structureLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _structureLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
index 964a743..8555ca5 100644
--- a/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
+++ b/sandbox/plc4go/internal/plc4go/knxnetip/readwrite/model/UnknownMessage.go
@@ -83,21 +83,18 @@ func (m UnknownMessage) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func UnknownMessageParse(io spi.ReadBuffer, totalLength uint16) (KNXNetIPMessageInitializer, error) {
+func UnknownMessageParse(io *spi.ReadBuffer, totalLength uint16) (KNXNetIPMessageInitializer, error) {
 
 	// Array field (unknownData)
-	var unknownData []int8
 	// Count array
-	{
-		unknownData := make([]int8, uint16(totalLength)-uint16(uint16(6)))
-		for curItem := uint16(0); curItem < uint16(uint16(totalLength)-uint16(uint16(6))); curItem++ {
+	unknownData := make([]int8, uint16(totalLength)-uint16(uint16(6)))
+	for curItem := uint16(0); curItem < uint16(uint16(totalLength)-uint16(uint16(6))); curItem++ {
 
-			_unknownDataVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'unknownData' field " + _err.Error())
-			}
-			unknownData = append(unknownData, _unknownDataVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'unknownData' field " + _err.Error())
 		}
+		unknownData[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
index 6d3e802..0889afc 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusConstants.go
@@ -74,7 +74,7 @@ func (m ModbusConstants) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusConstantsParse(io spi.ReadBuffer) (spi.Message, error) {
+func ModbusConstantsParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Const Field (modbusTcpDefaultPort)
 	modbusTcpDefaultPort, _modbusTcpDefaultPortErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
index d00f104..b66a4de 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
@@ -198,7 +198,7 @@ func (m ModbusDataType) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusDataTypeParse(io spi.ReadBuffer) (ModbusDataType, error) {
+func ModbusDataTypeParse(io *spi.ReadBuffer) (ModbusDataType, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
index dfe474e..396f0b7 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
@@ -90,7 +90,7 @@ func (m ModbusPDU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUParse(io spi.ReadBuffer, response bool) (spi.Message, error) {
+func ModbusPDUParse(io *spi.ReadBuffer, response bool) (spi.Message, error) {
 
 	// Discriminator Field (errorFlag) (Used as input to a switch field)
 	errorFlag, _errorFlagErr := io.ReadBit()
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
index e28249f..253f2af 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUDiagnosticRequest.go
@@ -93,7 +93,7 @@ func (m ModbusPDUDiagnosticRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUDiagnosticRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUDiagnosticRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (status)
 	status, _statusErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
index 8acb1c6..2a3da8e 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUError.go
@@ -89,7 +89,7 @@ func (m ModbusPDUError) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUErrorParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUErrorParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (exceptionCode)
 	exceptionCode, _exceptionCodeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
index 394fd1c..c209035 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogRequest.go
@@ -84,7 +84,7 @@ func (m ModbusPDUGetComEventLogRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUGetComEventLogRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUGetComEventLogRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Create the instance
 	return NewModbusPDUGetComEventLogRequest(), nil
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
index dd396cf..7ddfd6b 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUGetComEventLogResponse.go
@@ -106,7 +106,7 @@ func (m ModbusPDUGetComEventLogResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUGetComEventLogResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUGetComEventLogResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -133,18 +133,15 @@ func ModbusPDUGetComEventLogResponseParse(io spi.ReadBuffer) (ModbusPDUInitializ
 	}
 
 	// Array field (events)
-	var events []int8
 	// Count array
-	{
-		events := make([]int8, uint16(byteCount)-uint16(uint16(6)))
-		for curItem := uint16(0); curItem < uint16(uint16(byteCount)-uint16(uint16(6))); curItem++ {
+	events := make([]int8, uint16(byteCount)-uint16(uint16(6)))
+	for curItem := uint16(0); curItem < uint16(uint16(byteCount)-uint16(uint16(6))); curItem++ {
 
-			_eventsVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'events' field " + _err.Error())
-			}
-			events = append(events, _eventsVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'events' field " + _err.Error())
 		}
+		events[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
index 6421e28..e14e25e 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterRequest.go
@@ -97,7 +97,7 @@ func (m ModbusPDUMaskWriteHoldingRegisterRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUMaskWriteHoldingRegisterRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUMaskWriteHoldingRegisterRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (referenceAddress)
 	referenceAddress, _referenceAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
index 98a8602..e8fc0fd 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUMaskWriteHoldingRegisterResponse.go
@@ -97,7 +97,7 @@ func (m ModbusPDUMaskWriteHoldingRegisterResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUMaskWriteHoldingRegisterResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUMaskWriteHoldingRegisterResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (referenceAddress)
 	referenceAddress, _referenceAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
index 41cec7f..c9bc8f0 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsRequest.go
@@ -93,7 +93,7 @@ func (m ModbusPDUReadCoilsRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadCoilsRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadCoilsRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
index bf6ddc3..e9a90db 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadCoilsResponse.go
@@ -94,7 +94,7 @@ func (m ModbusPDUReadCoilsResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadCoilsResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadCoilsResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -103,18 +103,15 @@ func ModbusPDUReadCoilsResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, e
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
index 23a333b..44c0476 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationRequest.go
@@ -84,7 +84,7 @@ func (m ModbusPDUReadDeviceIdentificationRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadDeviceIdentificationRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadDeviceIdentificationRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Create the instance
 	return NewModbusPDUReadDeviceIdentificationRequest(), nil
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
index fc3baf1..c561414 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDeviceIdentificationResponse.go
@@ -84,7 +84,7 @@ func (m ModbusPDUReadDeviceIdentificationResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadDeviceIdentificationResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadDeviceIdentificationResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Create the instance
 	return NewModbusPDUReadDeviceIdentificationResponse(), nil
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
index 8a182ba..a622bb0 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsRequest.go
@@ -93,7 +93,7 @@ func (m ModbusPDUReadDiscreteInputsRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadDiscreteInputsRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadDiscreteInputsRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
index 023ab53..f31691a 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadDiscreteInputsResponse.go
@@ -94,7 +94,7 @@ func (m ModbusPDUReadDiscreteInputsResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadDiscreteInputsResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadDiscreteInputsResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -103,18 +103,15 @@ func ModbusPDUReadDiscreteInputsResponseParse(io spi.ReadBuffer) (ModbusPDUIniti
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
index c6d6240..ce4f30a 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusRequest.go
@@ -84,7 +84,7 @@ func (m ModbusPDUReadExceptionStatusRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadExceptionStatusRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadExceptionStatusRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Create the instance
 	return NewModbusPDUReadExceptionStatusRequest(), nil
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
index 9c81bac..b14166c 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadExceptionStatusResponse.go
@@ -89,7 +89,7 @@ func (m ModbusPDUReadExceptionStatusResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadExceptionStatusResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadExceptionStatusResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (value)
 	value, _valueErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
index 5679259..0b0c06c 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueRequest.go
@@ -89,7 +89,7 @@ func (m ModbusPDUReadFifoQueueRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadFifoQueueRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadFifoQueueRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (fifoPointerAddress)
 	fifoPointerAddress, _fifoPointerAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
index 43f19b5..ed193f9 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFifoQueueResponse.go
@@ -97,7 +97,7 @@ func (m ModbusPDUReadFifoQueueResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadFifoQueueResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadFifoQueueResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _byteCountErr := io.ReadUint16(16)
@@ -112,18 +112,15 @@ func ModbusPDUReadFifoQueueResponseParse(io spi.ReadBuffer) (ModbusPDUInitialize
 	}
 
 	// Array field (fifoValue)
-	var fifoValue []uint16
 	// Count array
-	{
-		fifoValue := make([]uint16, fifoCount)
-		for curItem := uint16(0); curItem < uint16(fifoCount); curItem++ {
+	fifoValue := make([]uint16, fifoCount)
+	for curItem := uint16(0); curItem < uint16(fifoCount); curItem++ {
 
-			_fifoValueVal, _err := io.ReadUint16(16)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'fifoValue' field " + _err.Error())
-			}
-			fifoValue = append(fifoValue, _fifoValueVal)
+		_item, _err := io.ReadUint16(16)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'fifoValue' field " + _err.Error())
 		}
+		fifoValue[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
index 412d0ee..7e1be7d 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequest.go
@@ -97,7 +97,7 @@ func (m ModbusPDUReadFileRecordRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadFileRecordRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadFileRecordRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -106,8 +106,8 @@ func ModbusPDUReadFileRecordRequestParse(io spi.ReadBuffer) (ModbusPDUInitialize
 	}
 
 	// Array field (items)
-	var items []IModbusPDUReadFileRecordRequestItem
 	// Length array
+	items := make([]IModbusPDUReadFileRecordRequestItem, 0)
 	_itemsLength := byteCount
 	_itemsEndPos := io.GetPos() + uint16(_itemsLength)
 	for io.GetPos() < _itemsEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequestItem.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequestItem.go
index a1b2e2b..e3930be 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequestItem.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordRequestItem.go
@@ -83,7 +83,7 @@ func (m ModbusPDUReadFileRecordRequestItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadFileRecordRequestItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func ModbusPDUReadFileRecordRequestItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (referenceType)
 	referenceType, _referenceTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
index ef7ad42..e5765b6 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponse.go
@@ -97,7 +97,7 @@ func (m ModbusPDUReadFileRecordResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadFileRecordResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadFileRecordResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -106,8 +106,8 @@ func ModbusPDUReadFileRecordResponseParse(io spi.ReadBuffer) (ModbusPDUInitializ
 	}
 
 	// Array field (items)
-	var items []IModbusPDUReadFileRecordResponseItem
 	// Length array
+	items := make([]IModbusPDUReadFileRecordResponseItem, 0)
 	_itemsLength := byteCount
 	_itemsEndPos := io.GetPos() + uint16(_itemsLength)
 	for io.GetPos() < _itemsEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go
index bce5c75..fda0273 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadFileRecordResponseItem.go
@@ -80,7 +80,7 @@ func (m ModbusPDUReadFileRecordResponseItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadFileRecordResponseItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func ModbusPDUReadFileRecordResponseItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Implicit Field (dataLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	dataLength, _dataLengthErr := io.ReadUint8(8)
@@ -95,16 +95,16 @@ func ModbusPDUReadFileRecordResponseItemParse(io spi.ReadBuffer) (spi.Message, e
 	}
 
 	// Array field (data)
-	var data []int8
 	// Length array
+	data := make([]int8, 0)
 	_dataLength := uint16(dataLength) - uint16(uint16(1))
 	_dataEndPos := io.GetPos() + uint16(_dataLength)
 	for io.GetPos() < _dataEndPos {
-		_dataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
-		data = append(data, _dataVal)
+		data = append(data, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
index 13d976d..2ec153b 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersRequest.go
@@ -93,7 +93,7 @@ func (m ModbusPDUReadHoldingRegistersRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadHoldingRegistersRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadHoldingRegistersRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
index 2ad530a..6be60c9 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadHoldingRegistersResponse.go
@@ -94,7 +94,7 @@ func (m ModbusPDUReadHoldingRegistersResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadHoldingRegistersResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadHoldingRegistersResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -103,18 +103,15 @@ func ModbusPDUReadHoldingRegistersResponseParse(io spi.ReadBuffer) (ModbusPDUIni
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
index f8e138d..721cb0a 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersRequest.go
@@ -93,7 +93,7 @@ func (m ModbusPDUReadInputRegistersRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadInputRegistersRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadInputRegistersRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
index 0543102..4f68421 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadInputRegistersResponse.go
@@ -94,7 +94,7 @@ func (m ModbusPDUReadInputRegistersResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadInputRegistersResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadInputRegistersResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -103,18 +103,15 @@ func ModbusPDUReadInputRegistersResponseParse(io spi.ReadBuffer) (ModbusPDUIniti
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
index c89e951..7bd3baa 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersRequest.go
@@ -110,7 +110,7 @@ func (m ModbusPDUReadWriteMultipleHoldingRegistersRequest) LengthInBytes() uint1
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadWriteMultipleHoldingRegistersRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadWriteMultipleHoldingRegistersRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (readStartingAddress)
 	readStartingAddress, _readStartingAddressErr := io.ReadUint16(16)
@@ -143,18 +143,15 @@ func ModbusPDUReadWriteMultipleHoldingRegistersRequestParse(io spi.ReadBuffer) (
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
index 3f17dae..4d0ba4b 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReadWriteMultipleHoldingRegistersResponse.go
@@ -94,7 +94,7 @@ func (m ModbusPDUReadWriteMultipleHoldingRegistersResponse) LengthInBytes() uint
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReadWriteMultipleHoldingRegistersResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReadWriteMultipleHoldingRegistersResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -103,18 +103,15 @@ func ModbusPDUReadWriteMultipleHoldingRegistersResponseParse(io spi.ReadBuffer)
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
index 46c3ba6..bbe66ea 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdRequest.go
@@ -84,7 +84,7 @@ func (m ModbusPDUReportServerIdRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReportServerIdRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReportServerIdRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Create the instance
 	return NewModbusPDUReportServerIdRequest(), nil
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
index 103638a..3b9e6c8 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUReportServerIdResponse.go
@@ -94,7 +94,7 @@ func (m ModbusPDUReportServerIdResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUReportServerIdResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUReportServerIdResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -103,18 +103,15 @@ func ModbusPDUReportServerIdResponseParse(io spi.ReadBuffer) (ModbusPDUInitializ
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
index 14b25eb..4f00992 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequest.go
@@ -97,7 +97,7 @@ func (m ModbusPDUWriteFileRecordRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteFileRecordRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteFileRecordRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -106,8 +106,8 @@ func ModbusPDUWriteFileRecordRequestParse(io spi.ReadBuffer) (ModbusPDUInitializ
 	}
 
 	// Array field (items)
-	var items []IModbusPDUWriteFileRecordRequestItem
 	// Length array
+	items := make([]IModbusPDUWriteFileRecordRequestItem, 0)
 	_itemsLength := byteCount
 	_itemsEndPos := io.GetPos() + uint16(_itemsLength)
 	for io.GetPos() < _itemsEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go
index b980a50..f01c807 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordRequestItem.go
@@ -88,7 +88,7 @@ func (m ModbusPDUWriteFileRecordRequestItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteFileRecordRequestItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func ModbusPDUWriteFileRecordRequestItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (referenceType)
 	referenceType, _referenceTypeErr := io.ReadUint8(8)
@@ -115,16 +115,16 @@ func ModbusPDUWriteFileRecordRequestItemParse(io spi.ReadBuffer) (spi.Message, e
 	}
 
 	// Array field (recordData)
-	var recordData []int8
 	// Length array
+	recordData := make([]int8, 0)
 	_recordDataLength := uint16(recordLength) * uint16(uint16(2))
 	_recordDataEndPos := io.GetPos() + uint16(_recordDataLength)
 	for io.GetPos() < _recordDataEndPos {
-		_recordDataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'recordData' field " + _err.Error())
 		}
-		recordData = append(recordData, _recordDataVal)
+		recordData = append(recordData, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
index b749598..85aea1a 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponse.go
@@ -97,7 +97,7 @@ func (m ModbusPDUWriteFileRecordResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteFileRecordResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteFileRecordResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Implicit Field (byteCount) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	byteCount, _byteCountErr := io.ReadUint8(8)
@@ -106,8 +106,8 @@ func ModbusPDUWriteFileRecordResponseParse(io spi.ReadBuffer) (ModbusPDUInitiali
 	}
 
 	// Array field (items)
-	var items []IModbusPDUWriteFileRecordResponseItem
 	// Length array
+	items := make([]IModbusPDUWriteFileRecordResponseItem, 0)
 	_itemsLength := byteCount
 	_itemsEndPos := io.GetPos() + uint16(_itemsLength)
 	for io.GetPos() < _itemsEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go
index a6b0d6f..3877487 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteFileRecordResponseItem.go
@@ -88,7 +88,7 @@ func (m ModbusPDUWriteFileRecordResponseItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteFileRecordResponseItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func ModbusPDUWriteFileRecordResponseItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (referenceType)
 	referenceType, _referenceTypeErr := io.ReadUint8(8)
@@ -115,16 +115,16 @@ func ModbusPDUWriteFileRecordResponseItemParse(io spi.ReadBuffer) (spi.Message,
 	}
 
 	// Array field (recordData)
-	var recordData []int8
 	// Length array
+	recordData := make([]int8, 0)
 	_recordDataLength := recordLength
 	_recordDataEndPos := io.GetPos() + uint16(_recordDataLength)
 	for io.GetPos() < _recordDataEndPos {
-		_recordDataVal, _err := io.ReadInt8(8)
+		_item, _err := io.ReadInt8(8)
 		if _err != nil {
 			return nil, errors.New("Error parsing 'recordData' field " + _err.Error())
 		}
-		recordData = append(recordData, _recordDataVal)
+		recordData = append(recordData, _item)
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
index 36aeaba..9ad062c 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsRequest.go
@@ -102,7 +102,7 @@ func (m ModbusPDUWriteMultipleCoilsRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteMultipleCoilsRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteMultipleCoilsRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
@@ -123,18 +123,15 @@ func ModbusPDUWriteMultipleCoilsRequestParse(io spi.ReadBuffer) (ModbusPDUInitia
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
index 7efff10..9884f0a 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleCoilsResponse.go
@@ -93,7 +93,7 @@ func (m ModbusPDUWriteMultipleCoilsResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteMultipleCoilsResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteMultipleCoilsResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
index 63c7286..03ae26a 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersRequest.go
@@ -102,7 +102,7 @@ func (m ModbusPDUWriteMultipleHoldingRegistersRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteMultipleHoldingRegistersRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteMultipleHoldingRegistersRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
@@ -123,18 +123,15 @@ func ModbusPDUWriteMultipleHoldingRegistersRequestParse(io spi.ReadBuffer) (Modb
 	}
 
 	// Array field (value)
-	var value []int8
 	// Count array
-	{
-		value := make([]int8, byteCount)
-		for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
+	value := make([]int8, byteCount)
+	for curItem := uint16(0); curItem < uint16(byteCount); curItem++ {
 
-			_valueVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'value' field " + _err.Error())
-			}
-			value = append(value, _valueVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'value' field " + _err.Error())
 		}
+		value[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
index 01a7474..7083a1f 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteMultipleHoldingRegistersResponse.go
@@ -93,7 +93,7 @@ func (m ModbusPDUWriteMultipleHoldingRegistersResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteMultipleHoldingRegistersResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteMultipleHoldingRegistersResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (startingAddress)
 	startingAddress, _startingAddressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
index a6dc734..19f33af 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilRequest.go
@@ -93,7 +93,7 @@ func (m ModbusPDUWriteSingleCoilRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteSingleCoilRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteSingleCoilRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (address)
 	address, _addressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
index 0db3fbc..0db3a20 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleCoilResponse.go
@@ -93,7 +93,7 @@ func (m ModbusPDUWriteSingleCoilResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteSingleCoilResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteSingleCoilResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (address)
 	address, _addressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
index 362944f..5741fd4 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterRequest.go
@@ -93,7 +93,7 @@ func (m ModbusPDUWriteSingleRegisterRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteSingleRegisterRequestParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteSingleRegisterRequestParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (address)
 	address, _addressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
index 9dd89ad..8598440 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDUWriteSingleRegisterResponse.go
@@ -93,7 +93,7 @@ func (m ModbusPDUWriteSingleRegisterResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusPDUWriteSingleRegisterResponseParse(io spi.ReadBuffer) (ModbusPDUInitializer, error) {
+func ModbusPDUWriteSingleRegisterResponseParse(io *spi.ReadBuffer) (ModbusPDUInitializer, error) {
 
 	// Simple Field (address)
 	address, _addressErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusSerialADU.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusSerialADU.go
index d21d277..8c92127 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusSerialADU.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusSerialADU.go
@@ -88,7 +88,7 @@ func (m ModbusSerialADU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusSerialADUParse(io spi.ReadBuffer, response bool) (spi.Message, error) {
+func ModbusSerialADUParse(io *spi.ReadBuffer, response bool) (spi.Message, error) {
 
 	// Simple Field (transactionId)
 	transactionId, _transactionIdErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go
index 34e9a57..bf26fd4 100644
--- a/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go
+++ b/sandbox/plc4go/internal/plc4go/modbus/readwrite/model/ModbusTcpADU.go
@@ -90,7 +90,7 @@ func (m ModbusTcpADU) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func ModbusTcpADUParse(io spi.ReadBuffer, response bool) (spi.Message, error) {
+func ModbusTcpADUParse(io *spi.ReadBuffer, response bool) (spi.Message, error) {
 
 	// Simple Field (transactionIdentifier)
 	transactionIdentifier, _transactionIdentifierErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go
index 2f27d38..fecf00b 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go
@@ -95,7 +95,7 @@ func (m COTPPacket) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPPacketParse(io spi.ReadBuffer, cotpLen uint16) (spi.Message, error) {
+func COTPPacketParse(io *spi.ReadBuffer, cotpLen uint16) (spi.Message, error) {
 	var startPos = io.GetPos()
 	var curPos uint16
 
@@ -134,8 +134,8 @@ func COTPPacketParse(io spi.ReadBuffer, cotpLen uint16) (spi.Message, error) {
 
 	// Array field (parameters)
 	curPos = io.GetPos() - startPos
-	var parameters []ICOTPParameter
 	// Length array
+	parameters := make([]ICOTPParameter, 0)
 	_parametersLength := uint16(uint16(uint16(headerLength)+uint16(uint16(1)))) - uint16(curPos)
 	_parametersEndPos := io.GetPos() + uint16(_parametersLength)
 	for io.GetPos() < _parametersEndPos {
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go
index 78217b8..854b8fa 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionRequest.go
@@ -91,7 +91,7 @@ func (m COTPPacketConnectionRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPPacketConnectionRequestParse(io spi.ReadBuffer) (COTPPacketInitializer, error) {
+func COTPPacketConnectionRequestParse(io *spi.ReadBuffer) (COTPPacketInitializer, error) {
 
 	// Simple Field (destinationReference)
 	destinationReference, _destinationReferenceErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go
index 0553355..566e130 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketConnectionResponse.go
@@ -91,7 +91,7 @@ func (m COTPPacketConnectionResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPPacketConnectionResponseParse(io spi.ReadBuffer) (COTPPacketInitializer, error) {
+func COTPPacketConnectionResponseParse(io *spi.ReadBuffer) (COTPPacketInitializer, error) {
 
 	// Simple Field (destinationReference)
 	destinationReference, _destinationReferenceErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go
index 7737610..be84123 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketData.go
@@ -87,7 +87,7 @@ func (m COTPPacketData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPPacketDataParse(io spi.ReadBuffer) (COTPPacketInitializer, error) {
+func COTPPacketDataParse(io *spi.ReadBuffer) (COTPPacketInitializer, error) {
 
 	// Simple Field (eot)
 	eot, _eotErr := io.ReadBit()
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go
index 134b246..5b299ed 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectRequest.go
@@ -91,7 +91,7 @@ func (m COTPPacketDisconnectRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPPacketDisconnectRequestParse(io spi.ReadBuffer) (COTPPacketInitializer, error) {
+func COTPPacketDisconnectRequestParse(io *spi.ReadBuffer) (COTPPacketInitializer, error) {
 
 	// Simple Field (destinationReference)
 	destinationReference, _destinationReferenceErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go
index d5d1d94..ee5e541 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketDisconnectResponse.go
@@ -87,7 +87,7 @@ func (m COTPPacketDisconnectResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPPacketDisconnectResponseParse(io spi.ReadBuffer) (COTPPacketInitializer, error) {
+func COTPPacketDisconnectResponseParse(io *spi.ReadBuffer) (COTPPacketInitializer, error) {
 
 	// Simple Field (destinationReference)
 	destinationReference, _destinationReferenceErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go
index 802b3b3..a84785b 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPPacketTpduError.go
@@ -87,7 +87,7 @@ func (m COTPPacketTpduError) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPPacketTpduErrorParse(io spi.ReadBuffer) (COTPPacketInitializer, error) {
+func COTPPacketTpduErrorParse(io *spi.ReadBuffer) (COTPPacketInitializer, error) {
 
 	// Simple Field (destinationReference)
 	destinationReference, _destinationReferenceErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go
index c812e90..5f1d428 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go
@@ -80,7 +80,7 @@ func (m COTPParameter) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPParameterParse(io spi.ReadBuffer, rest uint8) (spi.Message, error) {
+func COTPParameterParse(io *spi.ReadBuffer, rest uint8) (spi.Message, error) {
 
 	// Discriminator Field (parameterType) (Used as input to a switch field)
 	parameterType, _parameterTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
index 006f97f..b4148db 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCalledTsap.go
@@ -81,7 +81,7 @@ func (m COTPParameterCalledTsap) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPParameterCalledTsapParse(io spi.ReadBuffer) (COTPParameterInitializer, error) {
+func COTPParameterCalledTsapParse(io *spi.ReadBuffer) (COTPParameterInitializer, error) {
 
 	// Simple Field (tsapId)
 	tsapId, _tsapIdErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
index 16029ac..9454562 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterCallingTsap.go
@@ -81,7 +81,7 @@ func (m COTPParameterCallingTsap) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPParameterCallingTsapParse(io spi.ReadBuffer) (COTPParameterInitializer, error) {
+func COTPParameterCallingTsapParse(io *spi.ReadBuffer) (COTPParameterInitializer, error) {
 
 	// Simple Field (tsapId)
 	tsapId, _tsapIdErr := io.ReadUint16(16)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
index 7561921..3afef51 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterChecksum.go
@@ -81,7 +81,7 @@ func (m COTPParameterChecksum) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPParameterChecksumParse(io spi.ReadBuffer) (COTPParameterInitializer, error) {
+func COTPParameterChecksumParse(io *spi.ReadBuffer) (COTPParameterInitializer, error) {
 
 	// Simple Field (crc)
 	crc, _crcErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
index 55f5eb1..e7becfc 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterDisconnectAdditionalInformation.go
@@ -83,21 +83,18 @@ func (m COTPParameterDisconnectAdditionalInformation) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPParameterDisconnectAdditionalInformationParse(io spi.ReadBuffer, rest uint8) (COTPParameterInitializer, error) {
+func COTPParameterDisconnectAdditionalInformationParse(io *spi.ReadBuffer, rest uint8) (COTPParameterInitializer, error) {
 
 	// Array field (data)
-	var data []uint8
 	// Count array
-	{
-		data := make([]uint8, rest)
-		for curItem := uint16(0); curItem < uint16(rest); curItem++ {
+	data := make([]uint8, rest)
+	for curItem := uint16(0); curItem < uint16(rest); curItem++ {
 
-			_dataVal, _err := io.ReadUint8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'data' field " + _err.Error())
-			}
-			data = append(data, _dataVal)
+		_item, _err := io.ReadUint8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
+		data[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
index b39e1ad..f242161 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPParameterTpduSize.go
@@ -81,7 +81,7 @@ func (m COTPParameterTpduSize) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPParameterTpduSizeParse(io spi.ReadBuffer) (COTPParameterInitializer, error) {
+func COTPParameterTpduSizeParse(io *spi.ReadBuffer) (COTPParameterInitializer, error) {
 
 	// Enum field (tpduSize)
 	tpduSize, _tpduSizeErr := COTPTpduSizeParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
index a71dded..de5d751 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
@@ -53,7 +53,7 @@ func (m COTPProtocolClass) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPProtocolClassParse(io spi.ReadBuffer) (COTPProtocolClass, error) {
+func COTPProtocolClassParse(io *spi.ReadBuffer) (COTPProtocolClass, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
index 39bea02..b7abaa2 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
@@ -93,7 +93,7 @@ func (m COTPTpduSize) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func COTPTpduSizeParse(io spi.ReadBuffer) (COTPTpduSize, error) {
+func COTPTpduSizeParse(io *spi.ReadBuffer) (COTPTpduSize, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
index 7623762..85c8d88 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
@@ -54,7 +54,7 @@ func (m DataTransportErrorCode) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DataTransportErrorCodeParse(io spi.ReadBuffer) (DataTransportErrorCode, error) {
+func DataTransportErrorCodeParse(io *spi.ReadBuffer) (DataTransportErrorCode, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
index 767e3f3..bdc8ece 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
@@ -93,7 +93,7 @@ func (m DataTransportSize) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DataTransportSizeParse(io spi.ReadBuffer) (DataTransportSize, error) {
+func DataTransportSizeParse(io *spi.ReadBuffer) (DataTransportSize, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
index 1d7f6ce..6eaa4b4 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
@@ -51,7 +51,7 @@ func (m DeviceGroup) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func DeviceGroupParse(io spi.ReadBuffer) (DeviceGroup, error) {
+func DeviceGroupParse(io *spi.ReadBuffer) (DeviceGroup, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
index 18f9548..6acdd14 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
@@ -103,7 +103,7 @@ func (m MemoryArea) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func MemoryAreaParse(io spi.ReadBuffer) (MemoryArea, error) {
+func MemoryAreaParse(io *spi.ReadBuffer) (MemoryArea, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go
index 78c019e..c372dc5 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go
@@ -77,7 +77,7 @@ func (m S7Address) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7AddressParse(io spi.ReadBuffer) (spi.Message, error) {
+func S7AddressParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (addressType) (Used as input to a switch field)
 	addressType, _addressTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
index 5459635..bf1b328 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7AddressAny.go
@@ -105,7 +105,7 @@ func (m S7AddressAny) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7AddressAnyParse(io spi.ReadBuffer) (S7AddressInitializer, error) {
+func S7AddressAnyParse(io *spi.ReadBuffer) (S7AddressInitializer, error) {
 
 	// Enum field (transportSize)
 	transportSize, _transportSizeErr := TransportSizeParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
index 620ac5b..a86613a 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
@@ -111,7 +111,7 @@ func (m S7Message) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7MessageParse(io spi.ReadBuffer) (spi.Message, error) {
+func S7MessageParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Const Field (protocolId)
 	protocolId, _protocolIdErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go
index b7be815..6c1c1b1 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageRequest.go
@@ -79,7 +79,7 @@ func (m S7MessageRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7MessageRequestParse(io spi.ReadBuffer) (S7MessageInitializer, error) {
+func S7MessageRequestParse(io *spi.ReadBuffer) (S7MessageInitializer, error) {
 
 	// Create the instance
 	return NewS7MessageRequest(), nil
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go
index 6ccc2a1..ed744b9 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponse.go
@@ -88,7 +88,7 @@ func (m S7MessageResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7MessageResponseParse(io spi.ReadBuffer) (S7MessageInitializer, error) {
+func S7MessageResponseParse(io *spi.ReadBuffer) (S7MessageInitializer, error) {
 
 	// Simple Field (errorClass)
 	errorClass, _errorClassErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go
index 39fc61b..8482087 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageResponseData.go
@@ -88,7 +88,7 @@ func (m S7MessageResponseData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7MessageResponseDataParse(io spi.ReadBuffer) (S7MessageInitializer, error) {
+func S7MessageResponseDataParse(io *spi.ReadBuffer) (S7MessageInitializer, error) {
 
 	// Simple Field (errorClass)
 	errorClass, _errorClassErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go
index ddd996c..bd65aad 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7MessageUserData.go
@@ -79,7 +79,7 @@ func (m S7MessageUserData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7MessageUserDataParse(io spi.ReadBuffer) (S7MessageInitializer, error) {
+func S7MessageUserDataParse(io *spi.ReadBuffer) (S7MessageInitializer, error) {
 
 	// Create the instance
 	return NewS7MessageUserData(), nil
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go
index e3230da..aee0682 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go
@@ -82,7 +82,7 @@ func (m S7Parameter) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterParse(io spi.ReadBuffer, messageType uint8) (spi.Message, error) {
+func S7ParameterParse(io *spi.ReadBuffer, messageType uint8) (spi.Message, error) {
 
 	// Discriminator Field (parameterType) (Used as input to a switch field)
 	parameterType, _parameterTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
index 93094e8..3e9270f 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarRequest.go
@@ -93,7 +93,7 @@ func (m S7ParameterReadVarRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterReadVarRequestParse(io spi.ReadBuffer) (S7ParameterInitializer, error) {
+func S7ParameterReadVarRequestParse(io *spi.ReadBuffer) (S7ParameterInitializer, error) {
 
 	// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	numItems, _numItemsErr := io.ReadUint8(8)
@@ -102,23 +102,20 @@ func S7ParameterReadVarRequestParse(io spi.ReadBuffer) (S7ParameterInitializer,
 	}
 
 	// Array field (items)
-	var items []IS7VarRequestParameterItem
 	// Count array
-	{
-		items := make([]IS7VarRequestParameterItem, numItems)
-		for curItem := uint16(0); curItem < uint16(numItems); curItem++ {
+	items := make([]IS7VarRequestParameterItem, numItems)
+	for curItem := uint16(0); curItem < uint16(numItems); curItem++ {
 
-			_message, _err := S7VarRequestParameterItemParse(io)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item IS7VarRequestParameterItem
-			_item, _ok := _message.(IS7VarRequestParameterItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarRequestParameterItem")
-			}
-			items = append(items, _item)
+		_message, _err := S7VarRequestParameterItemParse(io)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item IS7VarRequestParameterItem
+		_item, _ok := _message.(IS7VarRequestParameterItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarRequestParameterItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
index ad80ac1..b6c8e99 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterReadVarResponse.go
@@ -85,7 +85,7 @@ func (m S7ParameterReadVarResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterReadVarResponseParse(io spi.ReadBuffer) (S7ParameterInitializer, error) {
+func S7ParameterReadVarResponseParse(io *spi.ReadBuffer) (S7ParameterInitializer, error) {
 
 	// Simple Field (numItems)
 	numItems, _numItemsErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
index 9e617f6..831cd57 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterSetupCommunication.go
@@ -97,7 +97,7 @@ func (m S7ParameterSetupCommunication) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterSetupCommunicationParse(io spi.ReadBuffer) (S7ParameterInitializer, error) {
+func S7ParameterSetupCommunicationParse(io *spi.ReadBuffer) (S7ParameterInitializer, error) {
 
 	// Reserved Field (Compartmentalized so the "reserved" variable can't leak)
 	{
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
index 6988f69..0b99933 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserData.go
@@ -93,7 +93,7 @@ func (m S7ParameterUserData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterUserDataParse(io spi.ReadBuffer) (S7ParameterInitializer, error) {
+func S7ParameterUserDataParse(io *spi.ReadBuffer) (S7ParameterInitializer, error) {
 
 	// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	numItems, _numItemsErr := io.ReadUint8(8)
@@ -102,23 +102,20 @@ func S7ParameterUserDataParse(io spi.ReadBuffer) (S7ParameterInitializer, error)
 	}
 
 	// Array field (items)
-	var items []IS7ParameterUserDataItem
 	// Count array
-	{
-		items := make([]IS7ParameterUserDataItem, numItems)
-		for curItem := uint16(0); curItem < uint16(numItems); curItem++ {
+	items := make([]IS7ParameterUserDataItem, numItems)
+	for curItem := uint16(0); curItem < uint16(numItems); curItem++ {
 
-			_message, _err := S7ParameterUserDataItemParse(io)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item IS7ParameterUserDataItem
-			_item, _ok := _message.(IS7ParameterUserDataItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7ParameterUserDataItem")
-			}
-			items = append(items, _item)
+		_message, _err := S7ParameterUserDataItemParse(io)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item IS7ParameterUserDataItem
+		_item, _ok := _message.(IS7ParameterUserDataItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7ParameterUserDataItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go
index 7ba026f..493c94d 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go
@@ -77,7 +77,7 @@ func (m S7ParameterUserDataItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterUserDataItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func S7ParameterUserDataItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (itemType) (Used as input to a switch field)
 	itemType, _itemTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
index e39b5b9..bf396c4 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
@@ -118,7 +118,7 @@ func (m S7ParameterUserDataItemCPUFunctions) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterUserDataItemCPUFunctionsParse(io spi.ReadBuffer) (S7ParameterUserDataItemInitializer, error) {
+func S7ParameterUserDataItemCPUFunctionsParse(io *spi.ReadBuffer) (S7ParameterUserDataItemInitializer, error) {
 
 	// Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _itemLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
index f27671e..77f8d16 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarRequest.go
@@ -93,7 +93,7 @@ func (m S7ParameterWriteVarRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterWriteVarRequestParse(io spi.ReadBuffer) (S7ParameterInitializer, error) {
+func S7ParameterWriteVarRequestParse(io *spi.ReadBuffer) (S7ParameterInitializer, error) {
 
 	// Implicit Field (numItems) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	numItems, _numItemsErr := io.ReadUint8(8)
@@ -102,23 +102,20 @@ func S7ParameterWriteVarRequestParse(io spi.ReadBuffer) (S7ParameterInitializer,
 	}
 
 	// Array field (items)
-	var items []IS7VarRequestParameterItem
 	// Count array
-	{
-		items := make([]IS7VarRequestParameterItem, numItems)
-		for curItem := uint16(0); curItem < uint16(numItems); curItem++ {
+	items := make([]IS7VarRequestParameterItem, numItems)
+	for curItem := uint16(0); curItem < uint16(numItems); curItem++ {
 
-			_message, _err := S7VarRequestParameterItemParse(io)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item IS7VarRequestParameterItem
-			_item, _ok := _message.(IS7VarRequestParameterItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarRequestParameterItem")
-			}
-			items = append(items, _item)
+		_message, _err := S7VarRequestParameterItemParse(io)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item IS7VarRequestParameterItem
+		_item, _ok := _message.(IS7VarRequestParameterItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarRequestParameterItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
index 6804aa0..94aff1d 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterWriteVarResponse.go
@@ -85,7 +85,7 @@ func (m S7ParameterWriteVarResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7ParameterWriteVarResponseParse(io spi.ReadBuffer) (S7ParameterInitializer, error) {
+func S7ParameterWriteVarResponseParse(io *spi.ReadBuffer) (S7ParameterInitializer, error) {
 
 	// Simple Field (numItems)
 	numItems, _numItemsErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go
index a4f07d3..26dbffa 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go
@@ -79,7 +79,7 @@ func (m S7Payload) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadParse(io spi.ReadBuffer, messageType uint8, parameter IS7Parameter) (spi.Message, error) {
+func S7PayloadParse(io *spi.ReadBuffer, messageType uint8, parameter IS7Parameter) (spi.Message, error) {
 
 	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
 	var initializer S7PayloadInitializer
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
index e21285d..9d38382 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadReadVarResponse.go
@@ -90,26 +90,23 @@ func (m S7PayloadReadVarResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadReadVarResponseParse(io spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
+func S7PayloadReadVarResponseParse(io *spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
 
 	// Array field (items)
-	var items []IS7VarPayloadDataItem
 	// Count array
-	{
-		items := make([]IS7VarPayloadDataItem, CastS7ParameterReadVarResponse(parameter).numItems)
-		for curItem := uint16(0); curItem < uint16(CastS7ParameterReadVarResponse(parameter).numItems); curItem++ {
-			lastItem := curItem == uint16(CastS7ParameterReadVarResponse(parameter).numItems-1)
-			_message, _err := S7VarPayloadDataItemParse(io, lastItem)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item IS7VarPayloadDataItem
-			_item, _ok := _message.(IS7VarPayloadDataItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarPayloadDataItem")
-			}
-			items = append(items, _item)
+	items := make([]IS7VarPayloadDataItem, CastS7ParameterReadVarResponse(parameter).numItems)
+	for curItem := uint16(0); curItem < uint16(CastS7ParameterReadVarResponse(parameter).numItems); curItem++ {
+		lastItem := curItem == uint16(CastS7ParameterReadVarResponse(parameter).numItems-1)
+		_message, _err := S7VarPayloadDataItemParse(io, lastItem)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item IS7VarPayloadDataItem
+		_item, _ok := _message.(IS7VarPayloadDataItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarPayloadDataItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
index c75d906..38fd8d3 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserData.go
@@ -90,26 +90,23 @@ func (m S7PayloadUserData) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadUserDataParse(io spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
+func S7PayloadUserDataParse(io *spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
 
 	// Array field (items)
-	var items []IS7PayloadUserDataItem
 	// Count array
-	{
-		items := make([]IS7PayloadUserDataItem, uint16(len(CastS7ParameterUserData(parameter).items)))
-		for curItem := uint16(0); curItem < uint16(uint16(len(CastS7ParameterUserData(parameter).items))); curItem++ {
+	items := make([]IS7PayloadUserDataItem, uint16(len(CastS7ParameterUserData(parameter).items)))
+	for curItem := uint16(0); curItem < uint16(uint16(len(CastS7ParameterUserData(parameter).items))); curItem++ {
 
-			_message, _err := S7PayloadUserDataItemParse(io, CastS7ParameterUserDataItemCPUFunctions(CastS7ParameterUserData(parameter).items).cpuFunctionType)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item IS7PayloadUserDataItem
-			_item, _ok := _message.(IS7PayloadUserDataItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7PayloadUserDataItem")
-			}
-			items = append(items, _item)
+		_message, _err := S7PayloadUserDataItemParse(io, CastS7ParameterUserDataItemCPUFunctions(CastS7ParameterUserData(parameter).items).cpuFunctionType)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item IS7PayloadUserDataItem
+		_item, _ok := _message.(IS7PayloadUserDataItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7PayloadUserDataItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
index 5d4f994..0adbca5 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
@@ -94,7 +94,7 @@ func (m S7PayloadUserDataItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadUserDataItemParse(io spi.ReadBuffer, cpuFunctionType uint8) (spi.Message, error) {
+func S7PayloadUserDataItemParse(io *spi.ReadBuffer, cpuFunctionType uint8) (spi.Message, error) {
 
 	// Enum field (returnCode)
 	returnCode, _returnCodeErr := DataTransportErrorCodeParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go
index 7d71faa..2b13c7e 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlRequest.go
@@ -80,7 +80,7 @@ func (m S7PayloadUserDataItemCpuFunctionReadSzlRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadUserDataItemCpuFunctionReadSzlRequestParse(io spi.ReadBuffer) (S7PayloadUserDataItemInitializer, error) {
+func S7PayloadUserDataItemCpuFunctionReadSzlRequestParse(io *spi.ReadBuffer) (S7PayloadUserDataItemInitializer, error) {
 
 	// Create the instance
 	return NewS7PayloadUserDataItemCpuFunctionReadSzlRequest(), nil
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
index 530893e..d467c11 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItemCpuFunctionReadSzlResponse.go
@@ -100,7 +100,7 @@ func (m S7PayloadUserDataItemCpuFunctionReadSzlResponse) LengthInBytes() uint16
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadUserDataItemCpuFunctionReadSzlResponseParse(io spi.ReadBuffer) (S7PayloadUserDataItemInitializer, error) {
+func S7PayloadUserDataItemCpuFunctionReadSzlResponseParse(io *spi.ReadBuffer) (S7PayloadUserDataItemInitializer, error) {
 
 	// Const Field (szlItemLength)
 	szlItemLength, _szlItemLengthErr := io.ReadUint16(16)
@@ -118,23 +118,20 @@ func S7PayloadUserDataItemCpuFunctionReadSzlResponseParse(io spi.ReadBuffer) (S7
 	}
 
 	// Array field (items)
-	var items []ISzlDataTreeItem
 	// Count array
-	{
-		items := make([]ISzlDataTreeItem, szlItemCount)
-		for curItem := uint16(0); curItem < uint16(szlItemCount); curItem++ {
+	items := make([]ISzlDataTreeItem, szlItemCount)
+	for curItem := uint16(0); curItem < uint16(szlItemCount); curItem++ {
 
-			_message, _err := SzlDataTreeItemParse(io)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item ISzlDataTreeItem
-			_item, _ok := _message.(ISzlDataTreeItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to SzlDataTreeItem")
-			}
-			items = append(items, _item)
+		_message, _err := SzlDataTreeItemParse(io)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item ISzlDataTreeItem
+		_item, _ok := _message.(ISzlDataTreeItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to SzlDataTreeItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
index a3961ff..eacf257 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarRequest.go
@@ -90,26 +90,23 @@ func (m S7PayloadWriteVarRequest) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadWriteVarRequestParse(io spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
+func S7PayloadWriteVarRequestParse(io *spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
 
 	// Array field (items)
-	var items []IS7VarPayloadDataItem
 	// Count array
-	{
-		items := make([]IS7VarPayloadDataItem, uint16(len(CastS7ParameterWriteVarRequest(parameter).items)))
-		for curItem := uint16(0); curItem < uint16(uint16(len(CastS7ParameterWriteVarRequest(parameter).items))); curItem++ {
-			lastItem := curItem == uint16((len(CastS7ParameterWriteVarRequest(parameter).items))-1)
-			_message, _err := S7VarPayloadDataItemParse(io, lastItem)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item IS7VarPayloadDataItem
-			_item, _ok := _message.(IS7VarPayloadDataItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarPayloadDataItem")
-			}
-			items = append(items, _item)
+	items := make([]IS7VarPayloadDataItem, uint16(len(CastS7ParameterWriteVarRequest(parameter).items)))
+	for curItem := uint16(0); curItem < uint16(uint16(len(CastS7ParameterWriteVarRequest(parameter).items))); curItem++ {
+		lastItem := curItem == uint16((len(CastS7ParameterWriteVarRequest(parameter).items))-1)
+		_message, _err := S7VarPayloadDataItemParse(io, lastItem)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item IS7VarPayloadDataItem
+		_item, _ok := _message.(IS7VarPayloadDataItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarPayloadDataItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
index 0c2f715..f603eee 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadWriteVarResponse.go
@@ -90,26 +90,23 @@ func (m S7PayloadWriteVarResponse) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7PayloadWriteVarResponseParse(io spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
+func S7PayloadWriteVarResponseParse(io *spi.ReadBuffer, parameter IS7Parameter) (S7PayloadInitializer, error) {
 
 	// Array field (items)
-	var items []IS7VarPayloadStatusItem
 	// Count array
-	{
-		items := make([]IS7VarPayloadStatusItem, CastS7ParameterWriteVarResponse(parameter).numItems)
-		for curItem := uint16(0); curItem < uint16(CastS7ParameterWriteVarResponse(parameter).numItems); curItem++ {
+	items := make([]IS7VarPayloadStatusItem, CastS7ParameterWriteVarResponse(parameter).numItems)
+	for curItem := uint16(0); curItem < uint16(CastS7ParameterWriteVarResponse(parameter).numItems); curItem++ {
 
-			_message, _err := S7VarPayloadStatusItemParse(io)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'items' field " + _err.Error())
-			}
-			var _item IS7VarPayloadStatusItem
-			_item, _ok := _message.(IS7VarPayloadStatusItem)
-			if !_ok {
-				return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarPayloadStatusItem")
-			}
-			items = append(items, _item)
+		_message, _err := S7VarPayloadStatusItemParse(io)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'items' field " + _err.Error())
+		}
+		var _item IS7VarPayloadStatusItem
+		_item, _ok := _message.(IS7VarPayloadStatusItem)
+		if !_ok {
+			return nil, errors.New("Couldn't cast message of type " + reflect.TypeOf(_item).Name() + " to S7VarPayloadStatusItem")
 		}
+		items[curItem] = _item
 	}
 
 	// Create the instance
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
index 618007c..891a023 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadDataItem.go
@@ -91,7 +91,7 @@ func (m S7VarPayloadDataItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7VarPayloadDataItemParse(io spi.ReadBuffer, lastItem bool) (spi.Message, error) {
+func S7VarPayloadDataItemParse(io *spi.ReadBuffer, lastItem bool) (spi.Message, error) {
 
 	// Enum field (returnCode)
 	returnCode, _returnCodeErr := DataTransportErrorCodeParse(io)
@@ -112,18 +112,15 @@ func S7VarPayloadDataItemParse(io spi.ReadBuffer, lastItem bool) (spi.Message, e
 	}
 
 	// Array field (data)
-	var data []int8
 	// Count array
-	{
-		data := make([]int8, spi.InlineIf(transportSize.SizeInBits(), uint16(math.Ceil(float64(dataLength)/float64(float64(8.0)))), uint16(dataLength)))
-		for curItem := uint16(0); curItem < uint16(spi.InlineIf(transportSize.SizeInBits(), uint16(math.Ceil(float64(dataLength)/float64(float64(8.0)))), uint16(dataLength))); curItem++ {
+	data := make([]int8, spi.InlineIf(transportSize.SizeInBits(), uint16(math.Ceil(float64(dataLength)/float64(float64(8.0)))), uint16(dataLength)))
+	for curItem := uint16(0); curItem < uint16(spi.InlineIf(transportSize.SizeInBits(), uint16(math.Ceil(float64(dataLength)/float64(float64(8.0)))), uint16(dataLength))); curItem++ {
 
-			_dataVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'data' field " + _err.Error())
-			}
-			data = append(data, _dataVal)
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'data' field " + _err.Error())
 		}
+		data[curItem] = _item
 	}
 
 	// Padding Field (padding)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadStatusItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadStatusItem.go
index 6077c1a..31b1657 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadStatusItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarPayloadStatusItem.go
@@ -71,7 +71,7 @@ func (m S7VarPayloadStatusItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7VarPayloadStatusItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func S7VarPayloadStatusItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Enum field (returnCode)
 	returnCode, _returnCodeErr := DataTransportErrorCodeParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go
index ad26fc3..9a037a2 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go
@@ -77,7 +77,7 @@ func (m S7VarRequestParameterItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7VarRequestParameterItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func S7VarRequestParameterItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Discriminator Field (itemType) (Used as input to a switch field)
 	itemType, _itemTypeErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
index 12f6937..acdb78e 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItemAddress.go
@@ -85,7 +85,7 @@ func (m S7VarRequestParameterItemAddress) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func S7VarRequestParameterItemAddressParse(io spi.ReadBuffer) (S7VarRequestParameterItemInitializer, error) {
+func S7VarRequestParameterItemAddressParse(io *spi.ReadBuffer) (S7VarRequestParameterItemInitializer, error) {
 
 	// Implicit Field (itemLength) (Used for parsing, but it's value is not stored as it's implicitly given by the objects content)
 	_, _itemLengthErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go
index e341480..cc97503 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlDataTreeItem.go
@@ -89,7 +89,7 @@ func (m SzlDataTreeItem) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func SzlDataTreeItemParse(io spi.ReadBuffer) (spi.Message, error) {
+func SzlDataTreeItemParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Simple Field (itemIndex)
 	itemIndex, _itemIndexErr := io.ReadUint16(16)
@@ -98,18 +98,15 @@ func SzlDataTreeItemParse(io spi.ReadBuffer) (spi.Message, error) {
 	}
 
 	// Array field (mlfb)
-	var mlfb []int8
 	// Count array
-	{
-		mlfb := make([]int8, uint16(20))
-		for curItem := uint16(0); curItem < uint16(uint16(20)); curItem++ {
-
-			_mlfbVal, _err := io.ReadInt8(8)
-			if _err != nil {
-				return nil, errors.New("Error parsing 'mlfb' field " + _err.Error())
-			}
-			mlfb = append(mlfb, _mlfbVal)
+	mlfb := make([]int8, uint16(20))
+	for curItem := uint16(0); curItem < uint16(uint16(20)); curItem++ {
+
+		_item, _err := io.ReadInt8(8)
+		if _err != nil {
+			return nil, errors.New("Error parsing 'mlfb' field " + _err.Error())
 		}
+		mlfb[curItem] = _item
 	}
 
 	// Simple Field (moduleTypeId)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlId.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlId.go
index 15728cb..2b21ba3 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlId.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlId.go
@@ -79,7 +79,7 @@ func (m SzlId) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func SzlIdParse(io spi.ReadBuffer) (spi.Message, error) {
+func SzlIdParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Enum field (typeClass)
 	typeClass, _typeClassErr := SzlModuleTypeClassParse(io)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
index ca28811..2413115 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
@@ -52,7 +52,7 @@ func (m SzlModuleTypeClass) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func SzlModuleTypeClassParse(io spi.ReadBuffer) (SzlModuleTypeClass, error) {
+func SzlModuleTypeClassParse(io *spi.ReadBuffer) (SzlModuleTypeClass, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
index f0ec6d7..dd5a96b 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
@@ -67,7 +67,7 @@ func (m SzlSublist) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func SzlSublistParse(io spi.ReadBuffer) (SzlSublist, error) {
+func SzlSublistParse(io *spi.ReadBuffer) (SzlSublist, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go
index 0522668..ef58ec6 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TPKTPacket.go
@@ -86,7 +86,7 @@ func (m TPKTPacket) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func TPKTPacketParse(io spi.ReadBuffer) (spi.Message, error) {
+func TPKTPacketParse(io *spi.ReadBuffer) (spi.Message, error) {
 
 	// Const Field (protocolId)
 	protocolId, _protocolIdErr := io.ReadUint8(8)
diff --git a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
index c628035..318bec8 100644
--- a/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
+++ b/sandbox/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
@@ -813,7 +813,7 @@ func (m TransportSize) LengthInBytes() uint16 {
 	return m.LengthInBits() / 8
 }
 
-func TransportSizeParse(io spi.ReadBuffer) (TransportSize, error) {
+func TransportSizeParse(io *spi.ReadBuffer) (TransportSize, error) {
 	// TODO: Implement ...
 	return 0, nil
 }
diff --git a/sandbox/plc4go/internal/plc4go/spi/ReadBuffer.go b/sandbox/plc4go/internal/plc4go/spi/ReadBuffer.go
index ee97064..fd6c33d 100644
--- a/sandbox/plc4go/internal/plc4go/spi/ReadBuffer.go
+++ b/sandbox/plc4go/internal/plc4go/spi/ReadBuffer.go
@@ -24,27 +24,31 @@ import (
 )
 
 type ReadBuffer struct {
+	buffer *bytes.Buffer
 	reader *bitio.Reader
+	pos    uint64
 }
 
 func ReadBufferNew(data []uint8) *ReadBuffer {
-	b := bytes.NewBuffer(data)
-	reader := bitio.NewReader(b)
+	buffer := bytes.NewBuffer(data)
+	reader := bitio.NewReader(buffer)
 	return &ReadBuffer{
+		buffer: buffer,
 		reader: reader,
+		pos:    uint64(0),
 	}
 }
 
 func (rb ReadBuffer) GetPos() uint16 {
-	return 0
+	return uint16(rb.pos / 8)
 }
 
 func (rb ReadBuffer) GetBytes() []uint8 {
-	return nil
+	return rb.buffer.Bytes()
 }
 
 func (rb ReadBuffer) GetTotalBytes() uint64 {
-	return 0
+	return uint64(rb.buffer.Len())
 }
 
 func (rb ReadBuffer) HasMore(bitLength uint8) bool {
@@ -55,11 +59,13 @@ func (rb ReadBuffer) PeekByte(offset uint8) uint8 {
 	return 0
 }
 
-func (rb ReadBuffer) ReadBit() (bool, error) {
+func (rb *ReadBuffer) ReadBit() (bool, error) {
+	rb.pos += 1
 	return rb.reader.ReadBool()
 }
 
-func (rb ReadBuffer) ReadUint8(bitLength uint8) (uint8, error) {
+func (rb *ReadBuffer) ReadUint8(bitLength uint8) (uint8, error) {
+	rb.pos += uint64(bitLength)
 	res := uint8(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -67,7 +73,8 @@ func (rb ReadBuffer) ReadUint8(bitLength uint8) (uint8, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadUint16(bitLength uint8) (uint16, error) {
+func (rb *ReadBuffer) ReadUint16(bitLength uint8) (uint16, error) {
+	rb.pos += uint64(bitLength)
 	res := uint16(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -75,7 +82,8 @@ func (rb ReadBuffer) ReadUint16(bitLength uint8) (uint16, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadUint32(bitLength uint8) (uint32, error) {
+func (rb *ReadBuffer) ReadUint32(bitLength uint8) (uint32, error) {
+	rb.pos += uint64(bitLength)
 	res := uint32(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -83,7 +91,8 @@ func (rb ReadBuffer) ReadUint32(bitLength uint8) (uint32, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadUint64(bitLength uint8) (uint64, error) {
+func (rb *ReadBuffer) ReadUint64(bitLength uint8) (uint64, error) {
+	rb.pos += uint64(bitLength)
 	res := uint64(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -91,7 +100,8 @@ func (rb ReadBuffer) ReadUint64(bitLength uint8) (uint64, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadInt8(bitLength uint8) (int8, error) {
+func (rb *ReadBuffer) ReadInt8(bitLength uint8) (int8, error) {
+	rb.pos += uint64(bitLength)
 	res := int8(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -99,7 +109,8 @@ func (rb ReadBuffer) ReadInt8(bitLength uint8) (int8, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadInt16(bitLength uint8) (int16, error) {
+func (rb *ReadBuffer) ReadInt16(bitLength uint8) (int16, error) {
+	rb.pos += uint64(bitLength)
 	res := int16(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -107,7 +118,8 @@ func (rb ReadBuffer) ReadInt16(bitLength uint8) (int16, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadInt32(bitLength uint8) (int32, error) {
+func (rb *ReadBuffer) ReadInt32(bitLength uint8) (int32, error) {
+	rb.pos += uint64(bitLength)
 	res := int32(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -115,7 +127,8 @@ func (rb ReadBuffer) ReadInt32(bitLength uint8) (int32, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadInt64(bitLength uint8) (int64, error) {
+func (rb *ReadBuffer) ReadInt64(bitLength uint8) (int64, error) {
+	rb.pos += uint64(bitLength)
 	res := int64(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -123,7 +136,8 @@ func (rb ReadBuffer) ReadInt64(bitLength uint8) (int64, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadFloat32(bitLength uint8) (float32, error) {
+func (rb *ReadBuffer) ReadFloat32(bitLength uint8) (float32, error) {
+	rb.pos += uint64(bitLength)
 	res := float32(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -131,7 +145,8 @@ func (rb ReadBuffer) ReadFloat32(bitLength uint8) (float32, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadFloat64(bitLength uint8) (float64, error) {
+func (rb *ReadBuffer) ReadFloat64(bitLength uint8) (float64, error) {
+	rb.pos += uint64(bitLength)
 	res := float64(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return 0, rb.reader.TryError
@@ -139,7 +154,8 @@ func (rb ReadBuffer) ReadFloat64(bitLength uint8) (float64, error) {
 	return res, nil
 }
 
-func (rb ReadBuffer) ReadString(bitLength uint8) (string, error) {
+func (rb *ReadBuffer) ReadString(bitLength uint8) (string, error) {
+	rb.pos += uint64(bitLength)
 	res := string(rb.reader.TryReadBits(bitLength))
 	if rb.reader.TryError != nil {
 		return "", rb.reader.TryError