 
   /**
    - Parameter name: The name of the property that you want to map
+   - Returns: A mappable object, otherwise it returns nil
+   */
+  func relation<T : SafeMappable>(name: String) -> T? {
+    guard let value = self[name as! Key],
+      dictionary = value as? JSONDictionary
+      else { return nil }
+
+    let result: T?
+
+    do {
+      result = try T(dictionary)
+    } catch {
+      result = nil
+    }
+
+    return result
+  }
+
+  /**
+   - Parameter name: The name of the property that you want to map
    - Returns: A mappable object array, otherwise it returns nil
    */
   func relations<T : Mappable>(name: String) -> [T]? {


    return directory
  }
  
  /**
   - Parameter name: The name of the key
   - Returns: A child dictionary for that key, otherwise it returns nil

    guard let key = name as? Key,
      value = self[key] as? JSONArray
      else { return nil }

    return value
  }
}
