refactored scrollspy