 }
 
 extension JSONValue: Printable {
-    var description: String {
+    public var description: String {
         switch self {
         case .JInvalid(let error):
             return error.localizedDescription
         default:
-            return _printableString("")
-        }
-    }
-    
-    var rawJSONString: String {
+            return printableString("")
+        }
+    }
+    
+    public var rawJSONString: String {
         switch self {
         case .JNumber(let value):
             return "\(value)"

            return nil
        }
    }
    
    var first: JSONValue? {
        switch self {
        case .JArray(let jsonArray) where jsonArray.count > 0:
            return jsonArray[0]

            return nil
        }
    }
    public var number: NSNumber? {
        switch self {
        case .JNumber(let value):
            return value
        default:
            return nil
        }
    }
    
    public var double: Double? {
        switch self {
        case .JNumber(let value):
            return value.doubleValue
