diff --git a/DDCore/include/DD4hep/LCDD.h b/DDCore/include/DD4hep/LCDD.h
index a73b1fc746349a7e8aef928b2f85199c00469a7e..584bb086fe416485d43b8ce03bf97b608766726a 100644
--- a/DDCore/include/DD4hep/LCDD.h
+++ b/DDCore/include/DD4hep/LCDD.h
@@ -71,11 +71,14 @@ namespace DD4hep {
       /// Return handle to the world volume containing the volume with the tracking devices
       virtual Volume   trackingVolume() const = 0;
 
+      /// Accessor to the map of header entries
+      virtual Header header()  const = 0;
+      /// Accessor to the header entry
+      virtual void setHeader(Header h) = 0;
+
       /// Return handle to the combined electromagentic field description.
       virtual OverlayedField field() const = 0;
 
-      /// Accessor to the map of header entries
-      virtual const HandleMap& header()  const = 0;
       /// Accessor to the map of constants
       virtual const HandleMap& constants()  const = 0;
       /// Accessor to the map of region settings
@@ -180,11 +183,14 @@ namespace DD4hep {
       virtual void fromXML(const std::string& fname) = 0;
       /// 
       virtual void dump() const = 0;
+      /// Manipulate geometry using facroy converter
+      virtual void apply(const char* factory, int argc, char** argv) = 0;
 
       ///---Factory method-------
       static LCDD& getInstance(void);
     };
 
+
     /*
      *   The following are convenience implementations to access constants by type.
      *   I do not think this violates the interface approach, but it is so much