basic support for snapshotting