diff --git a/demos/boolean/compsolid.geo b/demos/boolean/compsolid.geo
index 9e8d5e50d387aa5c8a8357e75c4e51a80998b2b7..07e597bb5181df04a1d6fbe30afc8a1237dc65a8 100644
--- a/demos/boolean/compsolid.geo
+++ b/demos/boolean/compsolid.geo
@@ -1,8 +1,8 @@
 SetFactory("OpenCASCADE");
 
 //Mesh.Algorithm = 6;
-Mesh.CharacteristicLengthMin = 0.1;
-Mesh.CharacteristicLengthMax = 0.1;
+Mesh.CharacteristicLengthMin = 0.2;
+Mesh.CharacteristicLengthMax = 0.2;
 
 DefineConstant[
   x = {0, Min -5, Max 5, Step 0.1, Name "Bloc 1/0x"}
@@ -22,7 +22,7 @@ DefineConstant[
 Box(1) = {x,y,z, dx,dy,dz};
 Box(2) = {x2,y2,z2, dx2,dy2,dz2};
 
-f() = BooleanFragments { Volume{1}; Delete; }{ Volume{2}; Delete; };
+f() = BooleanFragments { Volume{1,2}; Delete; }{};
 
 Printf("Resulting elementary entities:");
 For i In {0:#f()-1}
diff --git a/demos/boolean/compsolid2.geo b/demos/boolean/compsolid2.geo
index 40e8caa911f87bc7ea4e8a2f1f074ad12ae850bd..0ea505b8c08fbbdf7abf688e329094b6044c0e81 100644
--- a/demos/boolean/compsolid2.geo
+++ b/demos/boolean/compsolid2.geo
@@ -1,8 +1,8 @@
 SetFactory("OpenCASCADE");
 
 //Mesh.Algorithm = 6;
-Mesh.CharacteristicLengthMin = 0.1;
-Mesh.CharacteristicLengthMax = 0.1;
+Mesh.CharacteristicLengthMin = 0.2;
+Mesh.CharacteristicLengthMax = 0.2;
 
 DefineConstant[
   sph = {0, Choices{0,1}, Name "Make sphere a single volume"}
@@ -15,7 +15,7 @@ Box(1) = {0,0,0, 2,2,2};
 Sphere(2) = {xx, 1, 1, rr};
 Box(3) = {2,0,0, 2,2,2};
 
-f() = BooleanFragments { Volume{1}; Delete; }{ Volume{2,3}; Delete; };
+f() = BooleanFragments { Volume{1:3}; Delete; }{};
 Printf("f()", f());
 If(sph)
   tol = 1e-3;
diff --git a/demos/boolean/extrude.geo b/demos/boolean/extrude.geo
index 6125257c8e4676a3011424b5c23c35156916dc3d..c8a55471254cccd7fcda70ca4652367cd555780d 100644
--- a/demos/boolean/extrude.geo
+++ b/demos/boolean/extrude.geo
@@ -36,9 +36,9 @@ DefineConstant[
 If(order == 0)
   Extrude{0,0,0.3}{ Surface{1:3}; }
   Delete{ Surface{1:3}; }
-  BooleanFragments{ Volume{1}; Delete; }{ Volume{2:3}; Delete; }
+  BooleanFragments{ Volume{1:3}; Delete; }{}
 Else
-  BooleanFragments{ Surface{1}; Delete; }{ Surface{2:3}; Delete; }
+  BooleanFragments{ Surface{1:3}; Delete; }{}
   a() = Extrude{0,0,0.3}{ Surface{1:5}; };
   Printf("returned entities (top, body, laterals, etc.) = ", a());
 EndIf
diff --git a/demos/boolean/extrude2.geo b/demos/boolean/extrude2.geo
index b0f8e52538a788ed2617f9adea7fd870a3137262..cef8f81244d838a31f2e72edb6f71cc6f3e3d99f 100644
--- a/demos/boolean/extrude2.geo
+++ b/demos/boolean/extrude2.geo
@@ -28,7 +28,7 @@ Plane Surface(2) = {2};
 
 Disk(3) = {0.6, 0.6, 0, 0.5, 0.3};
 
-BooleanFragments{ Surface{1}; Delete; }{ Surface{2:3}; Delete; }
+BooleanFragments{ Surface{1:3}; Delete; }{}
 
 rec = DefineNumber[1, Choices{0,1}, Name "recombine into prisms?"];
 Extrude{0,0,0.3}{ Surface{1:5}; Layers{5}; Recombine rec; }
diff --git a/demos/boolean/fragment_numbering.geo b/demos/boolean/fragment_numbering.geo
index e627c69ea6d4af220c61c09c2b61a478e6d50dad..dab07830e092fb42c848f3b3d7437b43087b8809 100644
--- a/demos/boolean/fragment_numbering.geo
+++ b/demos/boolean/fragment_numbering.geo
@@ -29,6 +29,6 @@ EndFor
 
 Printf("disk tags: ", b());
 
-c() = BooleanFragments{ Line{t}; Surface{1:6}; Delete; }{ Surface{b()}; Delete; };
+c() = BooleanFragments{ Line{t}; Surface{1:6,b()}; Delete; }{};
 
 Printf("all tags (disk and top line tags should be unchanged!): ", c());
diff --git a/demos/boolean/import.geo b/demos/boolean/import.geo
index b3ca0cdfe9d821f021b834bd110d96198bf9dd38..2581a161349c600a1a3f74744aa698aee2818437 100644
--- a/demos/boolean/import.geo
+++ b/demos/boolean/import.geo
@@ -19,7 +19,7 @@ If(sph)
 EndIf
 
 
-r() = BooleanFragments{ Volume{a()}; Delete; }{ Volume{b()}; Delete; };
+r() = BooleanFragments{ Volume{a(),b()}; Delete; }{};
 
 //Recursive Color SteelBlue { Volume{r()}; }
 
diff --git a/demos/boolean/revolve.geo b/demos/boolean/revolve.geo
index 99293b32afb062b3f1ce7514c3e660a65acb3ccb..ecfb7d4bd3f51d47213faa426425234ede7f3d84 100644
--- a/demos/boolean/revolve.geo
+++ b/demos/boolean/revolve.geo
@@ -32,5 +32,5 @@ DefineConstant[
   angle = {90, Min 1, Max 360, Step 1,
     Name "Parameters/Angle"}
 ];
-BooleanFragments{ Surface{1}; Delete; }{ Surface{2:3}; Delete; }
+BooleanFragments{ Surface{1:3}; Delete; }{}
 a() = Extrude{ {0,1,0}, {0,0,0}, angle*2*Pi/360 }{ Surface{1:5}; };
diff --git a/demos/boolean/revolve2.geo b/demos/boolean/revolve2.geo
index 4784f52abed558b84ece574460219c299879c5e9..411b8f409faa104d61c093b682eab9e18b6f3779 100644
--- a/demos/boolean/revolve2.geo
+++ b/demos/boolean/revolve2.geo
@@ -32,6 +32,5 @@ DefineConstant[
   angle = {90, Min 1, Max 360, Step 1,
     Name "Parameters/Angle"}
 ];
-BooleanFragments{ Surface{1}; Delete; }{ Surface{2:3}; Delete; }
+BooleanFragments{ Surface{1:3}; Delete; }{}
 Extrude{ {0,1,0}, {0,0,0}, angle*2*Pi/360 }{ Surface{1:5}; Layers{10}; Recombine; }
-
diff --git a/demos/boolean/simple3.geo b/demos/boolean/simple3.geo
index 8c4267921ef480f4cc303ca5e584b07b9d47672b..b68fbfc40823d2ab43f3789d55052328ce81ae7c 100644
--- a/demos/boolean/simple3.geo
+++ b/demos/boolean/simple3.geo
@@ -27,4 +27,4 @@ Line Loop(2) = {5,6,7,8};
 Plane Surface(2) = {2};
 
 Disk(3) = {0.6, 0.6, 0, 0.5, 0.3};
-BooleanFragments{ Surface{1}; Delete; }{ Surface{2,3}; Delete; }
+BooleanFragments{ Surface{1:3}; Delete; }{}
diff --git a/demos/boolean/simple4.geo b/demos/boolean/simple4.geo
index 42f978649dd4e29850df6d99170662734dbb8c5b..65846891ac3c909d0299ebf599db9c42791ce114 100644
--- a/demos/boolean/simple4.geo
+++ b/demos/boolean/simple4.geo
@@ -31,4 +31,4 @@ Surface Loop(1) = {1,2,3,4,5};
 Volume(1) = {1};
 
 Cylinder(2) = {0.5,0.5,-0.5, 0,0,2, 0.2};
-BooleanFragments{ Volume{1}; Delete; }{ Volume{2}; Delete; }
+BooleanFragments{ Volume{1,2}; Delete; }{}
diff --git a/demos/boolean/transform.geo b/demos/boolean/transform.geo
index d91c59227273c4a151dddb4325f1a66ee49fc066..f75af50c8b74b20301300fcdc34ed8e2f644ade8 100644
--- a/demos/boolean/transform.geo
+++ b/demos/boolean/transform.geo
@@ -26,6 +26,6 @@ Translate{0.2,0.2,0.2}{ Volume{1}; }
 Rotate { {1,0,0}, {0,0,0}, Pi/3 } { Volume{1}; }
 Rotate { {0,1,0}, {0,0,0}, Pi/3 } { Volume{1}; }
 
-f() = BooleanFragments { Volume{1}; Delete; }{ Volume{2}; Delete; };
+f() = BooleanFragments { Volume{1,2}; Delete; }{};
 
 Translate{4,0,0}{ Duplicata{ Volume{1/*,2,3*/}; } }