first stab at snapshotting functionality