nearly stable version. need to limit the speed of scrolling