fixed update()