         return className + firstChar + (suffix as NSString).substringFromIndex(1)
     }
     
-}+}

class ModelGenerator {
    
    var modelOutput:IndentableOutput = IndentableOutput()
    var childModels:ModelGenerator[] = []
    
    var output:String {
        get {

    func handleArray(array:Array<JSONValue>, key:String, className:String, inspectArrays:Bool, io:IndentableOutput) -> String {
        
        var instantiation = "v"
        var type = "[AnyObject]"
            
        switch array[0] {
            case .JString(let value):
                type = "[String]"
            
            case .JNumber(let value):
                type = "[NSNumber]"
            
            case .JBool(let value):
                type = "[Bool]"
            
            case .JArray(let arr):
                type = "[JSONValue]"
            case .JObject(let object):
                var cn = buildClassName(className, suffix: key as String)
                childModels += ModelGenerator(json: array[0], className: cn, inspectArrays:inspectArrays)
                type = "[" + cn + "]"
                instantiation = "\(cn)(json:v)"
            default:
                type = "AnyObject"
