diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9e909a0b1800a65125a317e268256112d1c75f34..bfef7ec7576a31b462843c677ae560e100ee8f5c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,8 +15,27 @@ set(a_lib_name athena)
 
 dd4hep_configure_output()
 
-dd4hep_add_plugin(${a_lib_name} SOURCES src/*.cpp
-          USES ActsCore ActsPluginDD4hep
+dd4hep_add_plugin(${a_lib_name} SOURCES 
+  src/BackwardGEMTracker_geo.cpp
+  src/BarrelCalorimeter_geo.cpp
+  src/BarrelCalorimeterHybrid_geo.cpp
+  src/BarrelCalorimeterInterlayers_geo.cpp
+  src/BarrelTrackerWithFrame_geo.cpp
+  src/CylinderTrackerBarrel_geo.cpp
+  src/DIRC_geo.cpp
+  src/DRich_geo.cpp
+  src/FieldMapBrBz.cpp
+  src/GaseousRICH_geo.cpp
+  src/GeometryHelpers.cpp
+  src/HomogeneousCalorimeter_geo.cpp
+  src/MRich_geo.cpp
+  src/PolyhedraEndcapCalorimeter2_geo.cpp
+  src/ShashlikCalorimeter_geo.cpp
+  src/SimpleDiskTracker_geo.cpp
+  src/SimpleRectangularTracker_geo.cpp
+  src/SolenoidCoil_geo.cpp
+  src/TrapEndcapTracker_geo.cpp
+  USES ActsCore ActsPluginDD4hep
   )
 target_link_libraries(${a_lib_name}
   PUBLIC DD4hep::DDCore  DD4hep::DDRec
diff --git a/compact/cb_CTD_Si.xml b/compact/cb_CTD_Si.xml
deleted file mode 100644
index 38e04cb487da95fe004680fe77364b627197a740..0000000000000000000000000000000000000000
--- a/compact/cb_CTD_Si.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<lccdd>
-
-  <comment> Central Barrel Tracker Silicon </comment>        
-
-  <define>
-    <constant name="cb_CTD_rmin"   value="SiliconTrackerInnerRadius + 70.0 * mm"/>
-    <constant name="cb_CTD_rmax"   value="SiliconTrackerOuterRadius"/>
-    <constant name="cb_CTD_zmax"   value="SiliconTrackerOuterBarrel_zmax"/>
-    <constant name="cb_CTD_length" value="SiliconTrackerOuterBarrelLength"/>
-    <comment> Si layer opiton </comment>
-    <constant name="cb_CTD_Si_gap"    value="5.0 * cm"/>
-    <constant name="cb_CTD_Si_layer"  value="15"/>
-  </define>
-
-  <limits>
-  </limits>
-
-  <regions>
-  </regions>
-
-  <display>
-  </display>
-
-  <detectors>
-    <detector id="cb_CTD_Si_ID" name="cb_CTD_Si" type="cb_CTD_Si" readout="cb_CTD_Si_Hits" vis="cb_CTDVis" insideTrackingVloume="true">
-      <dimensions rmin="cb_CTD_rmin" rmax="cb_CTD_rmax" length="cb_CTD_length" zmax="cb_CTD_zmax" gap="cb_CTD_Si_gap"/>
-      <layer repeat="cb_CTD_Si_layer" vis="cb_CTD_Si_layerVis">
-        <slice name="Silicon_slice" material="Si" sensitive="true"/>
-      </layer>
-    </detector>
-  </detectors>
-
-  <readouts>
-    <readout name="cb_CTD_Si_Hits">
-      <segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
-      <id>system:8,barrel:3,layer:4,x:32:-16,y:-16</id>  
-    </readout>
-  </readouts>
-
-  <plugins>
-  </plugins>
-
-  <fields>
-  </fields>
-</lccdd>
diff --git a/compact/cb_Solenoid.xml b/compact/cb_Solenoid.xml
deleted file mode 100644
index efca08be97e5ab9212fc4dbafc55cd144070b4cc..0000000000000000000000000000000000000000
--- a/compact/cb_Solenoid.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<lccdd>
-
-  <comment>Central Barrel Solenoid</comment>        
-
-  <define>
-  </define>
-
-  <limits>
-  </limits>
-
-  <regions>
-  </regions>
-
-  <display>
-  </display>
-
-  <!-- Define detector -->
-  <detectors>
-    <comment>
-      Central Barrel Solenoid Magnet
-    </comment>
-    <detector id="Solenoid_ID" name="cb_Solenoid" type="cb_Solenoid" insideTrackingVolume="false" vis="cb_SolenoidVis">
-	    <material name="Vacuum"/>  <!-- G4_Galactic -->	    
-      <dimensions rmin="Solenoid_rmin" rmax="Solenoid_rmax" z="b_Solenoid_z" delta="cb_Solenoid_shift"/>
-    </detector>
-  </detectors>
-
-  <plugins>
-  </plugins>
-
-  <!-- TODO: Define field using field map-->
-  <fields>
-  </fields>
-</lccdd>
diff --git a/compact/cb_VTX_Barrel.xml b/compact/cb_VTX_Barrel.xml
deleted file mode 100644
index 4b39ba8965d11ce3984879323109037b483975a9..0000000000000000000000000000000000000000
--- a/compact/cb_VTX_Barrel.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<lccdd>
-
-  <comment> Central Barrel Vertex Detector </comment>        
-
-  <define>
-    <constant name="cb_VTX_Barrel_rmin"   value="VertexTrackerInnerRadius"/>
-    <constant name="cb_VTX_Barrel_rmax"   value="VertexTrackerOuterRadius"/>
-    <constant name="cb_VTX_Barrel_length" value="VertexTrackerOuterBarrelLength"/>
-
-    <constant name="cb_VTX_Barrel_x_pos"   value="0.0*mm"/>
-    <constant name="cb_VTX_Barrel_y_pos"   value="0.0*mm"/>
-    <constant name="cb_VTX_Barrel_z_pos"   value="0.0*mm"/>
-
-    <constant name="cb_VTX_Barrel_layer"   value="6"/>
-
-    <comment> Need to cleanup and be more consistent with naming here </comment>
-
-    <constant name="VertexTrackerBarrelLength" value="400.0*mm"/>
-
-    <constant name="SiVertexEndcapP_rmin" value="VertexTrackerInnerRadius"/>
-    <constant name="SiVertexEndcapP_rmax" value="VertexTrackerOuterRadius"/>
-    <constant name="SiVertexEndcapP_zmin" value="VertexTrackerBarrelLength + 5*mm"/>
-
-    <constant name="SiVertexEndcapN_rmin" value="VertexTrackerInnerRadius"/>
-    <constant name="SiVertexEndcapN_rmax" value="VertexTrackerOuterRadius"/>
-    <constant name="SiVertexEndcapN_zmin" value="VertexTrackerBarrelLength + 5*mm"/>
-
-    <constant name="SiVertexEndcap_NLayers" value="5"/>
-    <constant name="SiVertexEndcapP_zmax" value="VertexTrackingRegion_length/2 - SiVertexEndcapN_zmin"/>
-    <constant name="SiVertexEndcapP_zmax" value="VertexTrackingRegion_length/2 - SiVertexEndcapN_zmin"/>
-    <constant name="SiVertexEndcap_delta" value="(SiVertexEndcapP_zmax - SiVertexEndcapP_zmin)/SiVertexEndcap_NLayers"/>
-  </define>
-
-  <limits>
-  </limits>
-
-  <regions>
-  </regions>
-
-  <display>
-  </display>
-
-  <detectors>
-
-    <detector id="SiVertexSubAssembly_ID" 
-      name="SiVertexSubAssembly" 
-      type="DD4hep_SubdetectorAssembly" 
-      vis="SiTrackerSubAssemblyVis">
-      <composite name="SiVertexEndcapN"/>
-      <composite name="SiVertexEndcapP"/> 
-      <composite name="cb_VTX_Barrel"/>
-    </detector>
-
-    <detector id="cb_VTX_Barrel_ID" name="cb_VTX_Barrel" type="cb_VTX_Barrel" readout="cb_VTX_Barrel_Hits" vis="cb_VTX_BarrelVis" insideTrackingVloume="true">
-      <dimensions rmin="cb_VTX_Barrel_rmin" rmax="cb_VTX_Barrel_rmax" length="cb_VTX_Barrel_length"/>
-      <position x="cb_VTX_Barrel_x_pos" y="cb_VTX_Barrel_y_pos" z="cb_VTX_Barrel_z_pos"/>
-      <layer repeat="cb_VTX_Barrel_layer" vis="cb_VTX_Barrel_layerVis">
-	<slice name="Silicon_slice" material="Si" sensitive="true"/>
-      </layer>
-    </detector>
-
-    <detector id="SiVertexEndcapP_ID" name="SiVertexEndcapP" type="ref_DiskTracker"
-      insideTrackingVolume="true" reflect="false" vis="AnlRed">
-      <position x="0" y="0" z="0"/>
-      <layer id="1" vis="AnlOrange"
-        inner_z="SiVertexEndcapP_zmin + 0*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapP_rmin" 
-        outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="2" vis="AnlOrange"
-        inner_z="SiVertexEndcapP_zmin + 1*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapP_rmin" 
-        outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="3" vis="AnlOrange"
-        inner_z="SiVertexEndcapP_zmin + 2*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapP_rmin" 
-        outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="4" vis="AnlOrange"
-        inner_z="SiVertexEndcapP_zmin + 3*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapP_rmin" 
-        outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="5" vis="AnlOrange"
-        inner_z="SiVertexEndcapP_zmin + 4*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapP_rmin" 
-        outer_r="SiVertexEndcapP_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-    </detector>
-
-    <detector id="SiVertexEndcapN_ID" name="SiVertexEndcapN" type="ref_DiskTracker"
-      insideTrackingVolume="true" reflect="true" vis="AnlRed">
-      <position x="0" y="0" z="0"/>
-      <layer id="1" vis="AnlOrange"
-        inner_z="SiVertexEndcapN_zmin + 0*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapN_rmin" 
-        outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="2" vis="AnlOrange"
-        inner_z="SiVertexEndcapN_zmin + 1*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapN_rmin" 
-        outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="3" vis="AnlOrange"
-        inner_z="SiVertexEndcapN_zmin + 2*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapN_rmin" 
-        outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="4" vis="AnlOrange"
-        inner_z="SiVertexEndcapN_zmin + 3*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapN_rmin" 
-        outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-      <layer id="5" vis="AnlOrange"
-        inner_z="SiVertexEndcapN_zmin + 4*SiVertexEndcap_delta" 
-        inner_r="SiVertexEndcapN_rmin" 
-        outer_r="SiVertexEndcapN_rmax">
-        <slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
-      </layer>
-    </detector>
-  </detectors>
-
-  <readouts>
-    <readout name="cb_VTX_Barrel_Hits">
-      <segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
-      <id>system:8,barrel:3,layer:4,module:8,x:32:-16,y:-16</id>  
-    </readout>
-  </readouts>
-
-  <plugins>
-  </plugins>
-
-  <fields>
-  </fields>
-</lccdd>
diff --git a/compact/ce_GEM.xml b/compact/ce_GEM.xml
deleted file mode 100644
index afac461d4c551252d9f7d99a2dcb6e05e5c1e3d8..0000000000000000000000000000000000000000
--- a/compact/ce_GEM.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<lccdd>
-
-  <comment> Electron endcap GEM tracking </comment>        
-
-  <define>
-    <comment>
-      ------------------
-      ce_GEM Parameters
-      ------------------
-    </comment>
-    <constant name="ce_GEM_rmin"            value="10.0 * cm"/> <comment> temporary number. Need beampipe radius  </comment>
-    <!--<constant name="ce_GEM_rmin"        value="0.0 * cm"/>-->
-    <constant name="ce_GEM_rmax"            value="HcalEndcapN_rmin + 0.0 * cm"/> <comment> temporary number to avoid overlaps  </comment>
-    <!--<constant name="ce_GEM_rmax"        value="45.0 * cm + 50.0 * cm"/>-->
-    <constant name="ce_GEM_length"          value="30.0 * cm"/>
-    <constant name="ce_GEM_x_pos"           value="0.0 * cm"/>
-    <constant name="ce_GEM_y_pos"           value="0.0 * cm"/>
-    <!--<constant name="ce_GEM_z_pos"           value="-Solenoid_length/2.0 + ce_GEM_length/2.0"/>-->
-    <constant name="ce_GEM_z_pos"           value="-EcalEndcapN_zmin - CrystalBox_z_length - ce_GEM_length/2.0"/>
-    <constant name="ce_GEM_layer"           value="8"/>
-    <constant name="ce_GEM_layer_thickness" value="1.0 * cm"/>
-  </define>
-
-  <limits>
-  </limits>
-
-  <regions>
-  </regions>
-
-  <display>
-  </display>
-
-  <detectors>
-    <detector id="ce_GEM_ID" name="ce_GEM" type="ce_GEM" readout="ce_GEM_Hits" vis="ce_GEMVis" insideTrackingVloume="true">
-      <dimensions rmin="ce_GEM_rmin" rmax="ce_GEM_rmax" length="ce_GEM_length"/>
-      <position x="ce_GEM_x_pos" y="ce_GEM_y_pos" z="ce_GEM_z_pos"/>
-      <layer repeat="ce_GEM_layer" vis="ce_GEM_layerVis">
-        <slice name="Ar10CO2_slice" material="Ar10CO2" thickness="ce_GEM_layer_thickness" sensitive="true"/>
-      </layer>
-    </detector>
-  </detectors>
-
-  <readouts>
-    <readout name="ce_GEM_Hits">
-      <segmentation type="CartesianGridXY" grid_size_x="1.0*mm" grid_size_y="1.0*mm" />
-      <id>system:8,layer:8,x:32:-16,y:-16</id>  
-    </readout>
-  </readouts>
-
-  <plugins>
-  </plugins>
-
-  <fields>
-  </fields>
-</lccdd>
diff --git a/compact/mm_tracker_barrel.xml b/compact/mm_tracker_barrel.xml
index 5430055e4795f06e35ce28336db2e7773a94675a..f78296b23ef391f53264bb3a7fb306fb25f18ea0 100644
--- a/compact/mm_tracker_barrel.xml
+++ b/compact/mm_tracker_barrel.xml
@@ -28,10 +28,8 @@
   <detectors>
     <detector id="MMTrackerBarrel_ID" name="MMTrackerBarrel" type="athena_MMTrackerBarrel" readout="MMTrackerBarrelHits">
       <module name="Module1" vis="AnlGold">
-        <module_envelope
-          rmin="TrackerBarrel_rmax"
-          length="MMTrackerBarrelLayer1_length"
-          thickness="MMTrackerBarrel_delta" phi="90*degree" />
+        <module_envelope rmin="TrackerBarrel_rmax" length="MMTrackerBarrelLayer1_length" thickness="MMTrackerBarrel_delta"
+          phi="90*degree" />
         <module_component thickness="1.0*mm" material="PEEK" sensitive="false">
           <position x="0" />
         </module_component>
diff --git a/compact/subsystem_views/README.md b/compact/subsystem_views/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..fd530e16924bf0a43c9bc2a876bd254e6b590c29
--- /dev/null
+++ b/compact/subsystem_views/README.md
@@ -0,0 +1,11 @@
+# subsytem_views
+
+These compact detector files are copies of the main `athena.xml` compact description file, modified to only show certain subsystems.
+
+To add or update a subsystem:
+
+1. Copy `athena.xml` to this directory (`compact/subsystem_views`) with the appropriate name.
+2. Remove all the undesired detectors from this xml file. **Do not modify any of the included xml files** -- only modify the top level xml file here.
+3. Check that that you have the desired color scheme (eg. `colors.xml`) and display attributes (eg. `display_detailed.xml`) included.
+
+These compact detector files should not be used for any real simulations or studies.
diff --git a/src/ce_GEM.cpp b/src/BackwardGEMTracker_geo.cpp
similarity index 100%
rename from src/ce_GEM.cpp
rename to src/BackwardGEMTracker_geo.cpp
diff --git a/src/CylinderTrackerBarrel_geo.cpp b/src/CylinderTrackerBarrel_geo.cpp
index 8c643ada6204f3da2206214567077b7298a1b6b2..27f701f628f8f97836819805decacb6c83400865 100644
--- a/src/CylinderTrackerBarrel_geo.cpp
+++ b/src/CylinderTrackerBarrel_geo.cpp
@@ -13,9 +13,9 @@ using namespace dd4hep::detail;
 
 /** A barrel tracker with a module that is curved (not flat).
  *
- *
+ * \ingroup tracking
  */
-static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector sens)
+static Ref_t CylinderTrackerBarrel_create_detector(Detector& description, xml_h e, SensitiveDetector sens)
 {
   typedef vector<PlacedVolume> Placements;
   xml_det_t                    x_det = e;
@@ -194,6 +194,6 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
 }
 
 // clang-format off
