there are now two algorithms