begin implement search for best move