extract zoomextent into module, closes #230