fixed direction, added looping, updates highlight position.