added Packet implementation