 
 
 public struct PureJSON {
-    let value:PureJSONValue
+    public let value:PureJSONValue
     
     init() {
         value = PureJSONValue()

        value = JSON.purify(raw: raw)
    }
    
    subscript(key: String) -> JSONRepresentable {
        get {
            if let value = self.value[key] {
                return value

    case object(RawJSON)
    case list([RawJSON])
    
    public static func buildObject<T:JSONObject>(rawJSON:RawJSON) -> T {
        return T(json:PureJSON(raw: rawJSON))
    }
    
    public static func buildList<T:JSONObject>(rawJSON:[RawJSON]) -> [T] {
        return rawJSON.map({ (rawElement) -> T in
            return T(json:PureJSON(raw: rawElement))
        })
    }
    
    static func purify(raw:RawJSON) -> PureJSONValue {
