FIXME need descriptions of the algorithms.