diff --git a/attachments.scad b/attachments.scad
index ccec4cb..45fe386 100644
--- a/attachments.scad
+++ b/attachments.scad
@@ -181,15 +181,17 @@ function attach_geom(
 	anchors=[],
 	two_d=false
 ) =
+	assert(is_bool(extent))
 	assert(is_vector(offset))
 	assert(is_list(anchors))
+	assert(is_bool(two_d))
 	!is_undef(size)? (
 		two_d? (
 			let(
 				size2 = default(size2, size.x),
 				shift = default(shift, 0)
 			)
-			assert(is_vector(size) && len(size)==2)
+			assert(is_vector(size,2))
 			assert(is_num(size2))
 			assert(is_num(shift))
 			["rect", point2d(size), size2, shift, offset, anchors]
@@ -198,9 +200,9 @@ function attach_geom(
 				size2 = default(size2, point2d(size)),
 				shift = default(shift, [0,0])
 			)
-			assert(is_vector(size) && len(size)==3)
-			assert(is_vector(size2) && len(size2)==2)
-			assert(is_vector(shift) && len(shift)==2)
+			assert(is_vector(size,3))
+			assert(is_vector(size2,2))
+			assert(is_vector(shift,2))
 			["cuboid", size, size2, shift, offset, anchors]
 		)
 	) : !is_undef(vnf)? (
@@ -209,7 +211,7 @@ function attach_geom(
 		extent? ["vnf_extent", vnf, offset, anchors] :
 		["vnf_isect", vnf, offset, anchors]
 	) : !is_undef(path)? (
-		assert(is_path(path))
+		assert(is_path(path),2)
 		assert(two_d == true)
 		extent? ["path_extent", path, offset, anchors] :
 		["path_isect", path, offset, anchors]
@@ -227,7 +229,7 @@ function attach_geom(
 			)
 			assert(is_num(l))
 			assert(is_num(r2))
-			assert(is_vector(shift) && len(shift)==2)
+			assert(is_vector(shift,2))
 			["cyl", r1, r2, l, shift, offset, anchors]
 		) : (
 			two_d? ["circle", r1, offset, anchors] :
@@ -769,7 +771,10 @@ module attachable(
 	anchors=[],
 	two_d=false
 ) {
-	assert($children==2);
+	assert($children==2, "attachable() expects exactly two children; the shape to manage, and the union of all attachment candidates.");
+	assert(!is_undef(anchor), str("anchor undefined in attachable().  Did you forget to set a default value for anchor in ", parent_module(1)));
+	assert(!is_undef(spin), str("spin undefined in attachable().  Did you forget to set a default value for spin in ", parent_module(1)));
+	assert(!is_undef(orient), str("orient undefined in attachable().  Did you forget to set a default value for orient in ", parent_module(1)));
 	geom = attach_geom(
 		size=size, size2=size2, shift=shift,
 		r=r, r1=r1, r2=r2, h=h,
diff --git a/version.scad b/version.scad
index 3f3d3d1..3105091 100644
--- a/version.scad
+++ b/version.scad
@@ -8,7 +8,7 @@
 //////////////////////////////////////////////////////////////////////
 
 
-BOSL_VERSION = [2,0,166];
+BOSL_VERSION = [2,0,167];
 
 
 // Section: BOSL Library Version Functions