improve scroll routine