diff --git a/housing/housing.scad b/housing/housing.scad
index dcb8ec0..d29a805 100644
--- a/housing/housing.scad
+++ b/housing/housing.scad
@@ -1,7 +1,8 @@
 BOX_X = 81;
 BOX_Y = 101;
 BOX_Z = 95;
-MIN_WALL_THICKNESS = 2;
+TOP_WALL = 2;
+BOTTOM_WALL = 2;
 WALL = 3;
 JACK_X = 9.5;
 JACK_Y = 8;
@@ -14,15 +15,18 @@ POST_DIAMETER = 6;
 POST_OUTER_DIAMETER = 14;
 FRONT_TAB_Y = POST_OUTER_DIAMETER;
 FRONT_TAB_X = POST_OUTER_DIAMETER + 1;
+REAR_TAB_X = POST_OUTER_DIAMETER;
 
-REAR_BOX_Y = TAB_LENGTH - (POST_OUTER_DIAMETER / 2);
+REAR_TAB_Y = 16;
+
+REAR_BOX_Y = TAB_LENGTH - (POST_OUTER_DIAMETER / 2) - WALL;
 
 // NEGATIVE SPACE
 
 module ShifterRing() {
   translate([BOX_X / 2, BOX_Y / 2, BOX_Z])
   translate([-5, 6, -1])
-    linear_extrude(4)
+    linear_extrude(5)
     rotate([0, 0, -16])
     rotate([0, 180, 0])
     //import("path413.svg", center=true, dpi=94.5);
@@ -54,11 +58,10 @@ module MainBox() {
 module FrontTopJunk() {
   x = 31;
   z = 21;
-  center = 22 / 2;
   y = WALL + 3;
 
-  translate([28, BOX_Y, BOX_Z - z - 8])
-    cube([x, y, z]);
+  translate([28, BOX_Y - 0.1, BOX_Z - z - 8])
+    cube([x, y + 0.1, z]);
 }
 
 module PowerJack() {
@@ -90,7 +93,8 @@ module FrontMounts() {
         translate([(y / 2) + (BOX_X / 2), BOX_Y / 2, 0])
         rotate([0, 0, 90])
         translate([0, 0, z / 2])
-        cube([x, y, z], center=true);
+        // Adding 2 to make rendering work
+        cube([x, y + 2, z], center=true);
     }
 }
 
@@ -101,14 +105,16 @@ module RearMounts() {
 
   z_shift = 65.3;
 
+  jitter = 4; // for fixing rendering on x/z plane
+
   for(i = [0, BOX_X - x]) {
-    translate([i, -y, z_shift - z])
-      cube([x, y, z]);
+    translate([i, -(y + (jitter / 2)), z_shift - z])
+      cube([x, y + jitter, z]);
   }
 }
 
 module Shifter() {
-  #MainBox();
+  MainBox();
   FrontLeftBump();
   RearTab();
   FrontTopJunk();
@@ -160,13 +166,27 @@ module FrontPost(height) {
 }
 
 
-module OuterBox() {
-  translate([-WALL, -(REAR_BOX_Y + WALL), -WALL])
-    cube([BOX_X + (WALL * 2), BOX_Y + REAR_BOX_Y + (WALL * 2), JACK_Z + 6 + WALL - 0.1]);
+module InnerBox(height) {
+  translate([-WALL, -WALL, 0])
+  cube([BOX_X + (WALL * 2), BOX_Y + (WALL * 2), height]);
+}
+
+module RearBoxContainer(height) {
+  x = BOX_X - (POST_OUTER_DIAMETER * 2);
+  y = REAR_BOX_Y + WALL;
+  z = height;
+
+  translate([(BOX_X / 2) - (x / 2), -y, 0])
+  cube([x, y + 0.1, z]);
+}
+
+module OuterBox(height) {
+  translate([-WALL, -(REAR_BOX_Y + WALL), 0])
+    cube([BOX_X + (WALL * 2), BOX_Y + REAR_BOX_Y + (WALL * 2), height]);
 }
 
 module FrontPosts(height) {
-  translate([BOX_X / 2, BOX_Y - FRONT_TAB_X, -WALL])
+  translate([BOX_X / 2, BOX_Y - FRONT_TAB_X, 0])
   for (i = [0, 1]) {
     mirror([i, 0, 0])
       translate([-BOX_X / 2, 0, 0])
@@ -176,6 +196,50 @@ module FrontPosts(height) {
   }
 }
 
+module RearPost(height) {
+  $fn = 80;
+  diameter = POST_DIAMETER;
+
+  outer_diameter = POST_OUTER_DIAMETER;
+  outer_radius = outer_diameter / 2;
+
+  length = (outer_diameter / 2) + (REAR_TAB_Y - outer_diameter);
+
+  translate([0, (-outer_radius) + (REAR_TAB_Y / 2), 0])
+  difference() {
+    linear_extrude(height)
+      union() {
+        circle(d = outer_diameter);
+        translate([-(outer_diameter / 2), -length])
+          square([outer_diameter, length]);
+      }
+
+    translate([0, 0, -1])
+    linear_extrude(height + 2)
+      circle(d = diameter);
+  }
+}
+
+module RearPosts(height) {
+  translate([0, 0, 0])
+  for (i = [0, BOX_X - REAR_TAB_X]) {
+    translate([(REAR_TAB_X / 2) + i, -REAR_TAB_Y / 2, 0])
+      rotate([0, 0, 180])
+      RearPost(height);
+  }
+}
+
+module Container() {
+  height = BOX_Z + TOP_WALL + BOTTOM_WALL;
+  translate([0, 0, -BOTTOM_WALL]) {
+    InnerBox(height);
+    RearPosts(height);
+    RearBoxContainer(height);
+    FrontPosts(height);
+  }
+}
+
+difference() {
+Container();
 Shifter();
-OuterBox();
-FrontPosts(100);
+}