improve scroll handling