Updated algorithm.