         get {
             if let dict = self.value as? NSDictionary {
                 if let value: AnyObject = dict[key] {
-                    return value as JSONDecoder
+                    return value as! JSONDecoder
                 }
             }
             return JSONDecoder(createError("key: \(key) does not exist or this is not a Dictionary type"))

        get {
            if let array = self.value as? NSArray {
                if array.count > index {
                    return array[index] as JSONDecoder
                }
            }
            return JSONDecoder(createError("index: \(index) is greater than array or this is not an Array type."))

        } else if let dict = rawObject as? NSDictionary {
            var collect = Dictionary<String,JSONDecoder>()
            for (key,val: AnyObject) in dict {
                collect[key as! String] = JSONDecoder(val)
            }
            value = collect
        } else {
