         return HAL._loadRequest( Alamofire.request(.DELETE, url) )
     }
     
+    
     public func attributes() -> [String: AnyObject] {
         return _attributes
     }
     
     public func attribute(key: String) -> AnyObject! {
         return _attributes[key]
+    }
+    
+    public func setAttribute(key: String, value: AnyObject?) {
+        _attributes[key] = value
     }
     
     public func links() -> [String: AnyObject] {

    public func put(key: String, params: [String: AnyObject]) -> Promise<HAL> {
        var url = self.link_url(key)
        return HAL._loadRequest( Alamofire.request(.PUT, url, parameters: params) )
    }
    
    public func patch(params: [String: AnyObject]) -> Promise<HAL> {

    var _links: [String: AnyObject] = [String: AnyObject]()
    var _embedded: [String: AnyObject] = [String: AnyObject]()
    
    public init(response: [String: AnyObject]) {
        
        if let links = response["_links"] as? [String: AnyObject] {
            self._links = links
