work function update & view update