diff --git a/iot/Housing.scad b/iot/Housing.scad
index 1e9fbf0..587c4c9 100644
--- a/iot/Housing.scad
+++ b/iot/Housing.scad
@@ -215,55 +215,4 @@ translate(offset_power_reg) {
 		wall_thickness + box_inside[1] - corner_piece_size,
 		wall_thickness - 0.1
 	]) corner_piece();
-}
-
-
-// Lid
-// -------------------------------------------
-
-module screw_hole_indent() {
-	indent_depth = lid_lip_height + wall_thickness / 2;
-	indent_size = screw_diameter + 1.25;
-	translate([-indent_size/2, -indent_size/2, 0]) cube([
-		indent_size ,
-		indent_size ,
-		indent_depth
-	]);
-	translate([0, 0, indent_depth - 0.1]) cylinder(h = screw_length, d = screw_diameter, $fn = 25);
-}
-
-translate(offset_lid) {
-	difference() {
-		union() {
-			cube([
-				box_outside[0],
-				box_outside[1],
-				lid_base_height
-			]);
-			translate([wall_thickness, wall_thickness, lid_base_height]) cube([
-				box_outside[0] - (wall_thickness * 2),
-				box_outside[1] - (wall_thickness * 2),
-				lid_lip_height
-			]);
-		}
-		translate([0, 0, -0.1]) union() {
-			inset = corner_piece_size / 2 + wall_thickness;
-			translate([
-				inset,
-				inset,
-			]) screw_hole_indent();
-			translate([
-				box_outside[0] - inset,
-				inset,
-			]) screw_hole_indent();
-			translate([
-				box_outside[0] - inset,
-				box_outside[1] - inset
-			]) screw_hole_indent();
-			translate([
-				inset,
-				box_outside[1] - inset
-			]) screw_hole_indent();
-		}
-	}
 }
\ No newline at end of file
diff --git a/iot/Lid.scad b/iot/Lid.scad
new file mode 100644
index 0000000..1521a69
--- /dev/null
+++ b/iot/Lid.scad
@@ -0,0 +1,116 @@
+////////////////
+/// Settings ///
+////////////////
+
+// The thickness of the walls
+wall_thickness = 4;
+
+// The dimensions of the box on the inside
+box_inside = [ 130, 140, 110 ];
+
+// Screw dimensions
+screw_diameter = 3;
+screw_length = 6.3;
+
+// The size of a breadboard
+bb_size = [ 46, 35 ];
+
+// -------------------------------------------
+
+corner_piece_size = screw_diameter + 
+	(wall_thickness * 2);
+
+box_outside = [
+	box_inside[0] + (wall_thickness * 2),
+	box_inside[1] + (wall_thickness * 2),
+	box_inside[2] + (wall_thickness - 0.1)
+];
+
+// -------------------------------------------
+
+// Offset of the Arduino - i.e. where it should be mounted in the box
+offset_arduino = [53.4+8, 40, wall_thickness];
+
+// Breadboard mounting specs
+breadboard = [ bb_size[0], bb_size[1]+24+13, 49 ];
+offset_breadboard = [70, 20, wall_thickness - 0.1];
+bb_mount_height = 5;
+
+// Battery location
+battery = [ 60, 19, 70 ];
+offset_battery = [
+	wall_thickness + corner_piece_size + 10,
+	box_inside[1] - battery[1],
+	0
+];
+
+// Power regulator mount settings
+power_reg = [ 54, 31, 12 ];
+power_reg_underneath = 9;
+offset_power_reg = [
+	offset_arduino[0] + 10,
+	85,
+	wall_thickness
+];
+
+// Location of the lid - should not be touching the box - default is to the side of the box itself for easy 3d printing
+offset_lid = [ 0, 0, 0 ];
+
+// Based height of the lid
+lid_base_height = wall_thickness * 1.5;
+// Height of the extra lip to make the lid fit snugly
+lid_lip_height = 2;
+//offset_lid = [ 0, 0, box_outside[2] + 25 ];
+
+// -------------------------------------------
+
+
+// Lid
+// -------------------------------------------
+
+module screw_hole_indent() {
+	indent_depth = lid_lip_height + wall_thickness / 2;
+	indent_size = screw_diameter + 1.25;
+	translate([-indent_size/2, -indent_size/2, 0]) cube([
+		indent_size ,
+		indent_size ,
+		indent_depth
+	]);
+	translate([0, 0, indent_depth - 0.1]) cylinder(h = screw_length, d = screw_diameter, $fn = 25);
+}
+
+translate(offset_lid) {
+	difference() {
+		union() {
+			cube([
+				box_outside[0],
+				box_outside[1],
+				lid_base_height
+			]);
+			translate([wall_thickness, wall_thickness, lid_base_height]) cube([
+				box_outside[0] - (wall_thickness * 2),
+				box_outside[1] - (wall_thickness * 2),
+				lid_lip_height
+			]);
+		}
+		translate([0, 0, -0.1]) union() {
+			inset = corner_piece_size / 2 + wall_thickness;
+			translate([
+				inset,
+				inset,
+			]) screw_hole_indent();
+			translate([
+				box_outside[0] - inset,
+				inset,
+			]) screw_hole_indent();
+			translate([
+				box_outside[0] - inset,
+				box_outside[1] - inset
+			]) screw_hole_indent();
+			translate([
+				inset,
+				box_outside[1] - inset
+			]) screw_hole_indent();
+		}
+	}
+}
\ No newline at end of file
