added Snapshot type and snapshotList function