Initial implementation of Snapshot