getStringProperty() returns empty string when specified property is not found
improve error handling
improve the interface of NewPacket()
add PacketWriter