Bug fixed update() function