@xiangli-cmu Can you split off the `SnapshotRequest` and `SnapshotResponse` into a `snapshot_request.go` file and then leave the `Snapshot` in the `snapshot.go` file? I'd like to keep the snapshot object separate from the transport structures.