So, was the point of giving `query` a larger scope to ensure that infiniteScroll() doesn't load a slice of results from a different query than the last one doQuery() executed? For example, without giving `query` a larger scope, doQuery() could run, then the user could edit the query field, then, before the 300ms timer has elapsed, they could scroll. If infiniteScroll() were looking directly at the field rather than `query`, it could load results for the newly typed query rather than ones corresponding to the results already displayed. Is that what you were thinking?