code for snapshot management

code for snapshot management. work in progress
Hmm, I think I have False by default in my parts of code ... (because cancelling is just optional what we will use in minority of cases)