Refactor protobuf codec for better clarity