adding snapshot/preset functionality