refactor scroll triggering to handle more things later