     }
     
     public func add(value: JSONArray) {
-        source.append(value.jsonValue)
+        source.append(value.source)
     }
     
     public func add(value: JSONDictionary) {
-        source.append(value.jsonValue)
+        source.append(value.source)
     }
     
     public func build() throws -> Data {
         return try JSONSerialization.data(withJSONObject: source, options: .prettyPrinted)
     }
     
-    public var jsonValue: Any {
-        return source
-    }
+//    public var jsonValue: Any {
+//        return source
+//    }
     
     public typealias Element = JSONWritableType
     public required init(arrayLiteral elements: Element...) {

    }
    
    public func add(key: String, value: JSONArray) {
        source[key] = value.jsonValue
    }
    
    public func add(key: String, value: JSONDictionary) {
        source[key] = value.jsonValue
    }
    
    public func build() throws -> Data {
        return try JSONSerialization.data(withJSONObject: source, options: .prettyPrinted)
    }
    
    public var jsonValue: Any {
        return source
    }
    
    public typealias Key = String
    public typealias Value = JSONWritableType

    }
}

public class JSONDictionary: ExpressibleByDictionaryLiteral {
    
    public init() {
        source = [:]
