     
     //Search for an object
     internal class func findRecursively(objectKey: String, type: Mapable.Type, json: AnyObject) -> Mapable? {
-        if isContainsOnlyAtomaryValues(json) {
-            return nil
-        }
+        if isContainsOnlyAtomaryValues(json) { return nil }
         if let jsonDictionary = json as? [String: AnyObject] {
             for (key, childNode) in jsonDictionary {
-                if key == objectKey {
-                    if let dictionaryValue = childNode as? [String: AnyObject] {
-                        do {
-                            let object = type.init()
-                            try bind(dictionary: dictionaryValue, to: object)
-                            return object
-                        } catch {
-                            if let foundValue = findRecursively(objectKey: objectKey, type: type, json: childNode) {
-                                return foundValue
-                            }
+                if key == objectKey, let dictionaryValue = childNode as? [String: AnyObject] {
+                    do {
+                        let object = type.init()
+                        try bind(dictionary: dictionaryValue, to: object)
+                        return object
+                    } catch {
+                        if let foundValue = findRecursively(objectKey: objectKey, type: type, json: childNode) {
+                            return foundValue
                         }
                     }
                 }

        if isContainsOnlyAtomaryValues(json) { return nil }
        if let jsonDictionary = json as? [String: AnyObject] {
            for (key, childNode) in jsonDictionary {
                if key == arrayKey {
                    if let arrayValue = childNode as? [AnyObject], isValid(array: arrayValue, for: valuesType) {
                        return arrayValue as AnyObject?
                    }
                } else {
                    if let foundedValue = findRecursively(arrayKey: arrayKey, valuesType: valuesType, json: childNode) {
                        return foundedValue

    }
    //Search for a dictionary
    internal class func findRecursively(dictionaryKey: String, json: AnyObject) -> AnyObject? {
        if isContainsOnlyAtomaryValues(json) { return nil }
        if let jsonDictionary = json as? [String: AnyObject] {
            for (key, childNode) in jsonDictionary {
                if key == dictionaryKey, let dictionaryValue = childNode as? [String: AnyObject] {
                    return dictionaryValue as AnyObject?
                } else {
                    if let foundedValue = findRecursively(dictionaryKey: dictionaryKey, json: childNode) {
                        return foundedValue
