edited update()