improve scrollto implementation