             _ = memcpy(pointer.advanced(by: 4), buffer.baseAddress!, data.count)
         }
         
-        self.init(payload: ByteBuffer(start: pointer, count: 4 &+ data.count))
+        self.init(payload: ByteBuffer(start: pointer, count: 4 &+ data.count), containsPacketSize: true)
     }
 }

            UInt8((elements.count >> 8) & 0xff),
            UInt8((elements.count >> 16) & 0xff),
        ]

        memcpy(pointer, packetSizeBytes, 3)
        memcpy(pointer.advanced(by: 4), elements, elements.count)
        
        self.init(payload: ByteBuffer(start: pointer, count: 4 &+ elements.count))
    }
    
    convenience init(data: Data) {

    var _buffer: Buffer
    
    /// Creates a new packet
    init(payload: ByteBuffer, containsPacketSize: Bool = false) {
        self._buffer = .immutable(payload)
        self.containsPacketSize = containsPacketSize
    }
    
    /// Creates a new packet
    init(payload: MutableByteBuffer, containsPacketSize: Bool = false) {
        self._buffer = .mutable(payload)
        self.containsPacketSize = containsPacketSize
    }
    
    deinit {
