Provides an abstraction to sue a generic packet idea, that is you can use the ICPacket portion to make a large packet and just copy the final object to a byte array in the end rather then at each stage. When Packet is accessed and is undefined, it will perform the copy automatically for you from ICPacket to Packet.