Rewrote MapViewer widgets into their own class to better support expansion to the map viewer.