simplifying DataPacket a little to include the data buffer itself, also let's us not worry about temporary address referencing