improved changing lane logic