308 add zoom and move to graphs

Shall fix #308 and #256 by providing zoom and move capabilities for the graph view.
Also includes some refactorings and general optimizations.
Lint/UselessAssignment: Useless assignment to variable - `data`.