use doTimeout everywhere; scrolling refinements