             UInt8((data.count) & 0xff),
             UInt8((data.count >> 8) & 0xff),
             UInt8((data.count >> 16) & 0xff),
-        ]
+            ]
         
         memcpy(pointer, packetSizeBytes, 3)
         

    /// The sequence ID is incremented per message
    /// This client doesn't use this
    var sequenceId: UInt8 {
        return buffer[3]
    }
    
    /// The payload contains the packet's data
    var payload: ByteBuffer {
        let buffer = self.buffer
        
        return ByteBuffer(start: buffer.baseAddress?.advanced(by: 4), count: buffer.count &- 4)
    }
    
    /// The payload contains the packet's data
    var buffer: ByteBuffer {
        switch _buffer {
        case .immutable(let buffer):
            // UInt24 + sequenceId
            return buffer
        case .mutable(let buffer):
            // UInt24 + sequenceId
            return ByteBuffer(start: buffer.baseAddress, count: buffer.count)
        }
    }

            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), containsPacketSize: true)
    }
    
    convenience init(data: Data) {
