split scroll fetch function into two functions, fixing a scroll cache bug