add first draft of protobuf codec