make Packet constructor protected to prevent instantiation from outside inheritance chain