* change algorithm.