update optimization