diff --git a/DDG4/include/DDG4/Geant4EventAction.h b/DDG4/include/DDG4/Geant4EventAction.h
index b651e34ecaf148c760c1aaf4d3b1ad338af895ba..e8d3a78e088e07a455ebb7d539dd607ffe963b5e 100644
--- a/DDG4/include/DDG4/Geant4EventAction.h
+++ b/DDG4/include/DDG4/Geant4EventAction.h
@@ -53,9 +53,15 @@ namespace DD4hep {
     class Geant4EventAction : public Geant4Action {
     public:
       typedef Geant4SharedEventAction shared_type;
-    public:
+    protected:
+      /// Inhibit copy constructor
+      Geant4EventAction() = default;
       /// Inhibit copy constructor
       Geant4EventAction(const Geant4EventAction& copy) = delete;
+      /// Inhibit assignment operator
+      Geant4EventAction& operator=(const Geant4EventAction& copy) = delete;
+
+    public:
       /// Standard constructor
       Geant4EventAction(Geant4Context* context, const std::string& nam);
       /// Default destructor
@@ -82,10 +88,17 @@ namespace DD4hep {
     class Geant4SharedEventAction : public Geant4EventAction {
     protected:
       /// Reference to the shared action
-      Geant4EventAction* m_action;
-    public:
+      Geant4EventAction* m_action = 0;
+
+    protected:
+      /// Inhibit copy constructor
+      Geant4SharedEventAction() = default;
       /// Inhibit copy constructor
       Geant4SharedEventAction(const Geant4SharedEventAction& copy) = delete;
+      /// Inhibit assignment operator
+      Geant4SharedEventAction& operator=(const Geant4SharedEventAction& copy) = delete;
+
+    public:
       /// Standard constructor
       Geant4SharedEventAction(Geant4Context* context, const std::string& nam);
       /// Default destructor
@@ -126,9 +139,15 @@ namespace DD4hep {
       /// The list of action objects to be called
       Actors<Geant4EventAction> m_actors;
 
-    public:
+    protected:
+      /// Inhibit copy constructor
+      Geant4EventActionSequence() = default;
       /// Inhibit copy constructor
       Geant4EventActionSequence(const Geant4EventActionSequence& copy) = delete;
+      /// Inhibit assignment operator
+      Geant4EventActionSequence& operator=(const Geant4EventActionSequence& copy) = delete;
+
+    public:
       /// Standard constructor
       Geant4EventActionSequence(Geant4Context* context, const std::string& nam);
       /// Default destructor
diff --git a/DDG4/include/DDG4/Geant4RunAction.h b/DDG4/include/DDG4/Geant4RunAction.h
index 91ff3f4b0a5a893e939b322d352597c18247a7f1..d979d585236e59084cba6b5a0abc0e7135e7f240 100644
--- a/DDG4/include/DDG4/Geant4RunAction.h
+++ b/DDG4/include/DDG4/Geant4RunAction.h
@@ -45,11 +45,16 @@ namespace DD4hep {
     class Geant4RunAction: public Geant4Action {
     public:
       typedef Geant4SharedRunAction shared_type;
-    public:
+
+    protected:
       /// Inhibit default constructor
-      Geant4RunAction() = delete;
+      Geant4RunAction() = default;
       /// Inhibit copy constructor
       Geant4RunAction(const Geant4RunAction& copy) = delete;
+      /// Inhibit assignment operator
+      Geant4RunAction& operator=(const Geant4RunAction& copy) = delete;
+
+    public:
       /// Standard constructor
       Geant4RunAction(Geant4Context* context, const std::string& nam);
       /// Default destructor
@@ -76,12 +81,18 @@ namespace DD4hep {
     class Geant4SharedRunAction : public Geant4RunAction {
     protected:
       /// Reference to the shared action
-      Geant4RunAction* m_action;
-    public:
-      /// Inhibit default constructor
-      Geant4SharedRunAction() = delete;
+      Geant4RunAction* m_action = 0;
+
+    protected:
       /// Inhibit default constructor
+      Geant4SharedRunAction() = default;
+      /// Inhibit copy constructor
       Geant4SharedRunAction(const Geant4SharedRunAction& copy) = delete;
+      /// Inhibit assignment operator
+      Geant4SharedRunAction& operator=(const Geant4SharedRunAction& copy) = delete;
+
+    public:
+      /// Inhibit default constructor
       /// Standard constructor
       Geant4SharedRunAction(Geant4Context* context, const std::string& nam);
       /// Default destructor
@@ -112,6 +123,7 @@ namespace DD4hep {
      *  \ingroup DD4HEP_SIMULATION
      */
     class Geant4RunActionSequence: public Geant4Action {
+
     protected:
       /// Callback sequence for begin-run action
       CallbackSequence m_begin;
@@ -119,11 +131,16 @@ namespace DD4hep {
       CallbackSequence m_end;
       /// The list of action objects to be called
       Actors<Geant4RunAction> m_actors;
-    public:
+
+    protected:
       /// Inhibit default constructor
-      Geant4RunActionSequence() = delete;
+      Geant4RunActionSequence() = default;
       /// Inhibit copy constructor
       Geant4RunActionSequence(const Geant4RunActionSequence& copy) = delete;
+      /// Inhibit assignment operator
+      Geant4RunActionSequence& operator=(const Geant4RunActionSequence& copy) = delete;
+
+    public:
       /// Standard constructor
       Geant4RunActionSequence(Geant4Context* context, const std::string& nam);
       /// Default destructor