new compact method applySnap()