 				iMachine = new StateMachine i.identifier, this
 				iMachine.apply "touchstart", i
 				@machines[i.identifier] = iMachine
-				@fingerCount = event.touches.length
 
 
 	touchend: (event) ->
 		event.preventDefault()
+		@fingerCount = event.touches.length
 		for iMKey in @machines.keys()
 			iMKey = parseInt(iMKey)
 			exists = false			

class EventGrouper
	constructor: ->
		@savedTap = {}
	
	receive: (name, eventObj, fingerCount, element) ->

		if @fingerCount != fingerCount
			@fingerCount = fingerCount
			@analyser = new Analyser @fingerCount, element
		
		##
		if name == "tap"
			if @savedTap[eventObj.identifier]? && ((new Date().getTime()) - @savedTap[eventObj.identifier].time) < 400

			if !exists
				@machines[iMKey].apply("touchend", {})
				delete @machines[iMKey]	

		@grouper.refreshFIngerCount @fingerCount		
			
	 
	touchmove: (event) ->
