implemented move, added move and reduce to algorithm.hpp