External parameterize some fields.
Changed Packet to use Google Protobuf for better packet definition and management.