call update() in view when it needs refreshing