         }
     }
 
-    var double: Double? {
+    public var double: Double? {
         switch self {
         case .JsonNumber(let value): return value.doubleValue
         case .JsonString(let value): return value.bridgeToObjectiveC().doubleValue

        }
    }

    var array: [JsonValue]? {
        switch self {
        case .JsonArray(let value): return value
        default: return nil
        }
    }

    var object: [String : JsonValue]? {
        switch self {
        case .JsonObject(let value): return value
        default: return nil

        }
    }

    public subscript(index: Int) -> JsonValue? {
        switch self {
        case let .JsonArray(a):
            return a[index]
