added Packet interface and implementation

Issue #3