Rewrite and tidy up scrolling momentum