anchor.diff:      Result := nil;
   end;
   
  -function TResource.Patch(Content: TStream): String;
  +function TResource.Put(Content: string; ResultClass: TClass): TObject;
  +var
  +  vStringStream: TStringStream;
  +begin
  +  vStringStream := TStringStream.Create(Content);
  +  try
  +    Result := Put(vStringStream, ResultClass);
  +  finally
  +    vStringStream.Free;
  +  end;
  +end;
  +
  +function TResource.Put(Content: TStream; ResultClass: TClass): TObject;
  +var
  +  vResponse: string;
   begin
     Content.Position := 0;
     FContent.CopyFrom(Content, Content.Size);
   
  -  Result := FRestClient.DoRequest(METHOD_PATCH, Self);
  -end;
  -
  -procedure TResource.Patch(Content: TStream; AHandler: TRestResponseHandler);
  +  vResponse := FRestClient.DoRequest(METHOD_PUT, Self);
  +  if trim(vResponse) <> '' then
  +    Result := TJsonUtil.UnMarshal(ResultClass, vResponse)
  +  else
  +    Result := nil;
  +end;
  +
  +function TResource.Put(Entity: TObject; ResultClass: TClass): TObject;
  +var
  +  vResponse: string;
  +begin
  +  if Entity <> nil then
  +    SetContent(Entity);
  +  vResponse := FRestClient.DoRequest(METHOD_PUT, Self);
  +  if trim(vResponse) <> '' then
  +    Result := TJsonUtil.UnMarshal(ResultClass, vResponse)
  +  else
  +    Result := nil;
  +end;
  +
  +function TResource.Patch(Content: TStream): String;
   begin
     Content.Position := 0;
     FContent.CopyFrom(Content, Content.Size);
   
  +  Result := FRestClient.DoRequest(METHOD_PATCH, Self);
  +end;
  +
  +procedure TResource.Patch(Content: TStream; AHandler: TRestResponseHandler);
  +begin
  +  Content.Position := 0;
  +  FContent.CopyFrom(Content, Content.Size);
  +
     FRestClient.DoRequest(METHOD_PATCH, Self, AHandler);
   end;
   
  
positive.code:   vResponse := FRestClient.DoRequest(METHOD_PATCH, Self);
    if trim(vResponse) <> '' then
      Result := TJsonUtil.UnMarshal(Entity.ClassType, vResponse)
    else
      Result := nil;
  end;
  
negative.code:     function Put(Content: string): string;overload;
      procedure Put(Content: TStream; AHandler: TRestResponseHandler);overload;
      function Put(Entity: TObject): TObject;overload;
      function Put(Content: string; ResultClass: TClass): TObject;overload;
      function Put(Content: TStream; ResultClass: TClass): TObject;overload;
      function Put(Entity: TObject; ResultClass: TClass): TObject;overload;
  
      function Patch(Content: TStream): String;overload;
      function Patch(Content: string): string;overload;
      procedure Patch(Content: TStream; AHandler: TRestResponseHandler);overload;
      function Patch(Entity: TObject): TObject;overload;
      function Patch(Content: string; ResultClass: TClass): TObject;overload;
      function Patch(Content: TStream; ResultClass: TClass): TObject;overload;
      function Patch(Entity: TObject; ResultClass: TClass): TObject;overload;
  
      procedure Delete();overload;
      procedure Delete(Entity: TObject);overload;
  