             }
         }
         set {
-            _error = nil
+            error = nil
             switch unwrap(newValue) {
             case let number as NSNumber:
                 if number.isBool {
-                    _type = .bool
+                    type = .bool
                     self.rawBool = number.boolValue
                 } else {
-                    _type = .number
+                    type = .number
                     self.rawNumber = number
                 }
             case let string as String:
-                _type = .string
+                type = .string
                 self.rawString = string
             case _ as NSNull:
-                _type = .null
+                type = .null
             case nil:
-                _type = .null
+                type = .null
             case let array as [Any]:
-                _type = .array
+                type = .array
                 self.rawArray = array
             case let dictionary as [String : Any]:
-                _type = .dictionary
+                type = .dictionary
                 self.rawDictionary = dictionary
             default:
-                _type = .unknown
-                _error = SwiftyJSONError.unsupportedType
-            }
-        }
-    }
-
-    /// JSON type
-    public var type: Type { return _type }
-
-    /// Error in JSON
-    public var error: SwiftyJSONError? { return _error }
+                type = .unknown
+                error = SwiftyJSONError.unsupportedType
+            }
+        }
+    }
 
     /// The static null JSON
     @available(*, unavailable, renamed:"null")

                if let o = self.rawDictionary[key] {
                    r = JSON(o)
                } else {
                    r._error = SwiftyJSONError.notExist
                }
            } else {
                r._error = self._error ?? SwiftyJSONError.wrongType
            }
            return r
        }

        get {
            if self.type != .array {
                var r = JSON.null
                r.error = self.error ?? SwiftyJSONError.wrongType
                return r
            } else if index >= 0 && index < self.rawArray.count {
                return JSON(self.rawArray[index])
            } else {
                var r = JSON.null
                r.error = SwiftyJSONError.indexOutOfBounds
                return r
            }
        }
