use only 2opt mut