     
     private mutating func _parseString(index: Int) throws -> (String?, Int) {
         // skip first '\"' character
-        var cursor = eatWhiteSpace(index).successor()
+        var cursor = index.successor()
         
         tempStringBuffer.removeAll(keepCapacity: true)
         

    }
    
    private mutating func parseArray(index: Int) throws -> (JSON, Int) {
        var cursor = eatWhiteSpace(index)
        
        guard string[cursor] == Parser.leftbracket else {
            // invalid json "[" start array

    }
    
    private mutating func parseNumber(index: Int) throws -> (JSON, Int) {
        let cursor = index
        
        if let (double, distance) = parseDouble(string.baseAddress.advancedBy(cursor)) {
            return (JSON(double), cursor + distance)
