data update ()