 public struct JSON {
     public var object: AnyObject
 
-    public init?(object: AnyObject) {
-        if NSJSONSerialization.isValidJSONObject(object) {
-            self.object = object
-        }
-        return nil
+    public init(object: AnyObject) {
+        self.object = object
     }
 
     public subscript(index: Int) -> JSON? {

    }

    func data(options: NSJSONWritingOptions = .allZeros) -> NSData? {
        return NSJSONSerialization.dataWithJSONObject(object, options: options, error: nil)
    }
}


    public var dictionary: [String: JSON]? {
        let block: ([String: JSON], (String, AnyObject)) -> [String: JSON] = { dictionary, element in
            var mutableDictionary = dictionary
            mutableDictionary[element.0] = Alexander.JSON(object: element.1)
            return mutableDictionary
        }
        return (object as? [String: AnyObject]).map({ reduce($0, [String: JSON](), block) })
    }

    public var array: [JSON]? {
        let block: ([JSON], AnyObject) -> [JSON] = { array, element in
            let JSON = Alexander.JSON(object: element)
            return array + CollectionOfOne(JSON)
        }
        return (object as? [AnyObject])?.map({ JSON(object: $0) })
    }

    public var int: Int? {
