add snapshotInstance logic