This is an algorithm.