implemented make_move