 
 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

    return objectValue
  }

  public func property<T>(key: String, dictionary: T? = nil) -> T? {
    // TODO: Improve this to support nested attributes
    let components = key.split(".")

    return result
  }

  /**
   - Returns: A key-value dictionary.
   */
  public func properties() -> [String : Any] {
    var properties = [String : Any]()

