update algo final