factorize path follower code in reusable parent class + smooth angle rotation