Refactored snap method