   func transform<T, U>(name: String, transformer: ((value: U?) -> T?)) -> T? {
     guard let value = self[name as! Key] else { return nil }
     return transformer(value: value as? U)
-  }
-
-  /**
-   - Parameter name: The name of the property that you want to map
-   - Returns: A mappable object, otherwise it returns nil
-   */
-  func relation<T : Mappable>(name: String) -> T? {
-    guard let value = self[name as! Key],
-      dictionary = value as? JSONDictionary
-      else { return nil }
-
-    return T(dictionary)
-  }
-
-  /**
-   - 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]? {
-    guard let key = name as? Key, value = self[key],
-      array = value as? JSONArray
-      else { return nil }
-
-    return array.map { T($0) }
-  }
-
-  /**
-   - Parameter name: The name of the property that you want to map
-   - Returns: A mappable object array, otherwise it returns nil
-   */
-  func relations<T : SafeMappable>(name: String) -> [T]? {
-    guard let key = name as? Key, value = self[key],
-      array = value as? JSONArray
-      else { return nil }
-
-    var result = [T]()
-
-    for item in array {
-      do {
-        result.append(try T(item) )
-      } catch {
-        continue
-      }
-    }
-
-    return result
   }
 
   /**

    return value
  }
}

import Sugar

// MARK: - Basic

public extension Dictionary {

