diff --git a/compact/ci_GEM.xml b/compact/ci_GEM.xml
index 7e88f369e40a31b38f3e911801fa61495b504db6..9fe3052ecf0f194c4ec272f2067d1f576cf1e1eb 100644
--- a/compact/ci_GEM.xml
+++ b/compact/ci_GEM.xml
@@ -1,7 +1,6 @@
 <lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema" 
        xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd">
->
 
   <!-- Some information about detector  -->
   <info name="Central Ion GEM" title="Central Ion GEM"
@@ -16,8 +15,8 @@
   <includes>
   </includes>
 
-  <!-- Define the dimensions of the world volume
   <define>
+  	<!--
     <constant name="ci_GEM_id"      value="1">
     <constant name="ci_GEM_rin"     value="10 * cm">
     <constant name="ci_GEM_rout"    value="95 * cm">
@@ -26,8 +25,8 @@
     <constant name="ci_GEM_posz"    value="0 * cm">
     <constant name="ci_GEM_posx"    value="0 * cm">
     <constant name="ci_GEM_nlayers" value="8">
+    -->
   </define>
-  -->
 
    <limits>
   </limits>
@@ -58,4 +57,6 @@
   </detectors>
 
   <plugins>
-  </plugins>
\ No newline at end of file
+  </plugins>
+
+</lccdd>
\ No newline at end of file
diff --git a/src/ci_GEM.cpp b/src/ci_GEM.cpp
index 60cb1d0b3442ffb88a0556038d7f8d31a4cba0c8..415721e2ca5e3741afd7f18832f3192f04fdca4d 100644
--- a/src/ci_GEM.cpp
+++ b/src/ci_GEM.cpp
@@ -52,6 +52,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   xml::DetElement detElem = handle;
   std::string     detName = "ci_GEM";
   int             detID   = 1;
+  xml_comp_t x_layer      = detElem.child(_U(layer));
 
   xml::Component dims = detElem.dimensions();
   double SizeZ  = 30. * dd4hep::cm;  // Size in Z direction
@@ -64,17 +65,12 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   Material mat  = desc.material(detElem.materialStr());
   Material air  = desc.material("Air");
 
-  DetElement   det(detName, detID);
-  Volume       motherVol = desc.pickMotherVolume(det);
+  
   Tube         ci_GEM_GVol_Solid(RIn, ROut, SizeZ / 2., 0., 360 * deg);
   Volume       detVol("ci_GEM_GVol_Logic", ci_GEM_GVol_Solid, air);
-  PlacedVolume detPV = motherVol.placeVolume(detVol, RotationZYX(0,0,0));
-  detPV.addPhysVolID("system", detID);
-  det.setPlacement(detPV);
-  
+  detVol.setVisAttributes(desc.visAttributes(detElem.visStr()));
   
   //Adding layers to placed volume
-  xml_comp_t x_layer = detElem.child(_U(layer));
   for (int lNum = 0; lNum < Nlayers; lNum++){
   	std::string layer_name = detName + _toString(lNum, "_layer%d");
   	double lrmin, lrmax, lz;
@@ -83,14 +79,20 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   	lz    = SizeZ * 0.5 + (5.0 + 3. * lNum) * dd4hep::cm; 
   	Volume layer_vol(layer_name, Tube(lrmin, lrmax, 1.0 * dd4hep::cm), mat);
   	Position layer_pos(0, 0, lz);
-  	DetElement layer(det, layer_name, detID);
-  	layer_vol.setVisAttributes(desc.visAttributes(detElem.visStr()));
+  	//DetElement layer(x_layer, layer_name, detID);
+  	//layer_vol.setVisAttributes(desc.visAttributes(x_layer.visStr()));//no layer visable attributes
   	//layer.setAttributes(desc, layer_vol, desc.region(), desc.limits(), );//(region, limits, visable).
   	PlacedVolume layer_phv = detVol.placeVolume(layer_vol, layer_pos);
   	layer_phv.addPhysVolID("layer", lNum);
-  	layer.setPlacement(layer_phv);
   }
 
+  DetElement   det(detName, detID);
+  Volume       motherVol = desc.pickMotherVolume(det);
+  Transform3D  tr(RotationZYX(0.0, 0.0, 0.0), Position(0.0, 0.0, 0.0));
+  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
+  detPV.addPhysVolID("system", detID);
+  det.setPlacement(detPV);
+
   return det;
 }
 // clang-format off
diff --git a/src/ci_HCAL.cpp b/src/ci_HCAL.cpp
index 273e8e4d4034fd57b9afbe6497ba8b9c1089bc4c..0efa0cc7485d2350ec4ea69f97fcb52f8f35e30c 100644
--- a/src/ci_HCAL.cpp
+++ b/src/ci_HCAL.cpp
@@ -10,7 +10,7 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
 
   xml::DetElement detElem = handle;
   std::string     detName = "ci_HCAL";
-  int             detID   = 1000;
+  int             detID   = 1;
 
   xml::Component dims = detElem.dimensions();
   //Envelope volume specs
@@ -24,12 +24,9 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   Material mat_air   = desc.material("Air");
   Material mat_vac   = desc.material("Vacuum");
   
-
-
   
   Tube         ci_Hcal_Solid(RIn, ROut, SizeZ / 2., 0., 360 * dd4hep::deg);
   Volume       envelopeVol("ci_Hcal_Logic", ci_Hcal_Solid, mat_vac);//check that this one is iron
-  //envelopeVol.setVisAttributes(0.3, 0, 3.0, 0.1);
 
   //Layer Specs
   double det_ROut       = ROut - 1. * dd4hep::cm;
@@ -43,14 +40,14 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   //detVol.setVisAttributes(0.6, 0, 0.6, 1);
 
 
-  /*
   //Adding layers to placed detector volume
+  xml_comp_t x_layer = detElem.child(_U(layer));
   for (int lNum = 0; lNum < Nlay; lNum++){
-  	//xml_comp_t x_layer = c;
   	std::string layer_name = detName + _toString(lNum, "_layer%d");
   	double layer_Posz = -SizeZ / 2. + (lNum + 1) * det_ThicknessZ + (lNum + 1) * 5. * dd4hep::cm;
   	
     Volume layer_vol(layer_name, ci_Hcal_detSolid, mat_iron);
+    layer_vol.setVisAttributes(detElem.visStr());
   	Position layer_pos(0, 0, layer_Posz);
   	//DetElement layer(envelope_det, layer_name, detID);
   	//layer.setVisAttributes(desc.visAttributes(det.visStr()));
@@ -58,14 +55,13 @@ static Ref_t createDetector(Detector& desc, xml_h handle, SensitiveDetector sens
   	PlacedVolume layer_phv = envelopeVol.placeVolume(layer_vol, layer_pos);
   	layer_phv.addPhysVolID("layer", lNum);
   }
-  */
+  
   DetElement   det(detName, detID);
   Volume       motherVol = desc.pickMotherVolume(det);
   Transform3D tr(RotationZYX(0,0,0), Position(0, 0, ShiftZ) );
   PlacedVolume detPV     = motherVol.placeVolume(envelopeVol, tr);
   det.setPlacement(detPV);
-  /**/
-  //DetElement   det(detName, detID);
+
   return det;
 }
 // clang-format off