anchor.diff:  
   begin
   //  Result := ''; // for now no repsonse so no projection needed
  -  Result:='{"id":"'+ self.ID+'-KPI01"}';
  -  Result:=Result + ', {"id":"' + self.ID+'-KPI02"}';
  -  Result:=Result + ', {"id":"' + self.ID+'-KPI03"}';
  -  Result:=Result + ', {"id":"' + self.ID+'-KPI04"}';
  -  Result:=Result + ', {"id":"' + self.ID+'-KPI05"}';
  -  Result:=Result + ', {"id":"' + self.ID+'-KPI06"}';
  -  Result:=Result + ', {"id":"' + self.ID+'-KPI07"}';
  +  Result:='{"id":"'+ string(self.ID)+'-KPI01"}';
  +  Result:=Result + ', {"id":"' + string(self.ID)+'-KPI02"}';
  +  Result:=Result + ', {"id":"' + string(self.ID)+'-KPI03"}';
  +  Result:=Result + ', {"id":"' + string(self.ID)+'-KPI04"}';
  +  Result:=Result + ', {"id":"' + string(self.ID)+'-KPI05"}';
  +  Result:=Result + ', {"id":"' + string(self.ID)+'-KPI06"}';
  +  Result:=Result + ', {"id":"' + string(self.ID)+'-KPI07"}';
   end;
   
   function TSSMStatistic.distance(const aDistanceLatLon: TDistanceLatLon; aX, aY: Double): Double;
  
positive.code:   connected: Boolean;
    totalTrajectory: Boolean;
    updateFrequency: double;
    p: TGIS_Point;
    i: Integer;
  begin
    Result := '';
  
negative.code:   aPayload.Read(connected);
    aPayload.Read(totalTrajectory);
    aPayload.Read(updateFrequency);
    Result:='{"id":"'+ string(self.ID)+'-KPI01"}';
    Result:=Result + ', {"id":"' + string(self.ID)+'-KPI02"}';
    Result:=Result + ', {"id":"' + string(self.ID)+'-KPI03"}';
    Result:=Result + ', {"id":"' + string(self.ID)+'-KPI04"}';
    Result:=Result + ', {"id":"' + string(self.ID)+'-KPI05"}';
    Result:=Result + ', {"id":"' + string(self.ID)+'-KPI06"}';
    Result:=Result + ', {"id":"' + string(self.ID)+'-KPI07"}';
  end;
  
  function TSSMStatistic.change(var aPayload: ByteBuffers.TByteBuffer; aSourceProjection: TGIS_CSProjectedCoordinateSystem; aOffsetInRD: TGIS_Point): string;
  