-DECLARE_DETELEMENT(athena_CylinderTrackerBarrel, create_detector)
-DECLARE_DETELEMENT(athena_MMTrackerBarrel, create_detector)
-DECLARE_DETELEMENT(athena_RWellTrackerBarrel, create_detector)
+DECLARE_DETELEMENT(athena_CylinderTrackerBarrel, CylinderTrackerBarrel_create_detector)
+DECLARE_DETELEMENT(athena_MMTrackerBarrel,       CylinderTrackerBarrel_create_detector)
+DECLARE_DETELEMENT(athena_RWellTrackerBarrel,    CylinderTrackerBarrel_create_detector)
diff --git a/src/DRich.cpp b/src/DRich_geo.cpp
similarity index 100%
rename from src/DRich.cpp
rename to src/DRich_geo.cpp
diff --git a/src/MRich.cpp b/src/MRich_geo.cpp
similarity index 100%
rename from src/MRich.cpp
rename to src/MRich_geo.cpp
diff --git a/src/ShashlikCalorimeter.cpp b/src/ShashlikCalorimeter_geo.cpp
similarity index 100%
rename from src/ShashlikCalorimeter.cpp
rename to src/ShashlikCalorimeter_geo.cpp
diff --git a/src/ref_SolenoidCoil_geo.cpp b/src/SolenoidCoil_geo.cpp
similarity index 100%
rename from src/ref_SolenoidCoil_geo.cpp
rename to src/SolenoidCoil_geo.cpp
diff --git a/src/allsilicon_support.cpp b/src/allsilicon_support.cpp
deleted file mode 100644
index 7d38f6290f951efa214302fe1184f071c1175b02..0000000000000000000000000000000000000000
--- a/src/allsilicon_support.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-#include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/OpticalSurfaces.h"
-#include "DD4hep/Printout.h"
-#include "DDRec/DetectorData.h"
-#include "DDRec/Surface.h"
-#include <XML/Helper.h>
-//////////////////////////////////
-// Support structure for ALl-silicon
-//////////////////////////////////
-
-using namespace std;
-using namespace dd4hep;
-
-// Info from
-// https://github.com/reynier0611/g4lblvtx/blob/master/source/AllSi_vtx_serv_2lyr_Detector.cc
-// TODO: this is quite incomplete, should probably wait for official word
-//       from he tracking WG
-
-static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
-{
-  xml_det_t x_det   = e;
-  string    detName = x_det.nameStr();
-  int       detID   = x_det.id();
-  bool      reflect = x_det.reflect();
-  const int sign    = reflect ? -1 : 1;
-
-  // second vertexing layer
-  std::vector<double> z_det   = {15 * cm, 20 * cm};
-  std::vector<double> rin_l2  = {5.48 * cm, 14.8 * cm};
-  std::vector<double> rout_l2 = {0, 0};
-
-  // first vertexing layer
-  std::vector<double> rin_l1  = {3.30 * cm, 14.36 * cm};
-  std::vector<double> rout_l1 = {0, 0};
-
-  const int nzplanes_l2 = z_det.size();
-  const int nzplanes_l1 = z_det.size();
-
-  for (int i = 0; i < nzplanes_l2; i++) {
-    rout_l2[i] = rin_l2[i] + 0.44;
-    z_det[i] *= sign / abs(sign);
-  }
-  for (int i = 0; i < nzplanes_l1; i++) {
-    rout_l1[i] = rin_l1[i] + 0.44;
-    z_det[i] *= sign / abs(sign);
-  }
-  // mother volume
-  std::vector<double> rin_mo  = rin_l1;
-  std::vector<double> rout_mo = rout_l2;
-
-  DetElement det(detName, detID);
-  Material   Vacuum = desc.material("Vacuum");
-  Polycone   empty_cone("empty_cone", 0.0, 360 * degree, z_det, rin_mo, rout_mo);
-  Volume     detVol("empty_cone", empty_cone, Vacuum);
-  detVol.setVisAttributes(desc.invisible());
-
-  Volume       motherVol = desc.pickMotherVolume(det);
-  Transform3D  tr(RotationZYX(0.0, 0.0, 0.0), Position(0.0, 0.0, 0.));
-  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
-  detPV.addPhysVolID("system", detID);
-  detPV.addPhysVolID("barrel", 1);
-  det.setPlacement(detPV);
-
-  Material Al       = desc.material("Al");
-  Material Graphite = desc.material("Graphite");
-
-  // cb_DIRC_bars_Logic.setVisAttributes(desc.visAttributes(x_det.visStr()));
-
-  Polycone polycone_l2("polycone_l2", 0, 360 * degree, z_det, rin_l2, rout_l2);
-  Volume   logical_l2("polycone_l2_logic", polycone_l2, Al);
-  logical_l2.setVisAttributes(desc.visAttributes(x_det.visStr()));
-  detVol.placeVolume(logical_l2, tr);
-  Polycone polycone_l1("polycone_l1", 0, 360 * degree, z_det, rin_l1, rout_l1);
-  Volume   logical_l1("polycone_l1_logic", polycone_l1, Al);
-  logical_l1.setVisAttributes(desc.visAttributes(x_det.visStr()));
-  detVol.placeVolume(logical_l1, tr);
-
-  return det;
-}
-
-DECLARE_DETELEMENT(allsilicon_support, createDetector)
diff --git a/src/cb_CTD_Si.cpp b/src/cb_CTD_Si.cpp
deleted file mode 100644
index 96c53cceb9cc2b235c9adae2f5dbb7cd0366f561..0000000000000000000000000000000000000000
--- a/src/cb_CTD_Si.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-#include <XML/Helper.h>
-#include "DDRec/Surface.h"
-#include "DDRec/DetectorData.h"
-#include "DD4hep/OpticalSurfaces.h"
-#include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
-//////////////////////////////////
-// Central Barrel Tracker Silicon
-//////////////////////////////////
-
-using namespace std;
-using namespace dd4hep;
-
-static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
-{
-  xml_det_t  x_det      = e;
-  string     detName    = x_det.nameStr();
-  int        detID      = x_det.id();
-
-  xml_dim_t  dim        = x_det.dimensions();
-  double     RIn        = dim.rmin();
-  double     ROut       = dim.rmax();
-  double     SizeZ      = dim.length();
-  double     SizeZCut   = dim.zmax();
-  double     SiLayerGap = dim.gap();
-
-  Material   Vacuum     = desc.material("Vacuum");
-
-  // Create Global Volume 
-  Tube cb_CTD_GVol_Solid(RIn, ROut, SizeZ / 2.0, 0., 360.0 * deg);
-  Volume detVol("cb_CTD_GVol_Logic", cb_CTD_GVol_Solid, Vacuum);
-  detVol.setVisAttributes(desc.visAttributes(x_det.visStr()));
-
-  // Construct Silicon Layers
-  xml_comp_t x_layer = x_det.child(_U(layer));
-  const int repeat   = x_layer.repeat();
-  
-  xml_comp_t x_slice = x_layer.child(_U(slice));
-  Material slice_mat = desc.material(x_slice.materialStr());
-  
-  double layerRIn[100];
-  double layerROut[100];
-  
-  // Loop over layers
-  for(int i = 0; i < repeat; i++) {
-    layerRIn[i]  = RIn + (SiLayerGap * i);
-    layerROut[i] = RIn + (0.01 + SiLayerGap * i);
-
-    if (layerROut[i] > ROut)
-      continue; 
-    
-    string logic_layer_name = detName + _toString(i, "_Logic_lay_%d");
-    if (i==7){logic_layer_name = detName + _toString(20, "_Logic_lay_%d");}
-    Volume layerVol(logic_layer_name,Tube(layerRIn[i], layerROut[i], SizeZ / 2.0, 0.0, 360.0 * deg), slice_mat);
-    layerVol.setVisAttributes(desc,x_layer.visStr());
-    sens.setType("tracker");
-    layerVol.setSensitiveDetector(sens);
-
-    Position     layer_pos = Position(0.0, 0.0, 0.0);
-    PlacedVolume layerPV = detVol.placeVolume(layerVol, layer_pos);
-    layerPV.addPhysVolID("layer", i+1);
-  }
-
-  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);
-  detPV.addPhysVolID("barrel", 1);
-  det.setPlacement(detPV);
-  return det;
-}
-
-DECLARE_DETELEMENT(cb_CTD_Si, createDetector)
diff --git a/src/cb_VTX_Barrel.cpp b/src/cb_VTX_Barrel.cpp
deleted file mode 100644
index 23b27c222ef56d97051f4205a08881dd5a37d8d0..0000000000000000000000000000000000000000
--- a/src/cb_VTX_Barrel.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-#include <XML/Helper.h>
-#include "DDRec/Surface.h"
-#include "DDRec/DetectorData.h"
-#include "DD4hep/OpticalSurfaces.h"
-#include "DD4hep/DetFactoryHelper.h"
-#include "DD4hep/Printout.h"
-//////////////////////////////////
-// Central Barrel Vertex Detector
-//////////////////////////////////
-
-using namespace std;
-using namespace dd4hep;
-
-static Ref_t createDetector(Detector& desc, xml_h e, SensitiveDetector sens)
-{
-  xml_det_t  x_det      = e;
-  string     detName    = x_det.nameStr();
-  int        detID      = x_det.id();
-
-  xml_dim_t  dim        = x_det.dimensions();
-  double     RIn        = dim.rmin();
-  double     ROut       = dim.rmax();
-  double     SizeZ      = dim.length();
-
-  xml_dim_t  pos        = x_det.position();
-
-  Material   Vacuum     = desc.material("Vacuum");
-
-  // Create Global Volume 
-  Tube cb_VTX_Barrel_GVol_Solid(RIn, ROut, SizeZ / 2.0, 0., 360.0 * deg);
-  Volume detVol("cb_VTX_Barrel_GVol_Logic", cb_VTX_Barrel_GVol_Solid, Vacuum);
-  detVol.setVisAttributes(desc.visAttributes(x_det.visStr()));
-
-  //////////////////
-  // Barrel Ladder
-  //////////////////
-  xml_comp_t x_layer = x_det.child(_U(layer));
-  const int repeat   = x_layer.repeat();
-  
-  xml_comp_t x_slice = x_layer.child(_U(slice));
-  Material slice_mat = desc.material(x_slice.materialStr());
-
-  double x = 0.0 * cm;
-  double y = 0.0 * cm;
-  double z = 0.0 * cm;
-  int FDIV = 0;
-  double dR = 0.0;
-  double length = 0.0;
-  double phi = 0.0;
-  // Ladder Layer Parameters
-  double lay_Dx[6];
-  double lay_Dy[6];
-  double lay_Dz[6];
-  double lay_Rin[6];
-  lay_Dx[0] = 0.050 * mm; lay_Dy[0] = 1.0 * cm; lay_Dz[0] = 10.0 * cm; lay_Rin[0] = 3.5 * cm;
-  lay_Dx[1] = 0.050 * mm; lay_Dy[1] = 1.0 * cm; lay_Dz[1] = 11.0 * cm; lay_Rin[1] = 4.5 * cm;
-  lay_Dx[2] = 0.150 * mm; lay_Dy[2] = 2.0 * cm; lay_Dz[2] = 18.0 * cm; lay_Rin[2] = 6.5 * cm;
-  lay_Dx[3] = 0.150 * mm; lay_Dy[3] = 2.0 * cm; lay_Dz[3] = 24.0 * cm; lay_Rin[3] = 10.5 * cm;
-  lay_Dx[4] = 0.150 * mm; lay_Dy[4] = 3.0 * cm; lay_Dz[4] = 36.0 * cm; lay_Rin[4] = 13.5 * cm;
-  lay_Dx[5] = 0.150 * mm; lay_Dy[5] = 3.0 * cm; lay_Dz[5] = 48.0 * cm; lay_Rin[5] = 15.5 * cm;
-
-  int i_layer = 0;
-  int i_module = 0;
-  // Loop over layers
-  for(int i = 0; i < repeat; i++) {
-    double cb_VTX_Barrel_ladder_DZ = lay_Dz[i];
-    double cb_VTX_Barrel_ladder_DY = lay_Dy[i];
-    double cb_VTX_Barrel_ladder_Thickness = lay_Dx[i];
-    dR = lay_Rin[i]; 
-    length = 2.0 * 3.1415 * dR;
-    int laddersCount = length / cb_VTX_Barrel_ladder_DY;
-
-    for (int i = 0; i < 2; i++) {
-      double LN = cb_VTX_Barrel_ladder_DY * laddersCount;
-      double LN1 = cb_VTX_Barrel_ladder_DY * (laddersCount + 1.0 + i);
-
-      if (LN/LN1 > 0.8)
-        laddersCount = laddersCount + 1;
-    }
-
-    double cb_VTX_Barrel_ladder_deltaphi = 2.0 * 3.1415926 / laddersCount;
-
-    string ladderBoxName = detName + _toString(i, "_ladder_Solid_%d");
-    string ladderName = detName + _toString(i, "_ladder_Logic_%d");
-    Volume ladderVol(ladderName, Box(cb_VTX_Barrel_ladder_Thickness * 0.5, cb_VTX_Barrel_ladder_DY * 0.5, cb_VTX_Barrel_ladder_DZ * 0.5), slice_mat);
-    ladderVol.setVisAttributes(desc,x_layer.visStr());
-    sens.setType("tracker");
-    ladderVol.setSensitiveDetector(sens);
-    i_layer++;
-
-    for (int ia = 0; ia < laddersCount; ia++) {
-      phi = (ia * (cb_VTX_Barrel_ladder_deltaphi));
-      x = - dR * cos(phi);
-      y = - dR * sin(phi);
-
-      RotationZYX ladder_rot = RotationZYX(cb_VTX_Barrel_ladder_deltaphi * ia, 0.0, 0.0);
-      Position ladder_pos = Position(x, y, z);
-      string ladderName = detName + _toString(i, "_ladder_Phys_%d") + _toString(ia, "_%d"); 
-      PlacedVolume ladderPV = detVol.placeVolume(ladderVol, Transform3D(ladder_rot, ladder_pos));
-      i_module++;
-      ladderPV.addPhysVolID("layer", i_layer).addPhysVolID("module", i_module);
-    }
-  }
-
-  // TODO: Pixels
-
-  DetElement   det(detName, detID);
-  Volume       motherVol = desc.pickMotherVolume(det);
-  Transform3D  tr(RotationZYX(0.0, 0.0, 0.0), Position(0.0, 0.0, pos.z()));
-  PlacedVolume detPV = motherVol.placeVolume(detVol, tr);
-  detPV.addPhysVolID("system", detID);
-  detPV.addPhysVolID("barrel", 1);
-  det.setPlacement(detPV);
-  return det;
-}
-
-DECLARE_DETELEMENT(cb_VTX_Barrel, createDetector)