Add snap function