diff --git a/app/lib/consts.dart b/app/lib/consts.dart
index d3163031bfe387a0547ab7cad845396766c232dd..dae3e59a67583cbf594adc33523233cd1840ddf5 100644
--- a/app/lib/consts.dart
+++ b/app/lib/consts.dart
@@ -11,12 +11,12 @@ const String mapEndpoint = "update_map";
 
 // Map variables
 String selectedLake = 'Mjøsa'; // NB should be initialised to last selected lake
-Uint8List selectedRelation = Uint8List(0);
+
+Uint8List selectedRelation = Uint8List(0); // Initialised in init_state.dart
 List<Measurement> selectedMeasurements = [];
 List<SubDiv> selectedSubdivisions = [];
 SubDiv? selectedSubDiv;
 
-LatLng mapCenter = LatLng(60.8000, 10.8471); // NB may not be necessary
 DateTime ?lastUpdate; // Last time data was fetched from server
 List<String> lakeSearchOptions = [];
 bool internetConnection = true;
diff --git a/app/lib/pages/default_page.dart b/app/lib/pages/default_page.dart
index e57dd7be70d3ab974df859e18b51c3feb51dc175..3d9459e388aafe8f8677182262a9eab385f79344 100644
--- a/app/lib/pages/default_page.dart
+++ b/app/lib/pages/default_page.dart
@@ -86,6 +86,7 @@ class _DefaultPageState extends State<DefaultPage> {
             child: ListView(
               children: [
                 MapContainerWidget(
+                  subdivisions: selectedSubdivisions,
                   measurements: selectedMeasurements,
                   relation: selectedRelation,
                   serverConnection: serverConnection,
diff --git a/app/lib/server_requests/init_state.dart b/app/lib/server_requests/init_state.dart
index f9ad01fe85f740a58552044e979f40777d89feda..a30d0fd5c272f9f417b57bc38fbb28e8d65cc4c6 100644
--- a/app/lib/server_requests/init_state.dart
+++ b/app/lib/server_requests/init_state.dart
@@ -26,13 +26,32 @@ Future<void> initialiseState(bool fetchSearchOptions) async {
       List<Measurement> measurements = fetchResult.measurements;
       selectedMeasurements = measurements;
 
+      // Extract all _subdivisions from list of measurements
+      for (Measurement measurement in measurements) {
+        for (SubDiv subdivision in measurement.subDivs) {
+          selectedSubdivisions.add(subdivision);
+        }
+      }
+
+      // Sort the list of SubDiv objects based on each subdivision id
+      selectedSubdivisions.sort((a, b) => a.sub_div_id.compareTo(b.sub_div_id));
+
       print("Loaded from files: Meas.len: ${selectedMeasurements.length}, rel.len: ${selectedRelation.length}");
 
     } else { // Try to fetch measurement data from server
       markerListFuture = fetchMeasurements().then((fetchResult) {
         List<Measurement> measurements = fetchResult.measurements;
+        selectedMeasurements = measurements;
+
+        // Extract all _subdivisions from list of measurements
+        for (Measurement measurement in measurements) {
+          for (SubDiv subdivision in measurement.subDivs) {
+            selectedSubdivisions.add(subdivision);
+          }
+        }
+
         serverConnection = fetchResult.connected;
-        setLastLake();
+        setLastLake(); // Update persistent value for latest fetched lake
 
         // Return measurements
         return measurements;
diff --git a/app/lib/widgets/choropleth_map.dart b/app/lib/widgets/choropleth_map.dart
index fdfd07ca478be3b2016a3dd8a6ac7b2f74560fdb..b4869d90e6e300d140c28b55186f09c9cf09ce80 100644
--- a/app/lib/widgets/choropleth_map.dart
+++ b/app/lib/widgets/choropleth_map.dart
@@ -13,11 +13,13 @@ class ChoroplethMap extends StatefulWidget {
     Key? key,
     required this.relation,
     required this.measurements,
+    required this.subdivisions,
     required this.onSelectionChanged,
   }) : super(key: key);
 
   final Uint8List relation;
   final List<Measurement> measurements;
+  final List<SubDiv> subdivisions;
   final void Function(int selectedIndex) onSelectionChanged;
 
   @override
@@ -28,7 +30,6 @@ class ChoroplethMapState extends State<ChoroplethMap> {
   int selectedIndex = -1;            // Subdivision/map tile index
   late MapShapeSource dataSource;
   late final MapZoomPanBehavior _zoomPanBehavior = MapZoomPanBehavior();
-  final List<SubDiv> _subdivisions = <SubDiv>[];
 
   void updateDataSource() {
     _initDataSource();
@@ -41,24 +42,12 @@ class ChoroplethMapState extends State<ChoroplethMap> {
     }
 
     void _initDataSource() {
-      _subdivisions.clear();
-
-      // Extract all _subdivisions from list of measurements
-      for (Measurement measurement in widget.measurements) {
-        for (SubDiv subdivision in measurement.subDivs) {
-          _subdivisions.add(subdivision);
-        }
-      }
-
-      // Sort the list of SubDiv objects based on each subdivision id
-      _subdivisions.sort((a, b) => a.sub_div_id.compareTo(b.sub_div_id));
-
       dataSource = MapShapeSource.memory(
         widget.relation,
         shapeDataField: 'sub_div_id',
-        dataCount: _subdivisions.length,
-        primaryValueMapper: (int index) => _subdivisions[index].sub_div_id,
-        shapeColorValueMapper: (int index) => _subdivisions[index].avgThickness, // NB will later be minThickness
+        dataCount: widget.subdivisions.length,
+        primaryValueMapper: (int index) => widget.subdivisions[index].sub_div_id,
+        shapeColorValueMapper: (int index) => widget.subdivisions[index].avgThickness, // NB will later be minThickness
         shapeColorMappers: const [
           MapColorMapper(
               from: -2,
diff --git a/app/lib/widgets/main_layout.dart b/app/lib/widgets/main_layout.dart
index 652c8b4bb7ed443e68f8c3b4540b02502ee6314f..49687cc442de8670d6cb93ec8348814780e9f5f5 100644
--- a/app/lib/widgets/main_layout.dart
+++ b/app/lib/widgets/main_layout.dart
@@ -14,11 +14,13 @@ import '../utils/format_month.dart';
 /// MapContainerWidget is the main widget that contains the map with all
 /// its layers, polygons and markers.
 class MapContainerWidget extends StatefulWidget {
+  final List<SubDiv> subdivisions;
   final List<Measurement> measurements;
   final  Uint8List relation;
   final bool serverConnection;
 
   const MapContainerWidget({Key? key,
+    required this.subdivisions,
     required this.measurements,
     required this.relation,
     required this.serverConnection,
@@ -105,6 +107,7 @@ class _MapContainerWidgetState extends State<MapContainerWidget> {
                       child: ChoroplethMap(
                         relation: widget.relation,
                         measurements: widget.measurements,
+                        subdivisions: widget.subdivisions,
                         onSelectionChanged: handleSelection,
                       ),
                     ),
diff --git a/server/__pycache__/scheduler.cpython-311.pyc b/server/__pycache__/scheduler.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0e286229a777a594a4e7f76d865a7b942a55b4a7
Binary files /dev/null and b/server/__pycache__/scheduler.cpython-311.pyc differ
diff --git a/server/map_handler/__pycache__/get_measurements.cpython-311.pyc b/server/map_handler/__pycache__/get_measurements.cpython-311.pyc
index 37cda1166d0176caae3f53b92b227f7f3618f8a8..acfeae94592fa21a28438ff18d170d9215bff394 100644
Binary files a/server/map_handler/__pycache__/get_measurements.cpython-311.pyc and b/server/map_handler/__pycache__/get_measurements.cpython-311.pyc differ