     return properties
   }
 
+  /**
+  - Returns: A string based dictionary.
+  */
   public func types() -> [String : String] {
     var types = [String : String]()
     for tuple in Mirror(reflecting: self).children {

    return result
  }

  public func properties() -> [String : Any] {
    var properties = [String : Any]()



public extension Mappable {

  /**
   - Parameter key: The key name of the property you want to lookup
   - Returns: A generic value on success, otherwise it throws a MappableError.
   */
  public func value<T>(key: String) throws -> T {
    let value = Mirror(reflecting: self)
      .children
