add snapshot.go