diff --git a/app/lib/data_classes.dart b/app/lib/data_classes.dart
index 6bb3d5387e44da7be9d40ee832b92103093ef578..554953821fc25f0973eb109fcc7248c17c896029 100644
--- a/app/lib/data_classes.dart
+++ b/app/lib/data_classes.dart
@@ -1,5 +1,6 @@
 import 'dart:core';
 import 'package:latlong2/latlong.dart';
+import 'package:flutter/material.dart';
 
 class Measurement {
   int measurementID;
@@ -17,47 +18,54 @@ class Measurement {
     required this.bodyOfWater,
     required this.center,
     required this.subDiv,
-    required this.corners
+    required this.corners,
   });
 
   factory Measurement.fromJson(Map<String, dynamic> json) {
     return Measurement(
-      measurementID: json['MeasurementID'],
-      timeMeasured: DateTime.parse(json['TimeMeasured']),
-      sensor: Sensor.fromJson(json['Sensor']),
-      bodyOfWater: json['BodyOfWater'] ?? 'nil',
-      center: LatLng(json['CenterLat'], json['CenterLon']),
-      subDiv: (json['Subdivisions'] as List<dynamic>).map((data) => SubDiv.fromJson(data)).toList(),
-      corners: (json['Corners'] as List<dynamic>).map((corner) => LatLng(corner[0], corner[1])).toList(),
+        measurementID: json['MeasurementID'],
+        timeMeasured: DateTime.parse(json['TimeMeasured']),
+        sensor: Sensor.fromJson(json['Sensor']),
+        bodyOfWater: json['BodyOfWater'] ?? 'nil',
+        center: LatLng(json['CenterLat'], json['CenterLon']),
+        subDiv: (json['Subdivisions'] as List<dynamic>).map((data) => SubDiv.fromJson(data)).toList(),
+        corners: (json['Corners'] as List<dynamic>).map((corner) => LatLng(corner[0], corner[1])).toList(),
     );
   }
 }
 
 class SubDiv {
-  int subDivID;
+  int sub_div_id;
   int groupID;
   double minThickness;
   double avgThickness;
   LatLng center;
   double accuracy;
+  Color color;
+  Color savedColor;
 
   SubDiv({
-    required this.subDivID,
+    required this.sub_div_id,
     required this.groupID,
     required this.minThickness,
     required this.avgThickness,
     required this.center,
     required this.accuracy,
+    required this.color,
+    required this.savedColor
   });
 
   factory SubDiv.fromJson(Map<String, dynamic> json) {
     return SubDiv(
-      subDivID: json['SubdivID'],
+      sub_div_id: json['SubdivID'],
       groupID: json['GroupID'],
       minThickness: json['MinThickness'],
       avgThickness: json['AvgThickness'],
       center: LatLng(json['CenLatitude'], json['CenLongitude']),
       accuracy: json['Accuracy'],
+      // Set grey as default color
+      color: json['Color'] != null ? Color(json['Color']) : Colors.grey,
+      savedColor: json['Color'] != null ? Color(json['Color']) : Colors.grey,
     );
   }
 }
diff --git a/app/lib/pages/default_page.dart b/app/lib/pages/default_page.dart
index a8d21b9214b07e48d8e0abc98df465d668eed6de..81aec4857298dc51a9f9328c27f8de2f1a607b9c 100644
--- a/app/lib/pages/default_page.dart
+++ b/app/lib/pages/default_page.dart
@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
 import 'dart:typed_data';
 
 import '../consts.dart';
-import '../widgets/main_widgets_container.dart';
+import '../widgets/main_layout.dart';
 import '../data_classes.dart';
 import '../server_requests/fetch_markers.dart';
 import '../server_requests/fetch_relation.dart';
@@ -120,7 +120,7 @@ class _DefaultPageState extends State<DefaultPage> {
             } else {
               // Alert the user after the build completes if there is no server connection
               WidgetsBinding.instance.addPostFrameCallback((_) {
-                if (serverConnection && !dialogShown) {
+                if (!serverConnection && !dialogShown) {
                   dialogShown = true;
                   showConnectionMessage();
                 }
diff --git a/app/lib/widgets/main_widgets_container.dart b/app/lib/widgets/main_layout.dart
similarity index 100%
rename from app/lib/widgets/main_widgets_container.dart
rename to app/lib/widgets/main_layout.dart