     
     public var rotationVelocity: CGFloat {
         guard active else { return 0.0 }
+        guard lastUpdateDuration > 0.0 else { return 0.0 }
         let delta = cumulativeAngle - previousCumulativeAngle
         return delta / CGFloat(lastUpdateDuration)
     }

    }
    
    public var scaleVelocity: CGFloat {
        guard active else { return 1.0 }
        let current = currentState.distanceBetween / initialState.distanceBetween
        let previous = previousState.distanceBetween / initialState.distanceBetween
        return ((current - previous) / CGFloat(lastUpdateDuration))

    
    public func translationVelocityInView(view: UIView?) -> CGPoint {
        guard active else { return CGPoint.zero }
        guard lastUpdateDuration > 0.0 else { return CGPoint.zero }
        let current = currentState.convertedToView(view)
        let previous = previousState.convertedToView(view)
        var vel = current.center - previous.center
