Add snapshot function