             if fracTerm.contains(reader.curr()) {
                 //gracefully end this section
                 let fracString = try digs.string()
-                let frac = Int(fracString)!
-                return frac
+                return fracString
             }
             
             //okay, we encountered an illegal character, error out

        return value
    }
    
    private func generateNumber(negative: Bool, integer: Int, frac: Int, exp: Int?) -> JSON.Number {
        
        //form the int section
        var int = integer

        //      - continue to the frac part right away
        // - if it's 1...9, continue to parsing integer part first
        let integer: Int
        let frac: String
        if reader.curr() == Const.Zero {
            try reader.nextAndCheckNotDone()
            
