updating algo