     }
     
     private func parseFalse(index: Int) throws -> (JSON, Int) {
-        var cursor = eatWhiteSpace(index)
+        var cursor = index
         
         guard cursor != string.endIndex && string[cursor] == Parser.f else {
             throw ParseError("invalid json: expect 'false' at \(cursor)")

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

    }
    
    private func parseTrue(index: Int) throws -> (JSON, Int) {
        var cursor = index
        
        guard cursor != string.endIndex && string[cursor] == Parser.t else {
            throw ParseError("invalid json: expect 'true' at \(cursor)")
