             var swiftOutput: String = ""
             for key in object.children.keys {
                 if let value = object.children[key] as? JSONObjectNode {
-                    swiftOutput += swiftifyObject(value)
+                    swiftOutput += "\n\(swiftifyObject(value))"
+                } else if var value = object.children[key] as? JSONArrayNode {
+                    while let first = value.elements.first as? JSONArrayNode {
+                        value = first
+                    }
+                    if let first = value.elements.first as? JSONObjectNode {
+                        swiftOutput += "\n\(swiftifyObject(first))"
+                    }
                 }
             }
             return swiftOutput
         }
         
         var swiftOutput = ""
-        swiftOutput += "class \(object.name) {\n"
+        swiftOutput += self.indentString + "class \(object.name) {\n"
+        self.indentLevel += 1
         swiftOutput += swiftifyVariableDeclarations()
         swiftOutput += swiftifyInit()
         swiftOutput += swiftifyClassDeclarations()
-        swiftOutput += "}\n"
+        self.indentLevel -= 1
+        swiftOutput += self.indentString + "}\n"
         return swiftOutput
     }
 }

            var swiftOutput = ""
            for key in object.children.keys {
                if let value: JSONValueNode = object.children[key] {
                    if let array = value as? JSONArrayNode {
                        swiftOutput += "var \(key.camelCased): [\(array.elementType)]\n"
                    } else {
                        swiftOutput += "var \(key.camelCased): \(value.type)\n"
                    }
                }
            }

    }
    
    var swiftifiedJSON: String = ""
    var indentLevel = 0
    var indentString: String {
        return String(repeating: " ", count: self.indentLevel * 4)
    }
    
    func swiftifyJSON(_ value: JSONValueNode, with name: String?) throws {
        var swiftOutput = ""
