preparing to implement more than one algorithm.