fixed update logic