update algorithm 1 and 2