attempt for 2opt