implement zoom and scroll