refactor packages; add endless scroll listener