add hooks for snapshot, restore, and clean