diff --git a/FullSimLight/CMakeLists.txt b/FullSimLight/CMakeLists.txt
index 5d3624d9720ad98eb7cd5aa31560b802950f5cae..5689c483a9f5db8bd814c7bf5930e46e35d48d7e 100644
--- a/FullSimLight/CMakeLists.txt
+++ b/FullSimLight/CMakeLists.txt
@@ -295,7 +295,12 @@ install( TARGETS FullSimLight
 install(FILES include/FSLSensitiveDetectorPlugin.h 
               include/MagFieldPlugin.h 
 	      include/FSLUserActionPlugin.h
-	      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/FullSimLight
+              include/FSLUserRunActionPlugin.h
+              include/FSLUserEventActionPlugin.h
+              include/FSLUserSteppingActionPlugin.h
+              include/FSLUserTrackingActionPlugin.h
+              include/FSLUserStackingActionPlugin.h
+	          DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/FullSimLight
   COMPONENT Development )
 
 
diff --git a/FullSimLight/include/FSLUserEventActionPlugin.h b/FullSimLight/include/FSLUserEventActionPlugin.h
new file mode 100644
index 0000000000000000000000000000000000000000..6e115304e7282cac93bdb1588e761cfd7ce11fd3
--- /dev/null
+++ b/FullSimLight/include/FSLUserEventActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSEREVENTACTIONPLUGIN_H_
+#define _FSLUSEREVENTACTIONPLUGIN_H_
+class G4UserEventAction;
+class FSLUserEventActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserEventActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserEventActionPlugin()=default;
+  
+  virtual G4UserEventAction *getUserEventAction() const=0;
+  
+ private:
+  
+  FSLUserEventActionPlugin (const FSLUserEventActionPlugin &)=delete;
+
+  FSLUserEventActionPlugin & operator=(const FSLUserEventActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserRunActionPlugin.h b/FullSimLight/include/FSLUserRunActionPlugin.h
new file mode 100644
index 0000000000000000000000000000000000000000..e7627e26f57e7f0f2011e0e73fe195c6f4b2027a
--- /dev/null
+++ b/FullSimLight/include/FSLUserRunActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERRUNACTIONPLUGIN_H_
+#define _FSLUSERRUNACTIONPLUGIN_H_
+class G4UserRunAction;
+class FSLUserRunActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserRunActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserRunActionPlugin()=default;
+  
+  virtual G4UserRunAction *getUserRunAction() const=0;
+  
+ private:
+  
+  FSLUserRunActionPlugin (const FSLUserRunActionPlugin &)=delete;
+
+  FSLUserRunActionPlugin & operator=(const FSLUserRunActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserStackingActionPlugin.h b/FullSimLight/include/FSLUserStackingActionPlugin.h
new file mode 100644
index 0000000000000000000000000000000000000000..f0088121b7666468a8a29e8dad2814931353b632
--- /dev/null
+++ b/FullSimLight/include/FSLUserStackingActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERSTACKINGACTIONPLUGIN_H_
+#define _FSLUSERSTACKINGACTIONPLUGIN_H_
+class G4UserStackingAction;
+class FSLUserStackingActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserStackingActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserStackingActionPlugin()=default;
+  
+  virtual G4UserStackingAction *getUserStackingAction() const=0;
+  
+ private:
+  
+  FSLUserStackingActionPlugin (const FSLUserStackingActionPlugin &)=delete;
+
+  FSLUserStackingActionPlugin & operator=(const FSLUserStackingActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserSteppingActionPlugin.h b/FullSimLight/include/FSLUserSteppingActionPlugin.h
new file mode 100644
index 0000000000000000000000000000000000000000..90292df8d541af5400931f2edcfb44d4d286a149
--- /dev/null
+++ b/FullSimLight/include/FSLUserSteppingActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERSTEPPINGACTIONPLUGIN_H_
+#define _FSLUSERSTEPPINGACTIONPLUGIN_H_
+class G4UserSteppingAction;
+class FSLUserSteppingActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserSteppingActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserSteppingActionPlugin()=default;
+  
+  virtual G4UserSteppingAction *getUserSteppingAction() const=0;
+  
+ private:
+  
+  FSLUserSteppingActionPlugin (const FSLUserSteppingActionPlugin &)=delete;
+
+  FSLUserSteppingActionPlugin & operator=(const FSLUserSteppingActionPlugin &)=delete;
+};
+
+
+#endif
diff --git a/FullSimLight/include/FSLUserTrackingActionPlugin.h b/FullSimLight/include/FSLUserTrackingActionPlugin.h
new file mode 100644
index 0000000000000000000000000000000000000000..51a8bd0ed51ff73c764878db53c310684b5a9745
--- /dev/null
+++ b/FullSimLight/include/FSLUserTrackingActionPlugin.h
@@ -0,0 +1,24 @@
+#ifndef _FSLUSERTRACKINGACTIONPLUGIN_H_
+#define _FSLUSERTRACKINGACTIONPLUGIN_H_
+class G4UserTrackingAction;
+class FSLUserTrackingActionPlugin {
+ 
+ public:
+
+  // Constructor
+  FSLUserTrackingActionPlugin()=default;
+  
+  // Destructor
+  virtual ~FSLUserTrackingActionPlugin()=default;
+  
+  virtual G4UserTrackingAction *getUserTrackingAction() const=0;
+  
+ private:
+  
+  FSLUserTrackingActionPlugin (const FSLUserTrackingActionPlugin &)=delete;
+
+  FSLUserTrackingActionPlugin & operator=(const FSLUserTrackingActionPlugin &)=delete;
+};
+
+
+#endif