improve algo

improved algo.