replaced by algorithm.hpp