sphere($fn=8, r=wall/2);
 }
 
-module WellSurround(half_height, wall=well_surround_wall) {
-  // WellSurround(half_height) {
+module WellSurround(half_height, gaps, wall=well_surround_wall) {
+  // WellSurround(half_height, gaps[
+  //    [ x_min, x_max ],
+  //    ...
+  // ]) {
   //     SomethingPositive();
   // }
   //
       WallMinkowskiSphere(wall);
 
       difference(){
-       union(){
-
-         linextr(-10, half_height - wall/2)
-           offset($fn=8, r = wall/2)
-           projection(cut=false)
-           children(0);
-       }
+       linextr(-10, half_height - wall/2)
+         offset($fn=8, r = wall/2)
+         projection(cut=false)
+         children(0);
 
        minkowski(){
          WallMinkowskiSphere(wall);
            children(0);
          }
        }
+
+       for (gap=gaps) {
+         linextr_x_yz(gap[0] + wall/2, gap[1] - wall/2)
+           rectfromto([ -100, -wall/2 ], [ 100,100 ]);
+       }
       }
     }
   }
 }
 
 module DriverHandleHolder() { ////toplevel
-  WellSurround(driver_handle_handle_d/2)
+  WellSurround(driver_handle_handle_d/2, [
+    [ driver_handle_shaft_l, driver_handle_shaft_l + 50 ],
+  ])
     DriverHandlePositive();
 }