implement of widget update