                 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 FailureReason : CustomStringConvertible, Error
    {
        case none

        }
    }
    
    /**
        A function that converts a properly formatted string using the [SVG path specification](http://www.w3.org/TR/SVG/paths.html) to an array of PathTokens.
        - returns: An arry of PathToken
     **/
    
    func asPathTokens() throws -> [PathToken]
    {
        var cursorIndex = self.startIndex
