                 let arcSweep = ArcSweep(rawValue: Int(arcSweepRaw))
                 if operand == "a"
                 {
-                    return .arcTo(parameters[0], parameters[1], parameters[2], archChoice!, arcSweep!, parameters[5], parameters[6])
+                    self = .arcTo(parameters[0], parameters[1], parameters[2], archChoice!, arcSweep!, parameters[5], parameters[6])
                 }
                 else
                 {
-                    return .arcToAbsolute(parameters[0], parameters[1], parameters[2], archChoice!, arcSweep!, parameters[5], parameters[6])
+                    self = .arcToAbsolute(parameters[0], parameters[1], parameters[2], archChoice!, arcSweep!, parameters[5], parameters[6])
                 }
             default:
                 throw PathToken.FailureReason.unexpectedCharacter(badCharacter: operand, offset: offset)

        }
    }
    
    public enum ArcSweep : Int
    {
        case clockwise = 0

            
            if self.completed
            {
                return try PathToken(operand: self.operand, parameters: self.completedParameters, atOffset: self.pathString.distance(from: self.pathString.startIndex, to: self.activeParameterStartIndex))
            }
            else
            {
