refactor listeners and add onscrolllistener (doesn't work now)