feat add snapCount parameter