added data update listener and put task