docs: function triggerHandler(event, phase) {
  
  			var ret,
  				touches = event.touches;
  			
  			//Swipes and pinches are not mutually exclusive - can happend at same time, so need to trigger 2 events potentially
  			if( (didSwipe() || hasSwipes()) || (didPinch() || hasPinches()) ) {
  				// SWIPE GESTURES
  				if(didSwipe() || hasSwipes()) { //hasSwipes as status needs to fire even if swipe is invalid
  					//Trigger the swipe events...
  					ret = triggerHandlerForGesture(event, phase, SWIPE);
  				}	
  
  				// PINCH GESTURES (if the above didn't cancel)
  				if((didPinch() || hasPinches()) && ret!==false) {
  					//Trigger the pinch events...
  					ret = triggerHandlerForGesture(event, phase, PINCH);
  				}
  			} else {
  			 
  				// CLICK / TAP (if the above didn't cancel)
  				if(didDoubleTap() && ret!==false) {
  					//Trigger the tap events...
  					ret = triggerHandlerForGesture(event, phase, DOUBLE_TAP);
  				}
  				
  				// CLICK / TAP (if the above didn't cancel)
  				else if(didLongTap() && ret!==false) {
  					//Trigger the tap events...
  					ret = triggerHandlerForGesture(event, phase, LONG_TAP);
  				}
  
  				// CLICK / TAP (if the above didn't cancel)
  				else if(didTap() && ret!==false) {
  					//Trigger the tap event..
  					ret = triggerHandlerForGesture(event, phase, TAP);
  				}
  			}
  			
  			
  			
  			// If we are cancelling the gesture, then manually trigger the reset handler
  			if (phase === PHASE_CANCEL) {
  				touchCancel(event);
  			}
  			
  			// If we are ending the gesture, then manually trigger the reset handler IF all fingers are off
  			if(phase === PHASE_END) {
  				//If we support touch, then check that all fingers are off before we cancel
  				if (touches) {
  					if(!touches.length) {
  						touchCancel(event);	
  					}
  				} 
  				else {
  					touchCancel(event);
  				}
  			}
  					
  			return ret;
  		}