optimise scrolling and dragging