refactor computer_move