diff --git a/README.md b/README.md
index 2a87aa71a43ec648c5c91f7d2f32f44f73beed9f..b0a9b74307c8f6dacd1973c06768a253d9eef8e0 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,12 @@
-# moodle-tool_cleanupcourses
+# Course Life Cycle (moodle-tool_lifecycle)
 
 [WIP] This module is currently in development.
-The goal is to create a modular plugin, which allows the deprovision of moodle courses. 
-Deprovision therefore means the cleanup and deletion of courses after they are no longer used.
+The goal is to create a modular plugin, which allows the to execute recurring tasks within moodle associated with courses. 
+Possible use cases are (not limited to):
+   - Deleting courses at end of life (including asking teachers for permission).
+   - Doing a rollover at the end of a semester.
+   - Automatically setting an end date for courses.
+   
 To be adaptable to the needs of different institutions the plugin will provide multiple subplugin types.
 Those can be adjusted to the needs of your institution.
-For more information please have a look at the [wiki](https://github.com/learnweb/moodle-tool_cleanupcourses/wiki).
+For more information please have a look at the [wiki](https://github.com/learnweb/moodle-tool_lifecycle/wiki).
diff --git a/activeprocesses.php b/activeprocesses.php
index 65d776f8feed68355317551919240e238ad2c260..c2a227af280d7bb3a98215da3ac6fa624d91e20e 100644
--- a/activeprocesses.php
+++ b/activeprocesses.php
@@ -17,7 +17,7 @@
 /**
  * Display the list of active processes
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -28,16 +28,16 @@ $PAGE->set_context(context_system::instance());
 require_login(null, false);
 require_capability('moodle/site:config', context_system::instance());
 
-admin_externalpage_setup('tool_cleanupcourses_activeprocesses');
+admin_externalpage_setup('tool_lifecycle_activeprocesses');
 
-$PAGE->set_url(new \moodle_url('/admin/tool/cleanupcourses/activeprocesses.php'));
+$PAGE->set_url(new \moodle_url('/admin/tool/lifecycle/activeprocesses.php'));
 
-$table = new tool_cleanupcourses\table\active_processes_table('tool_cleanupcourses_active_processes');
+$table = new tool_lifecycle\table\active_processes_table('tool_lifecycle_active_processes');
 
-$PAGE->set_title(get_string('active_processes_list_header', 'tool_cleanupcourses'));
-$PAGE->set_heading(get_string('active_processes_list_header', 'tool_cleanupcourses'));
+$PAGE->set_title(get_string('active_processes_list_header', 'tool_lifecycle'));
+$PAGE->set_heading(get_string('active_processes_list_header', 'tool_lifecycle'));
 
-$renderer = $PAGE->get_renderer('tool_cleanupcourses');
+$renderer = $PAGE->get_renderer('tool_lifecycle');
 
 echo $renderer->header();
 
diff --git a/adminlib.php b/adminlib.php
index 1258127a783307ff97b0a730ebaad34dbb933c24..234649d793f161c8ede48198415a888c2b3e5f83 100644
--- a/adminlib.php
+++ b/adminlib.php
@@ -14,22 +14,22 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses;
-
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\form\form_workflow_instance;
-use tool_cleanupcourses\form\form_step_instance;
-use tool_cleanupcourses\form\form_trigger_instance;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\entity\workflow;
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\table\active_manual_workflows_table;
-use tool_cleanupcourses\table\workflow_definition_table;
-use tool_cleanupcourses\table\active_automatic_workflows_table;
-use tool_cleanupcourses\table\step_table;
+namespace tool_lifecycle;
+
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\form\form_workflow_instance;
+use tool_lifecycle\form\form_step_instance;
+use tool_lifecycle\form\form_trigger_instance;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\entity\workflow;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\table\active_manual_workflows_table;
+use tool_lifecycle\table\workflow_definition_table;
+use tool_lifecycle\table\active_automatic_workflows_table;
+use tool_lifecycle\table\step_table;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -37,9 +37,9 @@ require_once($CFG->libdir . '/adminlib.php');
 require_once(__DIR__ . '/lib.php');
 
 /**
- * External Page for showing active cleanup processes
+ * External Page for showing active lifecycle processes
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -51,9 +51,9 @@ class admin_page_active_processes extends \admin_externalpage {
      *
      */
     public function __construct() {
-        $url = new \moodle_url('/admin/tool/cleanupcourses/activeprocesses.php');
-        parent::__construct('tool_cleanupcourses_activeprocesses',
-            get_string('active_processes_list_header', 'tool_cleanupcourses'),
+        $url = new \moodle_url('/admin/tool/lifecycle/activeprocesses.php');
+        parent::__construct('tool_lifecycle_activeprocesses',
+            get_string('active_processes_list_header', 'tool_lifecycle'),
             $url);
     }
 }
@@ -61,7 +61,7 @@ class admin_page_active_processes extends \admin_externalpage {
 /**
  * External Page for showing course backups
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -73,9 +73,9 @@ class admin_page_course_backups extends \admin_externalpage {
      *
      */
     public function __construct() {
-        $url = new \moodle_url('/admin/tool/cleanupcourses/coursebackups.php');
-        parent::__construct('tool_cleanupcourses_coursebackups',
-            get_string('course_backups_list_header', 'tool_cleanupcourses'),
+        $url = new \moodle_url('/admin/tool/lifecycle/coursebackups.php');
+        parent::__construct('tool_lifecycle_coursebackups',
+            get_string('course_backups_list_header', 'tool_lifecycle'),
             $url);
     }
 }
@@ -83,7 +83,7 @@ class admin_page_course_backups extends \admin_externalpage {
 /**
  * External Page for defining settings for subplugins
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -95,9 +95,9 @@ class admin_page_sublugins extends \admin_externalpage {
      *
      */
     public function __construct() {
-        $url = new \moodle_url('/admin/tool/cleanupcourses/adminsettings.php');
-        parent::__construct('tool_cleanupcourses_adminsettings',
-            get_string('adminsettings_heading', 'tool_cleanupcourses'),
+        $url = new \moodle_url('/admin/tool/lifecycle/adminsettings.php');
+        parent::__construct('tool_lifecycle_adminsettings',
+            get_string('adminsettings_heading', 'tool_lifecycle'),
             $url);
     }
 }
@@ -105,7 +105,7 @@ class admin_page_sublugins extends \admin_externalpage {
 /**
  * Class that handles the display and configuration the settings.
  *
- * @package   tool_cleanupcourses
+ * @package   tool_lifecycle
  * @copyright 2015 Tobias Reischmann
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -119,7 +119,7 @@ class admin_settings {
      */
     public function __construct() {
         global $PAGE;
-        $this->pageurl = new \moodle_url('/admin/tool/cleanupcourses/adminsettings.php');
+        $this->pageurl = new \moodle_url('/admin/tool/lifecycle/adminsettings.php');
         $PAGE->set_url($this->pageurl);
     }
 
@@ -132,28 +132,28 @@ class admin_settings {
         // Set up the table.
         $this->view_header();
 
-        echo $OUTPUT->heading(get_string('active_automatic_workflows_heading', 'tool_cleanupcourses'));
+        echo $OUTPUT->heading(get_string('active_automatic_workflows_heading', 'tool_lifecycle'));
 
-        $table = new active_automatic_workflows_table('tool_cleanupcourses_active_automatic_workflows');
-        echo $OUTPUT->box_start("cleanupcourses-enable-overflow cleanupcourses-table");
+        $table = new active_automatic_workflows_table('tool_lifecycle_active_automatic_workflows');
+        echo $OUTPUT->box_start("lifecycle-enable-overflow lifecycle-table");
         $table->out(10, false);
         echo $OUTPUT->box_end();
 
-        echo $OUTPUT->heading(get_string('active_manual_workflows_heading', 'tool_cleanupcourses'));
+        echo $OUTPUT->heading(get_string('active_manual_workflows_heading', 'tool_lifecycle'));
 
-        $table = new active_manual_workflows_table('tool_cleanupcourses_manual_workflows');
-        echo $OUTPUT->box_start("cleanupcourses-enable-overflow cleanupcourses-table");
+        $table = new active_manual_workflows_table('tool_lifecycle_manual_workflows');
+        echo $OUTPUT->box_start("lifecycle-enable-overflow lifecycle-table");
         $table->out(10, false);
         echo $OUTPUT->box_end();
 
-        echo $OUTPUT->heading(get_string('workflow_definition_heading', 'tool_cleanupcourses'));
+        echo $OUTPUT->heading(get_string('workflow_definition_heading', 'tool_lifecycle'));
 
         echo $OUTPUT->single_button(new \moodle_url($PAGE->url,
             array('action' => ACTION_WORKFLOW_INSTANCE_FROM, 'sesskey' => sesskey())),
-            get_string('add_workflow', 'tool_cleanupcourses'));
+            get_string('add_workflow', 'tool_lifecycle'));
 
-        $table = new workflow_definition_table('tool_cleanupcourses_workflow_definitions');
-        echo $OUTPUT->box_start("cleanupcourses-enable-overflow cleanupcourses-table");
+        $table = new workflow_definition_table('tool_lifecycle_workflow_definitions');
+        echo $OUTPUT->box_start("lifecycle-enable-overflow lifecycle-table");
         $table->out(10, false);
         echo $OUTPUT->box_end();
 
@@ -170,7 +170,7 @@ class admin_settings {
         // Set up the table.
         $this->view_header();
 
-        echo $OUTPUT->heading(get_string('adminsettings_edit_workflow_definition_heading', 'tool_cleanupcourses'));
+        echo $OUTPUT->heading(get_string('adminsettings_edit_workflow_definition_heading', 'tool_lifecycle'));
 
         echo $form->render();
 
@@ -183,7 +183,7 @@ class admin_settings {
      * @throws \moodle_exception
      */
     private function view_workflow_details($workflowid) {
-        $url = new \moodle_url('/admin/tool/cleanupcourses/workflowsettings.php',
+        $url = new \moodle_url('/admin/tool/lifecycle/workflowsettings.php',
             array('workflowid' => $workflowid, 'sesskey' => sesskey()));
         redirect($url);
     }
@@ -223,7 +223,7 @@ class admin_settings {
         $this->check_permissions();
 
         // Has to be called before moodleform is created!
-        admin_externalpage_setup('tool_cleanupcourses_adminsettings');
+        admin_externalpage_setup('tool_lifecycle_adminsettings');
 
         workflow_manager::handle_action($action, $workflowid);
 
@@ -258,7 +258,7 @@ class admin_settings {
 /**
  * Class that handles the display and configuration of a workflow.
  *
- * @package   tool_cleanupcourses
+ * @package   tool_lifecycle
  * @copyright 2015 Tobias Reischmann
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -277,8 +277,8 @@ class workflow_settings {
     public function __construct($workflowid) {
         global $PAGE;
         // Has to be called before moodleform is created!
-        admin_externalpage_setup('tool_cleanupcourses_adminsettings');
-        $this->pageurl = new \moodle_url('/admin/tool/cleanupcourses/workflowsettings.php');
+        admin_externalpage_setup('tool_lifecycle_adminsettings');
+        $this->pageurl = new \moodle_url('/admin/tool/lifecycle/workflowsettings.php');
         $PAGE->set_url($this->pageurl);
         $this->workflowid = $workflowid;
     }
@@ -292,18 +292,18 @@ class workflow_settings {
         // Set up the table.
         $this->view_header();
 
-        echo $OUTPUT->heading(get_string('adminsettings_workflow_definition_steps_heading', 'tool_cleanupcourses'));
+        echo $OUTPUT->heading(get_string('adminsettings_workflow_definition_steps_heading', 'tool_lifecycle'));
 
         if (!workflow_manager::is_active($this->workflowid)) {
             $steps = step_manager::get_step_types();
             echo $OUTPUT->single_select(new \moodle_url($PAGE->url,
                 array('action' => ACTION_STEP_INSTANCE_FORM, 'sesskey' => sesskey(), 'workflowid' => $this->workflowid)),
-                'subpluginname', $steps, '', array('' => get_string('add_new_step_instance', 'tool_cleanupcourses')));
+                'subpluginname', $steps, '', array('' => get_string('add_new_step_instance', 'tool_lifecycle')));
         }
-        echo $OUTPUT->single_button( new \moodle_url('/admin/tool/cleanupcourses/adminsettings.php'),
+        echo $OUTPUT->single_button( new \moodle_url('/admin/tool/lifecycle/adminsettings.php'),
             get_string('back'));
 
-        $table = new step_table('tool_cleanupcourses_workflows', $this->workflowid);
+        $table = new step_table('tool_lifecycle_workflows', $this->workflowid);
         $table->out(50, false);
 
         $this->view_footer();
@@ -316,7 +316,7 @@ class workflow_settings {
     private function view_step_instance_form($form) {
         $workflow = workflow_manager::get_workflow($this->workflowid);
         $this->view_instance_form($form,
-            get_string('adminsettings_edit_step_instance_heading', 'tool_cleanupcourses',
+            get_string('adminsettings_edit_step_instance_heading', 'tool_lifecycle',
                 $workflow->title));
     }
 
@@ -327,7 +327,7 @@ class workflow_settings {
     private function view_trigger_instance_form($form) {
         $workflow = workflow_manager::get_workflow($this->workflowid);
         $this->view_instance_form($form,
-            get_string('adminsettings_edit_trigger_instance_heading', 'tool_cleanupcourses',
+            get_string('adminsettings_edit_trigger_instance_heading', 'tool_lifecycle',
                 $workflow->title));
     }
 
@@ -436,7 +436,7 @@ class workflow_settings {
                 // In case the workflow is active, we do not allow changes to the steps or trigger.
                 if (workflow_manager::is_active($this->workflowid)) {
                     echo $OUTPUT->notification(
-                        get_string('active_workflow_not_changeable', 'tool_cleanupcourses'),
+                        get_string('active_workflow_not_changeable', 'tool_lifecycle'),
                         'warning');
                 } else {
                     if (!empty($data->id)) {
@@ -489,7 +489,7 @@ class workflow_settings {
             // In case the workflow is active, we do not allow changes to the steps or trigger.
             if (workflow_manager::is_active($this->workflowid)) {
                 echo $OUTPUT->notification(
-                    get_string('active_workflow_not_changeable', 'tool_cleanupcourses'),
+                    get_string('active_workflow_not_changeable', 'tool_lifecycle'),
                     'warning');
             } else {
                 if (!empty($data->id)) {
diff --git a/adminsettings.php b/adminsettings.php
index 5e8d29478513aa248bad4f8a185e7fd99875cb31..cbbc36a6afb74ebcc75d5114b5aada6d83d84a3f 100644
--- a/adminsettings.php
+++ b/adminsettings.php
@@ -17,7 +17,7 @@
 /**
  * Displays the tables of active and inactive workflow definitions and handles all action associated with it.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -29,7 +29,7 @@ require_login(null, false);
 require_capability('moodle/site:config', context_system::instance());
 
 // Create the class for this controller.
-$adminsettings = new tool_cleanupcourses\admin_settings();
+$adminsettings = new tool_lifecycle\admin_settings();
 
 // Execute the controller.
 $adminsettings->execute(optional_param('action', null, PARAM_TEXT),
diff --git a/classes/entity/process.php b/classes/entity/process.php
index c0e5a97510b3f9f0df566911c6679fc7d45cac2b..a0ce049f5913d54088677bc808ef67c9bdd614bb 100644
--- a/classes/entity/process.php
+++ b/classes/entity/process.php
@@ -14,14 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\entity;
+namespace tool_lifecycle\entity;
 
 defined('MOODLE_INTERNAL') || die();
 
 /**
- * Cleanup Course Process class
+ * Life Cycle Process class
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -60,7 +60,7 @@ class process {
     }
 
     /**
-     * Creates a Cleanup Course Process from a db record.
+     * Creates a Life Cycle Process from a db record.
      * @param $record
      * @return process
      */
diff --git a/classes/entity/step_subplugin.php b/classes/entity/step_subplugin.php
index 38b7c6141ee6a7c61991aa26989d39d20c768339..2b5871cdea1cae8f45afc23bd815259c2da304d2 100644
--- a/classes/entity/step_subplugin.php
+++ b/classes/entity/step_subplugin.php
@@ -14,14 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\entity;
+namespace tool_lifecycle\entity;
 
 defined('MOODLE_INTERNAL') || die();
 
 /**
  * Subplugin class
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
diff --git a/classes/entity/subplugin.php b/classes/entity/subplugin.php
index 2a253bb560e7f84ba6467df26a852bbfe0ae6d50..f2f731bb11705d7126aa31c37a6d2fbdf11cfe44 100644
--- a/classes/entity/subplugin.php
+++ b/classes/entity/subplugin.php
@@ -14,14 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\entity;
+namespace tool_lifecycle\entity;
 
 defined('MOODLE_INTERNAL') || die();
 
 /**
  * Subplugin class
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
diff --git a/classes/entity/trigger_subplugin.php b/classes/entity/trigger_subplugin.php
index 3b49b761ea07cb725a87604b9dd64e7440972cce..fe3f89cbe1cef0c86a43edf2debb299e84f4f768 100644
--- a/classes/entity/trigger_subplugin.php
+++ b/classes/entity/trigger_subplugin.php
@@ -14,14 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\entity;
+namespace tool_lifecycle\entity;
 
 defined('MOODLE_INTERNAL') || die();
 
 /**
  * Trigger subplugin class
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
diff --git a/classes/entity/workflow.php b/classes/entity/workflow.php
index b85002760be6a2c971b4614323127fd1a66f6864..3858c0347e093ba83228574e6fc914994c47b982 100644
--- a/classes/entity/workflow.php
+++ b/classes/entity/workflow.php
@@ -14,14 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\entity;
+namespace tool_lifecycle\entity;
 
 defined('MOODLE_INTERNAL') || die();
 
 /**
- * Cleanup Course Workflow class
+ * Life Cycle Workflow class
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
diff --git a/classes/form/form_step_instance.php b/classes/form/form_step_instance.php
index 2a90badb813f41ef7ddd873d0c16db02c43a1077..daa3dd03985cf3efd6de0204f6d1996efa7582b5 100644
--- a/classes/form/form_step_instance.php
+++ b/classes/form/form_step_instance.php
@@ -17,16 +17,16 @@
 /**
  * Offers the possibility to add or modify a step instance.
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\form;
+namespace tool_lifecycle\form;
 
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\step\libbase;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\step\libbase;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -104,14 +104,14 @@ class form_step_instance extends \moodleform {
         $mform->setType('action', PARAM_TEXT);
         $mform->setDefault('action', ACTION_STEP_INSTANCE_FORM);
 
-        $mform->addElement('header', 'general_settings_header', get_string('general_settings_header', 'tool_cleanupcourses'));
+        $mform->addElement('header', 'general_settings_header', get_string('general_settings_header', 'tool_lifecycle'));
 
         $elementname = 'instancename';
-        $mform->addElement('text', $elementname, get_string('step_instancename', 'tool_cleanupcourses'));
+        $mform->addElement('text', $elementname, get_string('step_instancename', 'tool_lifecycle'));
         $mform->setType($elementname, PARAM_TEXT);
 
         $elementname = 'subpluginnamestatic';
-        $mform->addElement('static', $elementname, get_string('step_subpluginname', 'tool_cleanupcourses'));
+        $mform->addElement('static', $elementname, get_string('step_subpluginname', 'tool_lifecycle'));
         $mform->setType($elementname, PARAM_TEXT);
         $elementname = 'subpluginname';
         $mform->addElement('hidden', $elementname);
@@ -119,7 +119,7 @@ class form_step_instance extends \moodleform {
 
         // Insert the subplugin specific settings.
         if (!empty($this->lib->instance_settings())) {
-            $mform->addElement('header', 'step_settings_header', get_string('step_settings_header', 'tool_cleanupcourses'));
+            $mform->addElement('header', 'step_settings_header', get_string('step_settings_header', 'tool_lifecycle'));
             $this->lib->extend_add_instance_form_definition($mform);
         }
 
@@ -161,7 +161,7 @@ class form_step_instance extends \moodleform {
             $subpluginname = $this->subpluginname;
         }
         $mform->setDefault('subpluginnamestatic',
-            get_string('pluginname', 'cleanupcoursesstep_' . $subpluginname));
+            get_string('pluginname', 'lifecyclestep_' . $subpluginname));
         $mform->setDefault('subpluginname', $subpluginname);
 
         // Setting the default values for the local step settings.
diff --git a/classes/form/form_trigger_instance.php b/classes/form/form_trigger_instance.php
index 3721a266c8b03a02f2b244f1864b2daf8e1648a4..898d3f8495a9445290a668cf133bc7cbf19c0e54 100644
--- a/classes/form/form_trigger_instance.php
+++ b/classes/form/form_trigger_instance.php
@@ -17,17 +17,17 @@
 /**
  * Offers the possibility to add or modify a step instance.
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\form;
+namespace tool_lifecycle\form;
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\trigger\base;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\trigger\base;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -109,10 +109,10 @@ class form_trigger_instance extends \moodleform {
         $mform->setType('action', PARAM_TEXT);
         $mform->setDefault('action', ACTION_TRIGGER_INSTANCE_FORM);
 
-        $mform->addElement('header', 'general_settings_header', get_string('general_settings_header', 'tool_cleanupcourses'));
+        $mform->addElement('header', 'general_settings_header', get_string('general_settings_header', 'tool_lifecycle'));
 
         $elementname = 'instancename';
-        $mform->addElement('text', $elementname, get_string('trigger_instancename', 'tool_cleanupcourses'));
+        $mform->addElement('text', $elementname, get_string('trigger_instancename', 'tool_lifecycle'));
         $mform->setType($elementname, PARAM_TEXT);
 
         // If workflow is active, then all trigger types have to be used to also show the preset triggers.
@@ -124,13 +124,13 @@ class form_trigger_instance extends \moodleform {
 
         $elementname = 'subpluginname';
         $mform->addElement('select', $elementname,
-            get_string('trigger_subpluginname', 'tool_cleanupcourses'),
+            get_string('trigger_subpluginname', 'tool_lifecycle'),
             $triggers);
         $mform->setType($elementname, PARAM_TEXT);
 
         // Insert the subplugin specific settings.
         if (isset($this->lib) && !empty($this->lib->instance_settings())) {
-            $mform->addElement('header', 'trigger_settings_header', get_string('trigger_settings_header', 'tool_cleanupcourses'));
+            $mform->addElement('header', 'trigger_settings_header', get_string('trigger_settings_header', 'tool_lifecycle'));
             $this->lib->extend_add_instance_form_definition($mform);
         }
 
diff --git a/classes/form/form_workflow_instance.php b/classes/form/form_workflow_instance.php
index ae935fbed4b51d0c8adbd90542064fadc2e7ad08..d7f137dd9f46f8687db7b31f53b3b0234c5965d7 100644
--- a/classes/form/form_workflow_instance.php
+++ b/classes/form/form_workflow_instance.php
@@ -17,13 +17,13 @@
 /**
  * Offers the possibility to add or modify a workflow instance.
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\form;
+namespace tool_lifecycle\form;
 
-use tool_cleanupcourses\entity\workflow;
+use tool_lifecycle\entity\workflow;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -65,18 +65,18 @@ class form_workflow_instance extends \moodleform {
             $mform->setDefault($elementname, $this->workflow->id);
         }
 
-        $mform->addElement('header', 'general_settings_header', get_string('general_settings_header', 'tool_cleanupcourses'));
+        $mform->addElement('header', 'general_settings_header', get_string('general_settings_header', 'tool_lifecycle'));
 
         $elementname = 'title';
-        $mform->addElement('text', $elementname, get_string('workflow_title', 'tool_cleanupcourses'));
+        $mform->addElement('text', $elementname, get_string('workflow_title', 'tool_lifecycle'));
         $mform->setType($elementname, PARAM_TEXT);
         if (isset($this->workflow)) {
             $mform->setDefault($elementname, $this->workflow->title);
         }
 
         $elementname = 'displaytitle';
-        $mform->addElement('text', $elementname, get_string('workflow_displaytitle', 'tool_cleanupcourses'));
-        $mform->addHelpButton($elementname, 'workflow_displaytitle', 'tool_cleanupcourses');
+        $mform->addElement('text', $elementname, get_string('workflow_displaytitle', 'tool_lifecycle'));
+        $mform->addHelpButton($elementname, 'workflow_displaytitle', 'tool_lifecycle');
         $mform->setType($elementname, PARAM_TEXT);
         if (isset($this->workflow)) {
             $mform->setDefault($elementname, $this->workflow->displaytitle);
diff --git a/classes/local/data/manual_trigger_tool.php b/classes/local/data/manual_trigger_tool.php
index e6659e78cf73a6722f020fbcd89123fc86cf3b60..cd211debd0e6cc43956c44d523147969cd31d41b 100644
--- a/classes/local/data/manual_trigger_tool.php
+++ b/classes/local/data/manual_trigger_tool.php
@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\local\data;
+namespace tool_lifecycle\local\data;
 
 use renderable;
 
@@ -23,7 +23,7 @@ defined('MOODLE_INTERNAL') || die();
 /**
  * Class representing a manual trigger tool
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2018 WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
diff --git a/classes/manager/backup_manager.php b/classes/manager/backup_manager.php
index efd2e81cdf81b3016b62a88ce8199b0053802789..c27284960886b3578acc2bcfaf1bd130c1863b0e 100644
--- a/classes/manager/backup_manager.php
+++ b/classes/manager/backup_manager.php
@@ -17,11 +17,11 @@
 /**
  * Manager to create & restore backups for courses
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -32,7 +32,7 @@ require_once($CFG->dirroot . '/backup/util/includes/restore_includes.php');
 class backup_manager {
 
     /**
-     * Creates a course backup in a specific cleanup courses backup folder
+     * Creates a course backup in a specific life cycle backup folder
      * @param int $courseid id of the course the backup should be created for.
      * @return bool tells if the backup was completed successfully.
      */
@@ -44,20 +44,20 @@ class backup_manager {
             $record->courseid = $courseid;
             $record->fullname = $course->fullname;
             $record->shortname = $course->shortname;
-            $recordid = $DB->insert_record('tool_cleanupcourses_backups', $record, true);
+            $recordid = $DB->insert_record('tool_lifecycle_backups', $record, true);
             $record->id = $recordid;
 
             // Build filename.
             $archivefile = date("Y-m-d") . "-ID-{$recordid}-COURSE-{$courseid}.mbz";
 
             // Path of backup folder.
-            $path = $CFG->dataroot . '/cleanupcourses_backups';
+            $path = $CFG->dataroot . '/lifecycle_backups';
             // If the path doesn't exist, make it so!
             if (!is_dir($path)) {
                 umask(0000);
                 // Create the directory for Backups.
                 if (!mkdir($path, $CFG->directorypermissions, true)) {
-                    throw new \moodle_exception(get_string('errorbackuppath', 'tool_cleanupcourses'));
+                    throw new \moodle_exception(get_string('errorbackuppath', 'tool_lifecycle'));
                 }
             }
             // Perform Backup.
@@ -80,7 +80,7 @@ class backup_manager {
 
             $record->backupfile = $archivefile;
             $record->backupcreated = time();
-            $DB->update_record('tool_cleanupcourses_backups', $record, true);
+            $DB->update_record('tool_lifecycle_backups', $record, true);
 
             return true;
         } catch (\moodle_exception $e) {
@@ -92,7 +92,7 @@ class backup_manager {
 
     /**
      * Restores a course backup via a backupid
-     * The function copies the backup file from the cleanupcourse backup folder to a temporary folder.
+     * The function copies the backup file from the lifecycle backup folder to a temporary folder.
      * It then redirects to the backup/restore.php, which leads the user through the interactive restore process.
      * @param int $backupid id of backup entry.
      * @throws \moodle_exception
@@ -100,7 +100,7 @@ class backup_manager {
      */
     public static function restore_course_backup($backupid) {
         global $DB, $CFG;
-        $backuprecord = $DB->get_record('tool_cleanupcourses_backups', array('id' => $backupid));
+        $backuprecord = $DB->get_record('tool_lifecycle_backups', array('id' => $backupid));
 
         // Check if backup tmp dir exists.
         $backuptmpdir = $CFG->tempdir . '/backup';
@@ -112,10 +112,10 @@ class backup_manager {
         $targetfilename = \restore_controller::get_tempdir_name($backuprecord->courseid, get_admin()->id);
         $target = $backuptmpdir . '/' . $targetfilename;
         // Create the location of the actual backup file.
-        $source = $CFG->dataroot . '/cleanupcourses_backups/' . $backuprecord->backupfile;
+        $source = $CFG->dataroot . '/lifecycle_backups/' . $backuprecord->backupfile;
         // Check if the backup file exists.
         if (!file_exists($source)) {
-            throw new \moodle_exception('errorbackupfiledoesnotexist', 'tool_cleanupprocess', $source);
+            throw new \moodle_exception('errorbackupfiledoesnotexist', 'tool_lifecycle', $source);
         }
 
         // Copy the file to the backup temp dir.
diff --git a/classes/manager/delayed_courses_manager.php b/classes/manager/delayed_courses_manager.php
index 096b2f373e2978324b577cd80737bedbd10cd7d4..4d06cdacb1a234b2e797431ed39e41f64b19311b 100644
--- a/classes/manager/delayed_courses_manager.php
+++ b/classes/manager/delayed_courses_manager.php
@@ -18,11 +18,11 @@
  * Manager for Delayed Courses
  * Each entry tells that the trigger-check for a certain course is delayed until a certain timestamp.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -36,16 +36,16 @@ class delayed_courses_manager {
     public static function set_course_delayed($courseid, $duration) {
         global $DB;
         $delayeduntil = time() + $duration;
-        $record = $DB->get_record('tool_cleanupcourses_delayed', array('courseid' => $courseid));
+        $record = $DB->get_record('tool_lifecycle_delayed', array('courseid' => $courseid));
         if (!$record) {
             $record = new \stdClass();
             $record->courseid = $courseid;
             $record->delayeduntil = $delayeduntil;
-            $DB->insert_record('tool_cleanupcourses_delayed', $record);
+            $DB->insert_record('tool_lifecycle_delayed', $record);
         } else {
             if ($record->delayeduntil < $delayeduntil) {
                 $record->delayeduntil = $delayeduntil;
-                $DB->update_record('tool_cleanupcourses_delayed', $record);
+                $DB->update_record('tool_lifecycle_delayed', $record);
             }
         }
     }
@@ -57,7 +57,7 @@ class delayed_courses_manager {
      */
     public static function get_course_delayed($courseid) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_delayed', array('courseid' => $courseid));
+        $record = $DB->get_record('tool_lifecycle_delayed', array('courseid' => $courseid));
         if ($record) {
             return $record->delayeduntil;
         } else {
@@ -71,6 +71,6 @@ class delayed_courses_manager {
      */
     public static function remove_delay_entry($courseid) {
         global $DB;
-        $DB->delete_records('tool_cleanupcourses_delayed', array('courseid' => $courseid));
+        $DB->delete_records('tool_lifecycle_delayed', array('courseid' => $courseid));
     }
 }
diff --git a/classes/manager/interaction_manager.php b/classes/manager/interaction_manager.php
index 0b14f07d6c63353be7df888664d5997315598fac..d59d75595c59a30093a94cff5a5e1de779516970 100644
--- a/classes/manager/interaction_manager.php
+++ b/classes/manager/interaction_manager.php
@@ -17,14 +17,14 @@
 /**
  * Manager to handle interactions by users
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
-use tool_cleanupcourses\cleanup_processor;
-use tool_cleanupcourses\response\step_interactive_response;
+use tool_lifecycle\processor;
+use tool_lifecycle\response\step_interactive_response;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -55,10 +55,10 @@ class interaction_manager {
         $step = step_manager::get_step_instance($stepid);
         $process = process_manager::get_process_by_id($processid);
         if (!$step) {
-            throw new \invalid_parameter_exception(get_string('nostepfound', 'tool_cleanupcourses'));
+            throw new \invalid_parameter_exception(get_string('nostepfound', 'tool_lifecycle'));
         }
         if (!$process) {
-            throw new \invalid_parameter_exception(get_string('noprocessfound', 'tool_cleanupcourses'));
+            throw new \invalid_parameter_exception(get_string('noprocessfound', 'tool_lifecycle'));
         }
         $interactionlib = lib_manager::get_step_interactionlib($step->subpluginname);
         $response = $interactionlib->handle_interaction($process, $step, $action);
@@ -70,7 +70,7 @@ class interaction_manager {
             case step_interactive_response::no_action():
                 break;
             case step_interactive_response::proceed():
-                $processor = new cleanup_processor();
+                $processor = new processor();
                 return $processor->process_course_interactive($processid);
                 break;
             case step_interactive_response::rollback():
@@ -115,7 +115,7 @@ class interaction_manager {
         $interactionlib = lib_manager::get_step_interactionlib($subpluginname);
         $process = process_manager::get_process_by_id($processid);
         if (!$process) {
-            throw new \invalid_parameter_exception(get_string('noprocessfound', 'tool_cleanupcourses'));
+            throw new \invalid_parameter_exception(get_string('noprocessfound', 'tool_lifecycle'));
         }
         return $interactionlib->get_action_tools($process);
     }
@@ -130,7 +130,7 @@ class interaction_manager {
     public static function get_process_status_message($processid) {
         $process = process_manager::get_process_by_id($processid);
         if (!$process) {
-            throw new \invalid_parameter_exception(get_string('noprocessfound', 'tool_cleanupcourses'));
+            throw new \invalid_parameter_exception(get_string('noprocessfound', 'tool_lifecycle'));
         }
 
         if ($process->stepindex == 0) {
@@ -141,7 +141,7 @@ class interaction_manager {
             $step = step_manager::get_step_instance_by_workflow_index($process->workflowid, $process->stepindex);
             $interactionlib = lib_manager::get_step_interactionlib($step->subpluginname);
             if ($interactionlib === null) {
-                return get_string("workflow_is_running", "tool_cleanupcourses");
+                return get_string("workflow_is_running", "tool_lifecycle");
             }
 
             return $interactionlib->get_status_message($process);
diff --git a/classes/manager/lib_manager.php b/classes/manager/lib_manager.php
index a691b857c1afa714c747a3514fd17ff6df907e47..2db928d681d26b8ce21338f50be13f1bc986333c 100644
--- a/classes/manager/lib_manager.php
+++ b/classes/manager/lib_manager.php
@@ -17,14 +17,14 @@
 /**
  * Manager to retrive the lib of each subplugin.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
-use tool_cleanupcourses\trigger\base_automatic;
-use tool_cleanupcourses\trigger\base_manual;
+use tool_lifecycle\trigger\base_automatic;
+use tool_lifecycle\trigger\base_manual;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -33,7 +33,7 @@ class lib_manager {
     /**
      * Gets the trigger class of a subplugin lib.
      * @param string $subpluginname name of the subplugin
-     * @return \tool_cleanupcourses\trigger\base
+     * @return \tool_lifecycle\trigger\base
      */
     public static function get_trigger_lib($subpluginname) {
         return self::get_lib($subpluginname, 'trigger');
@@ -42,7 +42,7 @@ class lib_manager {
     /**
      * Gets the lib class for an manual trigger subplugin.
      * @param string $subpluginname name of the subplugin
-     * @return \tool_cleanupcourses\trigger\base_manual
+     * @return \tool_lifecycle\trigger\base_manual
      * @throws \coding_exception
      */
     public static function get_manual_trigger_lib($subpluginname) {
@@ -56,7 +56,7 @@ class lib_manager {
     /**
      * Gets the lib class for an automatic trigger subplugin.
      * @param string $subpluginname name of the subplugin
-     * @return \tool_cleanupcourses\trigger\base_automatic
+     * @return \tool_lifecycle\trigger\base_automatic
      * @throws \coding_exception
      */
     public static function get_automatic_trigger_lib($subpluginname) {
@@ -72,7 +72,7 @@ class lib_manager {
     /**
      * Gets the step class of a subplugin lib.
      * @param string $subpluginname name of the subplugin
-     * @return \tool_cleanupcourses\step\libbase
+     * @return \tool_lifecycle\step\libbase
      */
     public static function get_step_lib($subpluginname) {
         return self::get_lib($subpluginname, 'step');
@@ -81,7 +81,7 @@ class lib_manager {
     /**
      * Gets the step class of a subplugin lib.
      * @param string $subpluginname name of the subplugin
-     * @return \tool_cleanupcourses\step\interactionlibbase
+     * @return \tool_lifecycle\step\interactionlibbase
      */
     public static function get_step_interactionlib($subpluginname) {
         return self::get_lib($subpluginname, 'step', 'interaction');
@@ -95,14 +95,14 @@ class lib_manager {
      * @return
      */
     private static function get_lib($subpluginname, $subplugintype, $libsubtype = '') {
-        $triggerlist = \core_component::get_plugin_list('cleanupcourses' . $subplugintype);
+        $triggerlist = \core_component::get_plugin_list('lifecycle' . $subplugintype);
         if (!array_key_exists($subpluginname, $triggerlist)) {
             return null;
         }
         $filename = $triggerlist[$subpluginname].'/'.$libsubtype.'lib.php';
         if (file_exists($filename)) {
             require_once($filename);
-            $extendedclass = "tool_cleanupcourses\\$subplugintype\\$libsubtype$subpluginname";
+            $extendedclass = "tool_lifecycle\\$subplugintype\\$libsubtype$subpluginname";
             if (class_exists($extendedclass)) {
                 return new $extendedclass();
             }
diff --git a/classes/manager/process_data_manager.php b/classes/manager/process_data_manager.php
index 8a69fafbe8c607a230bf14131e4af13f07857ae1..eae43e1fc9474271ec31e0a4e682ba73354ce370 100644
--- a/classes/manager/process_data_manager.php
+++ b/classes/manager/process_data_manager.php
@@ -15,19 +15,19 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Manager for data of Cleanup Course Processes
+ * Manager for data of Life Cycle Processes
  * Data means every additional data, which is produced, stored and queried by steps during the process.
  * This class stores and queries the process data using a key/value-store.
  * Only strings can be stored. Every other data has to be parsed manually!
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
-use tool_cleanupcourses\entity\process;
-use tool_cleanupcourses\entity\trigger_subplugin;
+use tool_lifecycle\entity\process;
+use tool_lifecycle\entity\trigger_subplugin;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -51,7 +51,7 @@ class process_data_manager {
         } else {
             $params['subpluginname'] = step_manager::get_step_instance($stepid)->subpluginname;
         }
-        if ($value = $DB->get_record('tool_cleanupcourses_procdata', $params)) {
+        if ($value = $DB->get_record('tool_lifecycle_procdata', $params)) {
             return $value->value;
         }
         return null;
@@ -75,12 +75,12 @@ class process_data_manager {
         } else {
             $entry['subpluginname'] = step_manager::get_step_instance($stepid)->subpluginname;
         }
-        if ($oldentry = $DB->get_record('tool_cleanupcourses_procdata', $entry)) {
+        if ($oldentry = $DB->get_record('tool_lifecycle_procdata', $entry)) {
             $oldentry->value = $value;
-            $DB->update_record('tool_cleanupcourses_procdata', $oldentry);
+            $DB->update_record('tool_lifecycle_procdata', $oldentry);
         } else {
             $entry['value'] = $value;
-            $DB->insert_record('tool_cleanupcourses_procdata', (object) $entry);
+            $DB->insert_record('tool_lifecycle_procdata', (object) $entry);
         }
     }
 
diff --git a/classes/manager/process_manager.php b/classes/manager/process_manager.php
index 5a17586501adf78bda8e4c01ffc7225b90f42354..8ef3772f13a16ed06ea5d55ef460b54cc0948695 100644
--- a/classes/manager/process_manager.php
+++ b/classes/manager/process_manager.php
@@ -15,15 +15,15 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Manager for Cleanup Course Processes
+ * Manager for Life Cycle Processes
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
-use tool_cleanupcourses\entity\process;
+use tool_lifecycle\entity\process;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -44,7 +44,7 @@ class process_manager {
             $record->workflowid = $workflowid;
             $record->timestepchanged = time();
             $process = process::from_record($record);
-            $process->id = $DB->insert_record('tool_cleanupcourses_process', $process);
+            $process->id = $DB->insert_record('tool_lifecycle_process', $process);
             return $process;
         }
         return null;
@@ -60,12 +60,12 @@ class process_manager {
     public static function manually_trigger_process($courseid, $triggerid) {
         $trigger = trigger_manager::get_instance($triggerid);
         if (!$trigger) {
-            throw new \moodle_exception('trigger_does_not_exist', 'tool_cleanupcourses');
+            throw new \moodle_exception('trigger_does_not_exist', 'tool_lifecycle');
         }
         $workflow = workflow_manager::get_workflow($trigger->workflowid);
         if (!$workflow || !workflow_manager::is_active($workflow->id) || !workflow_manager::is_valid($workflow->id) ||
                 $workflow->manual !== true) {
-            throw new \moodle_exception('cannot_trigger_workflow_manually', 'tool_cleanupcourses');
+            throw new \moodle_exception('cannot_trigger_workflow_manually', 'tool_lifecycle');
         }
         return self::create_process($courseid, $workflow->id);
     }
@@ -76,7 +76,7 @@ class process_manager {
      */
     public static function get_processes() {
         global $DB;
-        $records = $DB->get_records('tool_cleanupcourses_process');
+        $records = $DB->get_records('tool_lifecycle_process');
         $processes = array();
         foreach ($records as $record) {
             $processes [] = process::from_record($record);
@@ -91,7 +91,7 @@ class process_manager {
      */
     public static function get_process_by_id($processid) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_process', array('id' => $processid));
+        $record = $DB->get_record('tool_lifecycle_process', array('id' => $processid));
         if ($record) {
             return process::from_record($record);
         } else {
@@ -106,7 +106,7 @@ class process_manager {
      */
     public static function count_processes_by_workflow($workflowid) {
         global $DB;
-        return $DB->count_records('tool_cleanupcourses_process', array('workflowid' => $workflowid));
+        return $DB->count_records('tool_lifecycle_process', array('workflowid' => $workflowid));
     }
 
     /**
@@ -121,7 +121,7 @@ class process_manager {
             $process->stepindex++;
             $process->waiting = false;
             $process->timestepchanged = time();
-            $DB->update_record('tool_cleanupcourses_process', $process);
+            $DB->update_record('tool_lifecycle_process', $process);
             return true;
         } else {
             self::remove_process($process);
@@ -136,7 +136,7 @@ class process_manager {
     public static function set_process_waiting(&$process) {
         global $DB;
         $process->waiting = true;
-        $DB->update_record('tool_cleanupcourses_process', $process);
+        $DB->update_record('tool_lifecycle_process', $process);
     }
 
     /**
@@ -146,7 +146,7 @@ class process_manager {
     public static function rollback_process($process) {
         global $CFG;
         // TODO: Add logic to revert changes made by steps.
-        delayed_courses_manager::set_course_delayed($process->courseid, $CFG->cleanupcourses_duration);
+        delayed_courses_manager::set_course_delayed($process->courseid, $CFG->lifecycle_duration);
         self::remove_process($process);
     }
 
@@ -156,13 +156,13 @@ class process_manager {
      */
     private static function remove_process($process) {
         global $DB;
-        $DB->delete_records('tool_cleanupcourses_procdata', array('processid' => $process->id));
-        $DB->delete_records('tool_cleanupcourses_process', (array) $process);
+        $DB->delete_records('tool_lifecycle_procdata', array('processid' => $process->id));
+        $DB->delete_records('tool_lifecycle_process', (array) $process);
     }
 
     public static function get_process_by_course_id($courseid) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_process', array('courseid' => $courseid));
+        $record = $DB->get_record('tool_lifecycle_process', array('courseid' => $courseid));
         if ($record) {
             return process::from_record($record);
         } else {
diff --git a/classes/manager/settings_manager.php b/classes/manager/settings_manager.php
index b11fa101047b36fac122ed21a03ad66894c87cea..e19c5116b03aa477124d43f368bed72dde6204a7 100644
--- a/classes/manager/settings_manager.php
+++ b/classes/manager/settings_manager.php
@@ -17,11 +17,11 @@
 /**
  * Manager to retrive the local settings for each step subplugin.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
 defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__.'/../../lib.php');
@@ -67,7 +67,7 @@ class settings_manager {
                     $value = $value['text'];
                 }
                 $cleanedvalue = clean_param($value, $setting->paramtype);
-                $record = $DB->get_record('tool_cleanupcourses_settings',
+                $record = $DB->get_record('tool_lifecycle_settings',
                     array(
                         'instanceid' => $instanceid,
                         'type' => $type,
@@ -75,14 +75,14 @@ class settings_manager {
                 );
                 if ($record) {
                     $record->value = $cleanedvalue;
-                    $DB->update_record('tool_cleanupcourses_settings', $record);
+                    $DB->update_record('tool_lifecycle_settings', $record);
                 } else {
                     $newrecord = new \stdClass();
                     $newrecord->instanceid = $instanceid;
                     $newrecord->name = $setting->name;
                     $newrecord->value = $cleanedvalue;
                     $newrecord->type = $type;
-                    $DB->insert_record('tool_cleanupcourses_settings', $newrecord);
+                    $DB->insert_record('tool_lifecycle_settings', $newrecord);
                 }
             }
         }
@@ -117,7 +117,7 @@ class settings_manager {
 
         $settingsvalues = array();
         foreach ($lib->instance_settings() as $setting) {
-            $record = $DB->get_record('tool_cleanupcourses_settings', array('instanceid' => $instanceid,
+            $record = $DB->get_record('tool_lifecycle_settings', array('instanceid' => $instanceid,
                     'type' => $type,
                     'name' => $setting->name));
             if ($record) {
@@ -137,7 +137,7 @@ class settings_manager {
         global $DB;
         self::validate_type($type);
 
-        $DB->delete_records('tool_cleanupcourses_settings',
+        $DB->delete_records('tool_lifecycle_settings',
                 array('instanceid' => $instanceid,
                     'type' => $type));
     }
diff --git a/classes/manager/step_manager.php b/classes/manager/step_manager.php
index 65fa590fe98689390766d23dcff64c62f178026b..94cb1992df39bff69f6fbceee1cb8a759dbd3d8f 100644
--- a/classes/manager/step_manager.php
+++ b/classes/manager/step_manager.php
@@ -17,13 +17,13 @@
 /**
  * Manager for Subplugins
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
-use tool_cleanupcourses\entity\step_subplugin;
+use tool_lifecycle\entity\step_subplugin;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -36,7 +36,7 @@ class step_manager extends subplugin_manager {
      */
     public static function get_step_instance($stepinstanceid) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_step', array('id' => $stepinstanceid));
+        $record = $DB->get_record('tool_lifecycle_step', array('id' => $stepinstanceid));
         if ($record) {
             $subplugin = step_subplugin::from_record($record);
             return $subplugin;
@@ -53,7 +53,7 @@ class step_manager extends subplugin_manager {
      */
     public static function get_step_instance_by_workflow_index($workflowid, $sortindex) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_step',
+        $record = $DB->get_record('tool_lifecycle_step',
             array(
                 'workflowid' => $workflowid,
                 'sortindex' => $sortindex)
@@ -74,10 +74,10 @@ class step_manager extends subplugin_manager {
         global $DB;
         $transaction = $DB->start_delegated_transaction();
         if ($subplugin->id) {
-            $DB->update_record('tool_cleanupcourses_step', $subplugin);
+            $DB->update_record('tool_lifecycle_step', $subplugin);
         } else {
             $subplugin->sortindex = self::count_steps_of_workflow($subplugin->workflowid) + 1;
-            $subplugin->id = $DB->insert_record('tool_cleanupcourses_step', $subplugin);
+            $subplugin->id = $DB->insert_record('tool_lifecycle_step', $subplugin);
         }
         $transaction->allow_commit();
     }
@@ -101,11 +101,11 @@ class step_manager extends subplugin_manager {
     private static function remove($stepinstanceid) {
         global $DB;
         $transaction = $DB->start_delegated_transaction();
-        if ($record = $DB->get_record('tool_cleanupcourses_step', array('id' => $stepinstanceid))) {
+        if ($record = $DB->get_record('tool_lifecycle_step', array('id' => $stepinstanceid))) {
             $step = step_subplugin::from_record($record);
             self::remove_from_sortindex($step);
             settings_manager::remove_settings($step->id, SETTINGS_TYPE_STEP);
-            $DB->delete_records('tool_cleanupcourses_step', (array) $step);
+            $DB->delete_records('tool_lifecycle_step', (array) $step);
         }
         $transaction->allow_commit();
     }
@@ -117,7 +117,7 @@ class step_manager extends subplugin_manager {
     private static function remove_from_sortindex(&$toberemoved) {
         global $DB;
         if (isset($toberemoved->sortindex)) {
-            $subplugins = $DB->get_records_select('tool_cleanupcourses_step',
+            $subplugins = $DB->get_records_select('tool_lifecycle_step',
                 "sortindex > $toberemoved->sortindex",
                 array('workflowid' => $toberemoved->workflowid));
             foreach ($subplugins as $record) {
@@ -152,7 +152,7 @@ class step_manager extends subplugin_manager {
         }
         $transaction = $DB->start_delegated_transaction();
 
-        $otherrecord = $DB->get_record('tool_cleanupcourses_step',
+        $otherrecord = $DB->get_record('tool_lifecycle_step',
             array(
                 'sortindex' => $otherindex,
                 'workflowid' => $step->workflowid)
@@ -175,7 +175,7 @@ class step_manager extends subplugin_manager {
     public static function get_step_instances($workflowid) {
         // TODO: Alter calls to include workflow id.
         global $DB;
-        $records = $DB->get_records('tool_cleanupcourses_step', array(
+        $records = $DB->get_records('tool_lifecycle_step', array(
             'workflowid' => $workflowid
         ));
         $steps = array();
@@ -191,7 +191,7 @@ class step_manager extends subplugin_manager {
      */
     public static function get_step_instances_by_subpluginname($subpluginname) {
         global $DB;
-        $records = $DB->get_records('tool_cleanupcourses_step', array('subpluginname' => $subpluginname));
+        $records = $DB->get_records('tool_lifecycle_step', array('subpluginname' => $subpluginname));
         $steps = array();
         foreach ($records as $id => $record) {
             $steps[$id] = step_subplugin::from_record($record);
@@ -204,10 +204,10 @@ class step_manager extends subplugin_manager {
      * @return array of step subplugins.
      */
     public static function get_step_types() {
-        $subplugins = \core_component::get_plugin_list('cleanupcoursesstep');
+        $subplugins = \core_component::get_plugin_list('lifecyclestep');
         $result = array();
         foreach (array_keys($subplugins) as $plugin) {
-            $result[$plugin] = get_string('pluginname', 'cleanupcoursesstep_' . $plugin);
+            $result[$plugin] = get_string('pluginname', 'lifecyclestep_' . $plugin);
         }
         return $result;
     }
@@ -231,7 +231,7 @@ class step_manager extends subplugin_manager {
                     self::remove($subpluginid);
                 }
             } else {
-                echo $OUTPUT->notification(get_string('active_workflow_not_changeable', 'tool_cleanupcourses'), 'warning');
+                echo $OUTPUT->notification(get_string('active_workflow_not_changeable', 'tool_lifecycle'), 'warning');
             }
         }
     }
@@ -259,7 +259,7 @@ class step_manager extends subplugin_manager {
      */
     public static function count_steps_of_workflow($workflowid) {
         global $DB;
-        return $DB->count_records('tool_cleanupcourses_step',
+        return $DB->count_records('tool_lifecycle_step',
             array('workflowid' => $workflowid)
         );
     }
@@ -270,7 +270,7 @@ class step_manager extends subplugin_manager {
      */
     public static function remove_instances_of_workflow($workflowid) {
         global $DB;
-        $DB->delete_records('tool_cleanupcourses_step', array('workflowid' => $workflowid));
+        $DB->delete_records('tool_lifecycle_step', array('workflowid' => $workflowid));
     }
 
     /**
diff --git a/classes/manager/subplugin_manager.php b/classes/manager/subplugin_manager.php
index d5553be72fef24102d9f23977e1b085004e71bba..a702048a901941b10af293a46132880f75a3dd19 100644
--- a/classes/manager/subplugin_manager.php
+++ b/classes/manager/subplugin_manager.php
@@ -17,11 +17,11 @@
 /**
  * Manager for Subplugins
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -34,7 +34,7 @@ abstract class subplugin_manager {
      * @return bool
      */
     protected static function is_subplugin($subpluginname, $subplugintype) {
-        $subplugintypes = \core_component::get_subplugins('tool_cleanupcourses');
+        $subplugintypes = \core_component::get_subplugins('tool_lifecycle');
         if (array_key_exists($subplugintype, $subplugintypes)) {
             $subplugins = $subplugintypes[$subplugintype];
             if (in_array($subpluginname, $subplugins)) {
diff --git a/classes/manager/trigger_manager.php b/classes/manager/trigger_manager.php
index 525da30fa233dd3cb72b2a58d1060220c9b50452..3f6390286cbaa78a51efc32d96efd6cd1e46e896 100644
--- a/classes/manager/trigger_manager.php
+++ b/classes/manager/trigger_manager.php
@@ -17,14 +17,14 @@
 /**
  * Manager for Trigger subplugins
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\entity\workflow;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\entity\workflow;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -36,10 +36,10 @@ class trigger_manager extends subplugin_manager {
      */
     public static function register_workflow($subpluginname) {
         $workflow = workflow_manager::create_workflow(
-            get_string('pluginname', 'cleanupcoursestrigger_' . $subpluginname));
+            get_string('pluginname', 'lifecycletrigger_' . $subpluginname));
         $record = new \stdClass();
         $record->subpluginname = $subpluginname;
-        $record->instancename = get_string('pluginname', 'cleanupcoursestrigger_' . $subpluginname);
+        $record->instancename = get_string('pluginname', 'lifecycletrigger_' . $subpluginname);
         $record->workflowid = $workflow->id;
         $trigger = trigger_subplugin::from_record($record);
         self::insert_or_update($trigger);
@@ -63,7 +63,7 @@ class trigger_manager extends subplugin_manager {
     public static function get_instances($subpluginname) {
         global $DB;
         $result = array();
-        $records = $DB->get_records('tool_cleanupcourses_trigger', array('subpluginname' => $subpluginname));
+        $records = $DB->get_records('tool_lifecycle_trigger', array('subpluginname' => $subpluginname));
         foreach ($records as $record) {
             $subplugin = trigger_subplugin::from_record($record);
             $result [] = $subplugin;
@@ -78,7 +78,7 @@ class trigger_manager extends subplugin_manager {
      */
     private static function get_subplugin_by_id($subpluginid) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_trigger', array('id' => $subpluginid));
+        $record = $DB->get_record('tool_lifecycle_trigger', array('id' => $subpluginid));
         if ($record) {
             $subplugin = trigger_subplugin::from_record($record);
             return $subplugin;
@@ -95,9 +95,9 @@ class trigger_manager extends subplugin_manager {
         global $DB;
         $transaction = $DB->start_delegated_transaction();
         if ($subplugin->id) {
-            $DB->update_record('tool_cleanupcourses_trigger', $subplugin);
+            $DB->update_record('tool_lifecycle_trigger', $subplugin);
         } else {
-            $subplugin->id = $DB->insert_record('tool_cleanupcourses_trigger', $subplugin);
+            $subplugin->id = $DB->insert_record('tool_lifecycle_trigger', $subplugin);
         }
         $transaction->allow_commit();
     }
@@ -109,11 +109,11 @@ class trigger_manager extends subplugin_manager {
      */
     public static function remove_all_instances($subpluginname) {
         global $DB;
-        $records = $DB->get_records('tool_cleanupcourses_trigger', array('subpluginname' => $subpluginname));
+        $records = $DB->get_records('tool_lifecycle_trigger', array('subpluginname' => $subpluginname));
         foreach ($records as $record) {
             settings_manager::remove_settings($record->id, SETTINGS_TYPE_TRIGGER);
         }
-        $DB->delete_records('tool_cleanupcourses_trigger', array('subpluginname' => $subpluginname));
+        $DB->delete_records('tool_lifecycle_trigger', array('subpluginname' => $subpluginname));
     }
 
     /**
@@ -124,7 +124,7 @@ class trigger_manager extends subplugin_manager {
      */
     public static function get_trigger_for_workflow($workflowid) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_trigger', array('workflowid' => $workflowid));
+        $record = $DB->get_record('tool_lifecycle_trigger', array('workflowid' => $workflowid));
         if ($record) {
             $subplugin = trigger_subplugin::from_record($record);
             return $subplugin;
@@ -138,10 +138,10 @@ class trigger_manager extends subplugin_manager {
      * @return array of step subplugins.
      */
     public static function get_trigger_types() {
-        $subplugins = \core_component::get_plugin_list('cleanupcoursestrigger');
+        $subplugins = \core_component::get_plugin_list('lifecycletrigger');
         $result = array();
         foreach (array_keys($subplugins) as $plugin) {
-            $result[$plugin] = get_string('pluginname', 'cleanupcoursestrigger_' . $plugin);
+            $result[$plugin] = get_string('pluginname', 'lifecycletrigger_' . $plugin);
         }
         return $result;
     }
@@ -168,7 +168,7 @@ class trigger_manager extends subplugin_manager {
      */
     public static function remove_instances_of_workflow($workflowid) {
         global $DB;
-        $DB->delete_records('tool_cleanupcourses_trigger', array('workflowid' => $workflowid));
+        $DB->delete_records('tool_lifecycle_trigger', array('workflowid' => $workflowid));
     }
 
     /**
diff --git a/classes/manager/workflow_manager.php b/classes/manager/workflow_manager.php
index fbc6bb0e02461a85e75b2b2ac0c295117e8117b7..407ff8303a4b3ca60d9071ccedc1a4e0770552c8 100644
--- a/classes/manager/workflow_manager.php
+++ b/classes/manager/workflow_manager.php
@@ -15,17 +15,17 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Manager for Cleanup Course Workflows
+ * Manager for Life Cycle Workflows
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\manager;
+namespace tool_lifecycle\manager;
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\entity\workflow;
-use tool_cleanupcourses\local\data\manual_trigger_tool;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\entity\workflow;
+use tool_lifecycle\local\data\manual_trigger_tool;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -39,9 +39,9 @@ class workflow_manager {
         global $DB;
         $transaction = $DB->start_delegated_transaction();
         if ($workflow->id) {
-            $DB->update_record('tool_cleanupcourses_workflow', $workflow);
+            $DB->update_record('tool_lifecycle_workflow', $workflow);
         } else {
-            $workflow->id = $DB->insert_record('tool_cleanupcourses_workflow', $workflow);
+            $workflow->id = $DB->insert_record('tool_lifecycle_workflow', $workflow);
         }
         $transaction->allow_commit();
     }
@@ -54,7 +54,7 @@ class workflow_manager {
         global $DB;
         trigger_manager::remove_instances_of_workflow($workflowid);
         step_manager::remove_instances_of_workflow($workflowid);
-        $DB->delete_records('tool_cleanupcourses_workflow', array('id' => $workflowid));
+        $DB->delete_records('tool_lifecycle_workflow', array('id' => $workflowid));
     }
 
     /**
@@ -64,7 +64,7 @@ class workflow_manager {
      */
     public static function get_workflow($workflowid) {
         global $DB;
-        $record = $DB->get_record('tool_cleanupcourses_workflow', array('id' => $workflowid));
+        $record = $DB->get_record('tool_lifecycle_workflow', array('id' => $workflowid));
         if ($record) {
             $workflow = workflow::from_record($record);
             return $workflow;
@@ -79,7 +79,7 @@ class workflow_manager {
      */
     public static function get_active_workflows() {
         global $DB;
-        $records = $DB->get_records('tool_cleanupcourses_workflow', array('active' => true),
+        $records = $DB->get_records('tool_lifecycle_workflow', array('active' => true),
             'sortindex ASC');
         $result = array();
         foreach ($records as $record) {
@@ -94,7 +94,7 @@ class workflow_manager {
      */
     public static function get_active_automatic_workflows() {
         global $DB;
-        $records = $DB->get_records('tool_cleanupcourses_workflow', array('active' => true, 'manual' => false),
+        $records = $DB->get_records('tool_lifecycle_workflow', array('active' => true, 'manual' => false),
             'sortindex ASC');
         $result = array();
         foreach ($records as $record) {
@@ -109,7 +109,7 @@ class workflow_manager {
      */
     public static function get_active_manual_workflow_triggers() {
         global $DB;
-        $sql = 'SELECT t.* FROM {tool_cleanupcourses_workflow} w JOIN {tool_cleanupcourses_trigger} t ON t.workflowid = w.id'.
+        $sql = 'SELECT t.* FROM {tool_lifecycle_workflow} w JOIN {tool_lifecycle_trigger} t ON t.workflowid = w.id'.
         ' WHERE w.active = ? AND w.manual = ?';
         $records = $DB->get_records_sql($sql, array(true, true));
         $result = array();
@@ -142,7 +142,7 @@ class workflow_manager {
         global $DB, $OUTPUT;
         if (!self::is_valid($workflowid)) {
             echo $OUTPUT->notification(
-                get_string('invalid_workflow_cannot_be_activated', 'tool_cleanupcourses'),
+                get_string('invalid_workflow_cannot_be_activated', 'tool_lifecycle'),
                 'warning');
             return;
         }
@@ -183,7 +183,7 @@ class workflow_manager {
         }
         if ($action === ACTION_WORKFLOW_DELETE) {
             if (self::is_active($workflowid)) {
-                echo $OUTPUT->notification(get_string('active_workflow_not_removeable', 'tool_cleanupcourses')
+                echo $OUTPUT->notification(get_string('active_workflow_not_removeable', 'tool_lifecycle')
                     , 'warning');
 
             } else {
@@ -220,7 +220,7 @@ class workflow_manager {
         }
         $transaction = $DB->start_delegated_transaction();
 
-        $otherrecord = $DB->get_record('tool_cleanupcourses_workflow',
+        $otherrecord = $DB->get_record('tool_lifecycle_workflow',
             array(
                 'sortindex' => $otherindex)
         );
@@ -279,7 +279,7 @@ class workflow_manager {
     public static function duplicate_workflow($workflowid) {
         $oldworkflow = self::get_workflow($workflowid);
         try {
-            $newtitle = get_string('workflow_duplicate_title', 'tool_cleanupcourses', $oldworkflow->title);
+            $newtitle = get_string('workflow_duplicate_title', 'tool_lifecycle', $oldworkflow->title);
         } catch (\coding_exception $e) {
             $newtitle = $oldworkflow->title;
         }
diff --git a/classes/plugininfo/cleanupcoursesstep.php b/classes/plugininfo/lifecyclestep.php
similarity index 85%
rename from classes/plugininfo/cleanupcoursesstep.php
rename to classes/plugininfo/lifecyclestep.php
index 41d79fe2bf36bc7554eb1d8ab34cdff4237a6356..c98c550908e1705ba811fb3be0119a20bd837bce 100644
--- a/classes/plugininfo/cleanupcoursesstep.php
+++ b/classes/plugininfo/lifecyclestep.php
@@ -15,23 +15,23 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Pluginfo for cleanup courses step
+ * Pluginfo for life cycle step
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-namespace tool_cleanupcourses\plugininfo;
+namespace tool_lifecycle\plugininfo;
 
 use core\plugininfo\base;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die();
 
 
-class cleanupcoursesstep extends base {
+class lifecyclestep extends base {
     public function is_uninstall_allowed() {
         if ($this->is_standard()) {
             return false;
diff --git a/classes/plugininfo/cleanupcoursestrigger.php b/classes/plugininfo/lifecycletrigger.php
similarity index 86%
rename from classes/plugininfo/cleanupcoursestrigger.php
rename to classes/plugininfo/lifecycletrigger.php
index a8fedc61822913be59e13b4fa082359637c6066f..7b252e98460b4f633be7947daaaeb81f4290fc7d 100644
--- a/classes/plugininfo/cleanupcoursestrigger.php
+++ b/classes/plugininfo/lifecycletrigger.php
@@ -15,26 +15,26 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Pluginfo for cleanup courses trigger
+ * Pluginfo for life cycle trigger
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-namespace tool_cleanupcourses\plugininfo;
+namespace tool_lifecycle\plugininfo;
 
 use core\plugininfo\base;
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 use tool_usertours\step;
 
 defined('MOODLE_INTERNAL') || die();
 
 
-class cleanupcoursestrigger extends base {
+class lifecycletrigger extends base {
     public function is_uninstall_allowed() {
         if ($this->is_standard()) {
             return false;
diff --git a/classes/cleanup_processor.php b/classes/processor.php
similarity index 86%
rename from classes/cleanup_processor.php
rename to classes/processor.php
index 6dc40949333573e8b149c8c7817bcf3583465b62..3d91ae595b66ca95f8a40b056438ba6584c4cf4e 100644
--- a/classes/cleanup_processor.php
+++ b/classes/processor.php
@@ -15,28 +15,28 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Offers functionality to trigger, process and finish cleanup processes.
+ * Offers functionality to trigger, process and finish lifecycle processes.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses;
+namespace tool_lifecycle;
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\response\step_interactive_response;
-use tool_cleanupcourses\response\step_response;
-use tool_cleanupcourses\response\trigger_response;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\response\step_interactive_response;
+use tool_lifecycle\response\step_response;
+use tool_lifecycle\response\trigger_response;
 
 
 defined('MOODLE_INTERNAL') || die;
 
-class cleanup_processor {
+class processor {
 
     public function __construct() {
 
@@ -151,15 +151,15 @@ class cleanup_processor {
 
     /**
      * Returns a record set with all relevant courses.
-     * Relevant means that there is currently no cleanup process running for this course.
+     * Relevant means that there is currently no lifecycle process running for this course.
      * @return \moodle_recordset with relevant courses.
      */
     private function get_course_recordset() {
         global $DB;
         $sql = 'SELECT {course}.* from {course} '.
-            'left join {tool_cleanupcourses_process} '.
-            'ON {course}.id = {tool_cleanupcourses_process}.courseid '.
-            'WHERE {tool_cleanupcourses_process}.courseid is null';
+            'left join {tool_lifecycle_process} '.
+            'ON {course}.id = {tool_lifecycle_process}.courseid '.
+            'WHERE {tool_lifecycle_process}.courseid is null';
         return $DB->get_recordset_sql($sql);
     }
 
diff --git a/classes/response/step_interactive_response.php b/classes/response/step_interactive_response.php
index 59d0ee5926ab6300a97a3f752cecef521437466c..c9e2cb2cce22bed8d55e18992fa94dc7502bce0a 100644
--- a/classes/response/step_interactive_response.php
+++ b/classes/response/step_interactive_response.php
@@ -17,11 +17,11 @@
 /**
  * Possible Responses of a Subplugin for interaction handling
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2018 WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\response;
+namespace tool_lifecycle\response;
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/classes/response/step_response.php b/classes/response/step_response.php
index c47bf4903cfad9d9833b9ace09e2a228075142c4..60085037528596dc10f33e2a82b3589b354914a8 100644
--- a/classes/response/step_response.php
+++ b/classes/response/step_response.php
@@ -17,11 +17,11 @@
 /**
  * Possible Responses of a Subplugin
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\response;
+namespace tool_lifecycle\response;
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/classes/response/trigger_response.php b/classes/response/trigger_response.php
index f23d30d99d5f6377c75947918280306f2a5b3163..090704e58c5e1098a8ac51fad36087d4afd5542d 100644
--- a/classes/response/trigger_response.php
+++ b/classes/response/trigger_response.php
@@ -17,11 +17,11 @@
 /**
  * Possible Responses of a Trigger Subplugin
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\response;
+namespace tool_lifecycle\response;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -51,7 +51,7 @@ class trigger_response {
     }
 
     /**
-     * Creates a TriggerResponse telling that the subplugin wants to exlude the course from cleanup.
+     * Creates a TriggerResponse telling that the subplugin wants to exlude the course from being processed.
      * @return trigger_response
      */
     public static function exclude() {
@@ -59,7 +59,7 @@ class trigger_response {
     }
 
     /**
-     * Creates a TriggerResponse telling that the subplugin wants to trigger the cleanup process for the course.
+     * Creates a TriggerResponse telling that the subplugin wants to trigger a lifecycle process for the course.
      * @return trigger_response
      */
     public static function trigger() {
diff --git a/classes/table/active_automatic_workflows_table.php b/classes/table/active_automatic_workflows_table.php
index ee2b0cef89a083d4ce2f101c1286fbaeb524c812..28663c82def2f36786cc27401b8437f670dac83e 100644
--- a/classes/table/active_automatic_workflows_table.php
+++ b/classes/table/active_automatic_workflows_table.php
@@ -17,16 +17,16 @@
 /**
  * Table listing all active automatically triggered workflows.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -42,7 +42,7 @@ class active_automatic_workflows_table extends workflow_table {
         list($sqlwheremanual, $paramsmanual) = $DB->get_in_or_equal(false);
         $sqlwhere = 'active ' . $sqlwhereactive . ' AND manual ' . $sqlwheremanual;
         $params[1] = $paramsmanual[0];
-        $this->set_sql("id, title, displaytitle, timeactive, sortindex", '{tool_cleanupcourses_workflow}',
+        $this->set_sql("id, title, displaytitle, timeactive, sortindex", '{tool_lifecycle_workflow}',
             $sqlwhere, $params);
         $this->define_baseurl($PAGE->url);
         $this->pageable(false);
@@ -52,12 +52,12 @@ class active_automatic_workflows_table extends workflow_table {
     public function init() {
         $this->define_columns(['title', 'timeactive', 'trigger', 'processes', 'sortindex', 'tools']);
         $this->define_headers([
-            get_string('workflow_title', 'tool_cleanupcourses'),
-            get_string('workflow_timeactive', 'tool_cleanupcourses'),
-            get_string('trigger', 'tool_cleanupcourses'),
-            get_string('workflow_processes', 'tool_cleanupcourses'),
-            get_string('workflow_sortindex', 'tool_cleanupcourses'),
-            get_string('workflow_tools', 'tool_cleanupcourses'),
+            get_string('workflow_title', 'tool_lifecycle'),
+            get_string('workflow_timeactive', 'tool_lifecycle'),
+            get_string('trigger', 'tool_lifecycle'),
+            get_string('workflow_processes', 'tool_lifecycle'),
+            get_string('workflow_sortindex', 'tool_lifecycle'),
+            get_string('workflow_tools', 'tool_lifecycle'),
             ]);
         $this->sortable(false, 'sortindex');
         $this->setup();
diff --git a/classes/table/active_manual_workflows_table.php b/classes/table/active_manual_workflows_table.php
index 6abc497cc4ac30eab64d82919e55be3e391897c1..e4ba56e45bb66421daf96d86448f45235a8c0e6a 100644
--- a/classes/table/active_manual_workflows_table.php
+++ b/classes/table/active_manual_workflows_table.php
@@ -17,16 +17,16 @@
 /**
  * Table listing all active manually triggered workflows.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -42,7 +42,7 @@ class active_manual_workflows_table extends workflow_table {
         list($sqlwheremanual, $paramsmanual) = $DB->get_in_or_equal(true);
         $sqlwhere = 'active ' . $sqlwhereactive . ' AND manual ' . $sqlwheremanual;
         $params[1] = $paramsmanual[0];
-        $this->set_sql("id, title, displaytitle, timeactive", '{tool_cleanupcourses_workflow}',
+        $this->set_sql("id, title, displaytitle, timeactive", '{tool_lifecycle_workflow}',
             $sqlwhere, $params);
         $this->define_baseurl($PAGE->url);
         $this->pageable(false);
@@ -52,11 +52,11 @@ class active_manual_workflows_table extends workflow_table {
     public function init() {
         $this->define_columns(['title', 'timeactive', 'trigger', 'processes', 'tools']);
         $this->define_headers([
-            get_string('workflow_title', 'tool_cleanupcourses'),
-            get_string('workflow_timeactive', 'tool_cleanupcourses'),
-            get_string('trigger', 'tool_cleanupcourses'),
-            get_string('workflow_processes', 'tool_cleanupcourses'),
-            get_string('workflow_tools', 'tool_cleanupcourses'),
+            get_string('workflow_title', 'tool_lifecycle'),
+            get_string('workflow_timeactive', 'tool_lifecycle'),
+            get_string('trigger', 'tool_lifecycle'),
+            get_string('workflow_processes', 'tool_lifecycle'),
+            get_string('workflow_tools', 'tool_lifecycle'),
             ]);
         $this->sortable(true, 'title');
         $this->setup();
diff --git a/classes/table/active_processes_table.php b/classes/table/active_processes_table.php
index 6e866f62664bb241ff5b17aa9bc81938b2d2512b..942d0abd296bbd2036cccddf88abb51a7fe55950 100644
--- a/classes/table/active_processes_table.php
+++ b/classes/table/active_processes_table.php
@@ -17,11 +17,11 @@
 /**
  * Table listing active processes
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -37,9 +37,9 @@ class active_processes_table extends \table_sql {
             'c.fullname as coursefullname, ' .
             'c.shortname as courseshortname, ' .
             'instancename as instancename ',
-            '{tool_cleanupcourses_process} p join ' .
+            '{tool_lifecycle_process} p join ' .
             '{course} c on p.courseid = c.id join ' .
-            '{tool_cleanupcourses_step} s '.
+            '{tool_lifecycle_step} s '.
             'on p.workflowid = s.workflowid AND p.stepindex = s.sortindex',
             "TRUE");
         $this->define_baseurl($PAGE->url);
@@ -52,7 +52,7 @@ class active_processes_table extends \table_sql {
             get_string('course'),
             get_string('shortnamecourse'),
             get_string('fullnamecourse'),
-            get_string('step', 'tool_cleanupcourses')]);
+            get_string('step', 'tool_lifecycle')]);
         $this->setup();
     }
 
diff --git a/classes/table/course_backups_table.php b/classes/table/course_backups_table.php
index ab57a8e2cae7bff356952d0466f9567e5813aa83..6e758560e6029dfddbdd82ffb57d48ff7e22026b 100644
--- a/classes/table/course_backups_table.php
+++ b/classes/table/course_backups_table.php
@@ -17,11 +17,11 @@
 /**
  * Table listing course backups
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -34,7 +34,7 @@ class course_backups_table extends \table_sql {
         global $PAGE;
         $this->set_attribute('class', $this->attributes['class'] . ' ' . $uniqueid);
         $this->set_sql('b.*',
-            '{tool_cleanupcourses_backups} b',
+            '{tool_lifecycle_backups} b',
             "TRUE");
         $this->define_baseurl($PAGE->url);
         $this->init();
@@ -46,8 +46,8 @@ class course_backups_table extends \table_sql {
             get_string('course'),
             get_string('shortnamecourse'),
             get_string('fullnamecourse'),
-            get_string('backupcreated', 'tool_cleanupcourses'),
-            get_string('tools', 'tool_cleanupcourses')]);
+            get_string('backupcreated', 'tool_lifecycle'),
+            get_string('tools', 'tool_lifecycle')]);
         $this->setup();
     }
 
@@ -106,8 +106,8 @@ class course_backups_table extends \table_sql {
      */
     public function col_tools($row) {
         return \html_writer::link(
-            new \moodle_url('/admin/tool/cleanupcourses/restore.php', array('backupid' => $row->id)),
-                get_string('restore', 'tool_cleanupcourses')
+            new \moodle_url('/admin/tool/lifecycle/restore.php', array('backupid' => $row->id)),
+                get_string('restore', 'tool_lifecycle')
         );
     }
 }
\ No newline at end of file
diff --git a/classes/table/interaction_attention_table.php b/classes/table/interaction_attention_table.php
index 00cafc9b1e78223ef3a81d965a77f35267de5fd0..1483186ecee2c5b310a822e71c2e2b1a08cf406a 100644
--- a/classes/table/interaction_attention_table.php
+++ b/classes/table/interaction_attention_table.php
@@ -17,15 +17,15 @@
 /**
  * Table listing all courses for a specific user and a specific subplugin
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\manager\interaction_manager;
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\step_manager;
+use tool_lifecycle\manager\interaction_manager;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\step_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -39,9 +39,9 @@ class interaction_attention_table extends interaction_table {
 
         $fields = 'p.id as processid, c.id as courseid, c.fullname as coursefullname, c.shortname as courseshortname, '.
         's.id as stepinstanceid, s.instancename as stepinstancename, s.subpluginname as subpluginname';
-        $from = '{tool_cleanupcourses_process} p join ' .
+        $from = '{tool_lifecycle_process} p join ' .
             '{course} c on p.courseid = c.id join ' .
-            '{tool_cleanupcourses_step} s '.
+            '{tool_lifecycle_step} s '.
             'on p.workflowid = s.workflowid AND p.stepindex = s.sortindex';
 
         $ids = implode(',', $courseids);
@@ -65,9 +65,9 @@ class interaction_attention_table extends interaction_table {
             get_string('course'),
             get_string('shortnamecourse'),
             get_string('fullnamecourse'),
-            get_string('status', 'tool_cleanupcourses'),
-            get_string('tools', 'tool_cleanupcourses'),
-            get_string('date', 'tool_cleanupcourses'),
+            get_string('status', 'tool_lifecycle'),
+            get_string('tools', 'tool_lifecycle'),
+            get_string('date', 'tool_lifecycle'),
         ]);
         $this->setup();
     }
diff --git a/classes/table/interaction_remaining_table.php b/classes/table/interaction_remaining_table.php
index 82915c1eee60b2a6de1a168f735d21937c147355..859f23fa144b7b55536c89bf2d05ef627d8c9073 100644
--- a/classes/table/interaction_remaining_table.php
+++ b/classes/table/interaction_remaining_table.php
@@ -17,13 +17,13 @@
 /**
  * Table listing all courses for a specific user and a specific subplugin
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -42,7 +42,7 @@ class interaction_remaining_table extends interaction_table {
 
         $fields = 'c.id as courseid, p.id as processid, c.fullname as coursefullname, c.shortname as courseshortname ';
         $from = '{course} c left join ' .
-            '{tool_cleanupcourses_process} p on p.courseid = c.id ';
+            '{tool_lifecycle_process} p on p.courseid = c.id ';
 
         $ids = implode(',', $courseids);
 
@@ -65,8 +65,8 @@ class interaction_remaining_table extends interaction_table {
             get_string('course'),
             get_string('shortnamecourse'),
             get_string('fullnamecourse'),
-            get_string('status', 'tool_cleanupcourses'),
-            get_string('tools', 'tool_cleanupcourses'),
+            get_string('status', 'tool_lifecycle'),
+            get_string('tools', 'tool_lifecycle'),
         ]);
         $this->setup();
     }
@@ -85,7 +85,7 @@ class interaction_remaining_table extends interaction_table {
 
         $actions = [];
         foreach ($this->availabletools as $tool) {
-            if (has_capability($tool->capability, \context_course::instance($row->courseid))) {
+            if (has_capability($tool->capability, \context_course::instance($row->courseid), null, false)) {
                 $actions[$tool->triggerid] = new \action_menu_link_secondary(
                     new \moodle_url($PAGE->url, array('triggerid' => $tool->triggerid,
                         'courseid' => $row->courseid, 'sesskey' => sesskey())),
diff --git a/classes/table/interaction_table.php b/classes/table/interaction_table.php
index 5d4830df16f0f38c004a0d68e5ba6edfee1d1641..cf338f93477dbdb61084e8700672ea6a1aeac9a8 100644
--- a/classes/table/interaction_table.php
+++ b/classes/table/interaction_table.php
@@ -17,17 +17,17 @@
 /**
  * Table listing all courses for a specific user and a specific subplugin
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\manager\interaction_manager;
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\manager\interaction_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -106,6 +106,6 @@ abstract class interaction_table extends \table_sql {
 
         $this->print_initials_bar();
 
-        echo $OUTPUT->box(get_string('nocoursestodisplay', 'tool_cleanupcourses'));
+        echo $OUTPUT->box(get_string('nocoursestodisplay', 'tool_lifecycle'));
     }
 }
\ No newline at end of file
diff --git a/classes/table/step_table.php b/classes/table/step_table.php
index 70e4714a11024c25b0e98bd44b3d0d143e33ef8f..3306de00273c8b041ec12c10be6b84ab9da12ad1 100644
--- a/classes/table/step_table.php
+++ b/classes/table/step_table.php
@@ -17,16 +17,16 @@
 /**
  * Table listing step instances
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -45,7 +45,7 @@ class step_table extends \table_sql {
         $this->workflowid = $workflowid;
         list($sqlwhere, $params) = $DB->get_in_or_equal($workflowid);
         $this->set_sql("id, subpluginname, instancename, sortindex",
-            '{tool_cleanupcourses_step}',
+            '{tool_lifecycle_step}',
             "workflowid " . $sqlwhere, $params);
         $this->define_baseurl($PAGE->url);
         $this->pageable(false);
@@ -69,20 +69,20 @@ class step_table extends \table_sql {
     public function init() {
         $columns = ['type', 'instancename', 'subpluginname'];
         $headers = [
-            get_string('step_type', 'tool_cleanupcourses'),
-            get_string('step_instancename', 'tool_cleanupcourses'),
-            get_string('step_subpluginname', 'tool_cleanupcourses'),
+            get_string('step_type', 'tool_lifecycle'),
+            get_string('step_instancename', 'tool_lifecycle'),
+            get_string('step_subpluginname', 'tool_lifecycle'),
             ];
         if (workflow_manager::is_active($this->workflowid)) {
             $columns [] = 'show';
-            $headers [] = get_string('step_show', 'tool_cleanupcourses');
+            $headers [] = get_string('step_show', 'tool_lifecycle');
         } else {
             $columns [] = 'sortindex';
-            $headers [] = get_string('step_sortindex', 'tool_cleanupcourses');
+            $headers [] = get_string('step_sortindex', 'tool_lifecycle');
             $columns [] = 'edit';
-            $headers [] = get_string('step_edit', 'tool_cleanupcourses');
+            $headers [] = get_string('step_edit', 'tool_lifecycle');
             $columns [] = 'delete';
-            $headers [] = get_string('step_delete', 'tool_cleanupcourses');
+            $headers [] = get_string('step_delete', 'tool_lifecycle');
         }
         $this->define_columns($columns);
         $this->define_headers($headers);
@@ -97,9 +97,9 @@ class step_table extends \table_sql {
      */
     public function col_type($row) {
         if (empty($row->type)) {
-            return get_string('step', 'tool_cleanupcourses');
+            return get_string('step', 'tool_lifecycle');
         }
-        return get_string('trigger', 'tool_cleanupcourses');
+        return get_string('trigger', 'tool_lifecycle');
     }
 
     /**
@@ -111,9 +111,9 @@ class step_table extends \table_sql {
 
         $subpluginname = $row->subpluginname;
         if (empty($row->type)) {
-            return get_string('pluginname', 'cleanupcoursesstep_' . $subpluginname);
+            return get_string('pluginname', 'lifecyclestep_' . $subpluginname);
         } else {
-            return get_string('pluginname', 'cleanupcoursestrigger_' . $subpluginname);
+            return get_string('pluginname', 'lifecycletrigger_' . $subpluginname);
         }
     }
 
diff --git a/classes/table/workflow_definition_table.php b/classes/table/workflow_definition_table.php
index b5cccdd3aa53adca8f0b7c107fd858d7d7e4b744..d0d6a54084e19ccdb48f188eec6724b0693be7d7 100644
--- a/classes/table/workflow_definition_table.php
+++ b/classes/table/workflow_definition_table.php
@@ -17,16 +17,16 @@
 /**
  * Table listing all workflow definitions.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -38,7 +38,7 @@ class workflow_definition_table extends workflow_table {
     public function __construct($uniqueid) {
         parent::__construct($uniqueid);
         global $PAGE;
-        $this->set_sql("id, title, timeactive, displaytitle", '{tool_cleanupcourses_workflow}', "TRUE");
+        $this->set_sql("id, title, timeactive, displaytitle", '{tool_lifecycle_workflow}', "TRUE");
         $this->define_baseurl($PAGE->url);
         $this->pageable(false);
         $this->init();
@@ -47,9 +47,9 @@ class workflow_definition_table extends workflow_table {
     public function init() {
         $this->define_columns(['title', 'timeactive', 'tools']);
         $this->define_headers([
-            get_string('workflow_title', 'tool_cleanupcourses'),
-            get_string('workflow_timeactive', 'tool_cleanupcourses'),
-            get_string('workflow_tools', 'tool_cleanupcourses'),
+            get_string('workflow_title', 'tool_lifecycle'),
+            get_string('workflow_timeactive', 'tool_lifecycle'),
+            get_string('workflow_tools', 'tool_lifecycle'),
             ]);
         $this->sortable(false, 'title');
         $this->setup();
@@ -70,10 +70,10 @@ class workflow_definition_table extends workflow_table {
                 array('action' => ACTION_WORKFLOW_ACTIVATE,
                     'sesskey' => sesskey(),
                     'workflowid' => $row->id)),
-                get_string('activateworkflow', 'tool_cleanupcourses'));
+                get_string('activateworkflow', 'tool_lifecycle'));
         } else {
-            return $OUTPUT->pix_icon('i/warning', get_string('invalid_workflow_details', 'tool_cleanupcourses')) .
-                get_string('invalid_workflow', 'tool_cleanupcourses');
+            return $OUTPUT->pix_icon('i/warning', get_string('invalid_workflow_details', 'tool_lifecycle')) .
+                get_string('invalid_workflow', 'tool_lifecycle');
         }
     }
 
@@ -86,9 +86,9 @@ class workflow_definition_table extends workflow_table {
         global $OUTPUT;
         $output = '';
 
-        $alt = get_string('viewsteps', 'tool_cleanupcourses');
+        $alt = get_string('viewsteps', 'tool_lifecycle');
         $icon = 't/viewdetails';
-        $url = new \moodle_url('/admin/tool/cleanupcourses/workflowsettings.php',
+        $url = new \moodle_url('/admin/tool/lifecycle/workflowsettings.php',
             array('workflowid' => $row->id, 'sesskey' => sesskey()));
         $output .= $OUTPUT->action_icon($url, new \pix_icon($icon, $alt, 'moodle', array('title' => $alt)),
             null, array('title' => $alt));
@@ -101,18 +101,18 @@ class workflow_definition_table extends workflow_table {
         if (!isset($lib) || $lib->has_multiple_instances()) {
 
             $action = ACTION_WORKFLOW_DUPLICATE;
-            $alt = get_string('duplicateworkflow', 'tool_cleanupcourses');
+            $alt = get_string('duplicateworkflow', 'tool_lifecycle');
             $icon = 't/copy';
             $output .= $this->format_icon_link($action, $row->id, $icon, $alt);
 
             $action = ACTION_WORKFLOW_INSTANCE_FROM;
-            $alt = get_string('editworkflow', 'tool_cleanupcourses');
+            $alt = get_string('editworkflow', 'tool_lifecycle');
             $icon = 't/edit';
             $output .= $this->format_icon_link($action, $row->id, $icon, $alt);
 
             if (!workflow_manager::is_active($row->id)) {
                 $action = ACTION_WORKFLOW_DELETE;
-                $alt = get_string('deleteworkflow', 'tool_cleanupcourses');
+                $alt = get_string('deleteworkflow', 'tool_lifecycle');
                 $icon = 't/delete';
                 $output .= $this->format_icon_link($action, $row->id, $icon, $alt);
             }
diff --git a/classes/table/workflow_table.php b/classes/table/workflow_table.php
index 642901ffcd7b0b590f5f20c0fee609ef78bf8c8a..1ddc25bbb617a208554a8a977f41294df56d0d86 100644
--- a/classes/table/workflow_table.php
+++ b/classes/table/workflow_table.php
@@ -17,16 +17,16 @@
 /**
  * Table listing all active automatically triggered workflows.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2018 Jan Dageförde WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\table;
+namespace tool_lifecycle\table;
 
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 defined('MOODLE_INTERNAL') || die;
 
@@ -62,7 +62,7 @@ abstract class workflow_table extends \table_sql {
             array('action' => ACTION_WORKFLOW_ACTIVATE,
                 'sesskey' => sesskey(),
                 'workflowid' => $row->id)),
-            get_string('activateworkflow', 'tool_cleanupcourses'));
+            get_string('activateworkflow', 'tool_lifecycle'));
     }
 
     /**
@@ -95,9 +95,9 @@ abstract class workflow_table extends \table_sql {
         global $OUTPUT;
         $output = '';
 
-        $alt = get_string('viewsteps', 'tool_cleanupcourses');
+        $alt = get_string('viewsteps', 'tool_lifecycle');
         $icon = 't/viewdetails';
-        $url = new \moodle_url('/admin/tool/cleanupcourses/workflowsettings.php',
+        $url = new \moodle_url('/admin/tool/lifecycle/workflowsettings.php',
             array('workflowid' => $row->id, 'sesskey' => sesskey()));
         $output .= $OUTPUT->action_icon($url, new \pix_icon($icon, $alt, 'moodle', array('title' => $alt)),
             null , array('title' => $alt));
diff --git a/classes/task/process_cleanup.php b/classes/task/lifecycle_task.php
similarity index 72%
rename from classes/task/process_cleanup.php
rename to classes/task/lifecycle_task.php
index 2e4ecc4859c39339b3a75fee50334eb817f16287..12092dfdb2128a7548891357314a9d2ea52727f4 100644
--- a/classes/task/process_cleanup.php
+++ b/classes/task/lifecycle_task.php
@@ -15,32 +15,32 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Scheduled task for processing the cleanup
+ * Scheduled task for working on lifecycle processes
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\task;
+namespace tool_lifecycle\task;
 
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\cleanup_processor;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\processor;
 
 defined('MOODLE_INTERNAL') || die;
 
-class process_cleanup extends \core\task\scheduled_task {
+class lifecycle_task extends \core\task\scheduled_task {
 
     public function get_name() {
-        return get_string('process_cleanup', 'tool_cleanupcourses');
+        return get_string('lifecycle_task', 'tool_lifecycle');
     }
 
     public function execute() {
-        $processor = new cleanup_processor();
+        $processor = new processor();
         $processor->call_trigger();
 
         $steps = step_manager::get_step_types();
-        /* @var \tool_cleanupcourses\step\libbase[] $steplibs stores the lib classes of all step subplugins.*/
+        /* @var \tool_lifecycle\step\libbase[] $steplibs stores the lib classes of all step subplugins.*/
         $steplibs = array();
         foreach ($steps as $id => $step) {
             $steplibs[$id] = lib_manager::get_step_lib($id);
diff --git a/classes/view_controller.php b/classes/view_controller.php
index 34e5bffb119ae9f3458c28db893ea751ca7fbfcc..d893986ce4bde4f0ee9bf0efa31585aceeb70df4 100644
--- a/classes/view_controller.php
+++ b/classes/view_controller.php
@@ -16,28 +16,28 @@
 
 /**
  * Controller for view.php
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2018 Tamara Gunkel, Jan Dageförde (WWU)
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-namespace tool_cleanupcourses;
+namespace tool_lifecycle;
 
 use core\notification;
-use tool_cleanupcourses\manager\interaction_manager;
-use tool_cleanupcourses\manager\lib_manager;
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\table\interaction_remaining_table;
-use tool_cleanupcourses\table\interaction_attention_table;
+use tool_lifecycle\manager\interaction_manager;
+use tool_lifecycle\manager\lib_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\table\interaction_remaining_table;
+use tool_lifecycle\table\interaction_attention_table;
 
 defined('MOODLE_INTERNAL') || die();
 
 /**
  * Controller for view.php
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2018 Tamara Gunkel, Jan Dageförde (WWU)
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -52,7 +52,7 @@ class view_controller {
     public function handle_view($renderer) {
         global $DB;
 
-        $courses = get_user_capability_course('tool/cleanupcourses:managecourses', null, false);
+        $courses = get_user_capability_course('tool/lifecycle:managecourses', null, false);
         if (!$courses) {
             echo 'no courses';
             // TODO show error.
@@ -67,9 +67,9 @@ class view_controller {
 
         $processes = $DB->get_recordset_sql("SELECT p.id as processid, c.id as courseid, c.fullname as coursefullname, " .
         "c.shortname as courseshortname, s.id as stepinstanceid, s.instancename as stepinstancename, s.subpluginname " .
-            "FROM {tool_cleanupcourses_process} p join " .
+            "FROM {tool_lifecycle_process} p join " .
             "{course} c on p.courseid = c.id join " .
-            "{tool_cleanupcourses_step} s ".
+            "{tool_lifecycle_step} s ".
             "on p.workflowid = s.workflowid AND p.stepindex = s.sortindex " .
             "WHERE p.courseid IN (". $listofcourseids . ")");
 
@@ -86,18 +86,18 @@ class view_controller {
             }
         }
 
-        echo $renderer->heading(get_string('tablecoursesrequiringattention', 'tool_cleanupcourses'), 3);
-        $table1 = new interaction_attention_table('tool_cleanupcourses_interaction', $requiresinteraction);
+        echo $renderer->heading(get_string('tablecoursesrequiringattention', 'tool_lifecycle'), 3);
+        $table1 = new interaction_attention_table('tool_lifecycle_interaction', $requiresinteraction);
 
         echo $renderer->box_start("managing_courses_tables");
         $table1->out(50, false);
         echo $renderer->box_end();
 
         echo $renderer->box("");
-        echo $renderer->heading(get_string('tablecoursesremaining', 'tool_cleanupcourses'), 3);
-        $table2 = new interaction_remaining_table('tool_cleanupcourses_remaining', $arrayofcourseids);
+        echo $renderer->heading(get_string('tablecoursesremaining', 'tool_lifecycle'), 3);
+        $table2 = new interaction_remaining_table('tool_lifecycle_remaining', $arrayofcourseids);
 
-        echo $renderer->box_start("cleanupcourses-enable-overflow cleanupcourses-table");
+        echo $renderer->box_start("lifecycle-enable-overflow lifecycle-table");
         $table2->out(50, false);
         echo $renderer->box_end();
     }
@@ -118,7 +118,7 @@ class view_controller {
         require_capability($capability, \context_course::instance($process->courseid), null, false);
 
         if (interaction_manager::handle_interaction($stepid, $processid, $action)) {
-            redirect($PAGE->url, get_string('interaction_success', 'tool_cleanupcourses'), null, notification::SUCCESS);
+            redirect($PAGE->url, get_string('interaction_success', 'tool_lifecycle'), null, notification::SUCCESS);
         }
     }
 
@@ -135,7 +135,7 @@ class view_controller {
         $trigger = trigger_manager::get_instance($triggerid);
         $lib = lib_manager::get_trigger_lib($trigger->subpluginname);
         if (!$lib->is_manual_trigger()) {
-            throw new \moodle_exception('error_wrong_trigger_selected', 'tool_cleanupcourses');
+            throw new \moodle_exception('error_wrong_trigger_selected', 'tool_lifecycle');
         }
 
         // Check if user has capability.
@@ -145,15 +145,15 @@ class view_controller {
         // Check if course does not have a running process.
         $runningprocess = process_manager::get_process_by_course_id($courseid);
         if ($runningprocess !== null) {
-            redirect($PAGE->url, get_string('manual_trigger_process_existed', 'tool_cleanupcourses'), null, notification::ERROR);
+            redirect($PAGE->url, get_string('manual_trigger_process_existed', 'tool_lifecycle'), null, notification::ERROR);
         }
 
         // Actually trigger process.
         $process = process_manager::manually_trigger_process($courseid, $triggerid);
 
-        $processor = new cleanup_processor();
+        $processor = new processor();
         if ($processor->process_course_interactive($process->id)) {
-            redirect($PAGE->url, get_string('manual_trigger_success', 'tool_cleanupcourses'), null, notification::SUCCESS);
+            redirect($PAGE->url, get_string('manual_trigger_success', 'tool_lifecycle'), null, notification::SUCCESS);
         }
     }
 }
\ No newline at end of file
diff --git a/codecov.yml b/codecov.yml
index eaa2a447b16457b5a228de54dd2d4e1eabbcbe61..82b29138263a1ae3f7d10c2b5f49b4a99767f21f 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -1,5 +1,5 @@
 fixes:
-	- "moodle/admin/tool/cleanupcourses/::"
+	- "moodle/admin/tool/lifecycle/::"
 ignore:
     # artificial/Moodle API files
     - "classes/plugininfo/*"
diff --git a/coursebackups.php b/coursebackups.php
index b31f158e25f924dc00a7b7a2a1f3be0d5172ab3a..6c8aee2bee9e640f9bb529398524fffe93f1bb71 100644
--- a/coursebackups.php
+++ b/coursebackups.php
@@ -17,7 +17,7 @@
 /**
  * Display the list of all course backups
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -28,16 +28,16 @@ $PAGE->set_context(context_system::instance());
 require_login(null, false);
 require_capability('moodle/site:config', context_system::instance());
 
-admin_externalpage_setup('tool_cleanupcourses_coursebackups');
+admin_externalpage_setup('tool_lifecycle_coursebackups');
 
-$PAGE->set_url(new \moodle_url('/admin/tool/cleanupcourses/coursebackups.php'));
+$PAGE->set_url(new \moodle_url('/admin/tool/lifecycle/coursebackups.php'));
 
-$table = new tool_cleanupcourses\table\course_backups_table('tool_cleanupcourses_course_backups');
+$table = new tool_lifecycle\table\course_backups_table('tool_lifecycle_course_backups');
 
-$PAGE->set_title(get_string('course_backups_list_header', 'tool_cleanupcourses'));
-$PAGE->set_heading(get_string('course_backups_list_header', 'tool_cleanupcourses'));
+$PAGE->set_title(get_string('course_backups_list_header', 'tool_lifecycle'));
+$PAGE->set_heading(get_string('course_backups_list_header', 'tool_lifecycle'));
 
-$renderer = $PAGE->get_renderer('tool_cleanupcourses');
+$renderer = $PAGE->get_renderer('tool_lifecycle');
 
 echo $renderer->header();
 $table->out(50, false);
diff --git a/db/access.php b/db/access.php
index 0102a2c65125ad22c3eb4d6320114a6c0419e038..37c42da57b1be89cdf070533e2389628c6faa412 100644
--- a/db/access.php
+++ b/db/access.php
@@ -15,8 +15,8 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Capability definitions for the tool_cleanupcourses plugin
- * @package    tool_cleanupcourses
+ * Capability definitions for the tool_lifecycle plugin
+ * @package    tool_lifecycle
  * @copyright  2018 Tamara Gunkel, Jan Dageförde (WWU)
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -24,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
 
 $capabilities = array(
 
-    'tool/cleanupcourses:managecourses' => array(
+    'tool/lifecycle:managecourses' => array(
         'contextlevel' => CONTEXT_COURSE,
         'captype' => 'write',
         'archetypes' => array(
diff --git a/db/install.php b/db/install.php
index 5d544f70d7157affc72b03560e69f3935c50a69d..34d36a23c86a7ec76ca79dbe6a03770ae9b87b00 100644
--- a/db/install.php
+++ b/db/install.php
@@ -15,15 +15,15 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Install script for course cleanup
+ * Install script for lifecycle plugin
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
 defined('MOODLE_INTERNAL') || die();
 
-function xmldb_tool_cleanupcourses_install() {
+function xmldb_tool_lifecycle_install() {
 
 }
\ No newline at end of file
diff --git a/db/install.xml b/db/install.xml
index d7c8f33d99993f817f4bb37629d955c245c18b3d..e103a55a09ea502da24f7801a6153b85a9ceb47c 100644
--- a/db/install.xml
+++ b/db/install.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="admin/tool/cleanupcourses/db" VERSION="2018022102" COMMENT="XMLDB file for Moodle tool/cleanupcourses"
+<XMLDB PATH="admin/tool/lifecycle/db" VERSION="2018022102" COMMENT="XMLDB file for Moodle tool/lifecycle"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../../../lib/xmldb/xmldb.xsd"
 >
   <TABLES>
-    <TABLE NAME="tool_cleanupcourses_process" COMMENT="table containing the state of all courses currently within the cleanup process">
+    <TABLE NAME="tool_lifecycle_process" COMMENT="table containing the state of all courses currently within a lifecycle process">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="true" COMMENT="id of the process"/>
         <FIELD NAME="courseid" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="course id"/>
@@ -16,10 +16,10 @@
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
         <KEY NAME="courseid_fk" TYPE="foreign-unique" FIELDS="courseid" REFTABLE="course" REFFIELDS="id" COMMENT="Foreign key on course table"/>
-        <KEY NAME="workflowid_fk" TYPE="foreign" FIELDS="workflowid" REFTABLE="tool_cleanupcourses_workflow" REFFIELDS="id"/>
+        <KEY NAME="workflowid_fk" TYPE="foreign" FIELDS="workflowid" REFTABLE="tool_lifecycle_workflow" REFFIELDS="id"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="tool_cleanupcourses_delayed" COMMENT="List of courses, for which the next check is delayed until a certain timestamp.">
+    <TABLE NAME="tool_lifecycle_delayed" COMMENT="List of courses, for which the next check is delayed until a certain timestamp.">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
         <FIELD NAME="courseid" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="id of the course"/>
@@ -30,7 +30,7 @@
         <KEY NAME="courseid_fk" TYPE="foreign" FIELDS="courseid" REFTABLE="course" REFFIELDS="id" COMMENT="Foreign key on course table"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="tool_cleanupcourses_trigger" COMMENT="Trigger subplugins for the cleanup courses">
+    <TABLE NAME="tool_lifecycle_trigger" COMMENT="Trigger subplugins for the life cycle">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
         <FIELD NAME="instancename" TYPE="char" LENGTH="50" NOTNULL="true" SEQUENCE="false" COMMENT="instancename of the trigger"/>
@@ -39,10 +39,10 @@
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
-        <KEY NAME="workflowid_fk" TYPE="foreign" FIELDS="workflowid" REFTABLE="tool_cleanupcourses_workflow" REFFIELDS="id"/>
+        <KEY NAME="workflowid_fk" TYPE="foreign" FIELDS="workflowid" REFTABLE="tool_lifecycle_workflow" REFFIELDS="id"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="tool_cleanupcourses_step" COMMENT="Step subplugins for the cleanup courses">
+    <TABLE NAME="tool_lifecycle_step" COMMENT="Step subplugins for the life cycle">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
         <FIELD NAME="instancename" TYPE="char" LENGTH="50" NOTNULL="true" SEQUENCE="false" COMMENT="instancename of the step"/>
@@ -52,10 +52,10 @@
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
-        <KEY NAME="workflowid_fk" TYPE="foreign" FIELDS="workflowid" REFTABLE="tool_cleanupcourses_workflow" REFFIELDS="id"/>
+        <KEY NAME="workflowid_fk" TYPE="foreign" FIELDS="workflowid" REFTABLE="tool_lifecycle_workflow" REFFIELDS="id"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="tool_cleanupcourses_settings" COMMENT="Settings for step instances">
+    <TABLE NAME="tool_lifecycle_settings" COMMENT="Settings for step instances">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
         <FIELD NAME="instanceid" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false" COMMENT="id of the step instance"/>
@@ -65,10 +65,10 @@
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
-        <KEY NAME="instanceid_fk" TYPE="foreign" FIELDS="instanceid" REFTABLE="tool_cleanupcourses_step" REFFIELDS="id" COMMENT="Foreignkey for step instance"/>
+        <KEY NAME="instanceid_fk" TYPE="foreign" FIELDS="instanceid" REFTABLE="tool_lifecycle_step" REFFIELDS="id" COMMENT="Foreignkey for step instance"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="tool_cleanupcourses_procdata" COMMENT="Stores the process data in a key/value-store">
+    <TABLE NAME="tool_lifecycle_procdata" COMMENT="Stores the process data in a key/value-store">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
         <FIELD NAME="processid" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="id of the process"/>
@@ -79,11 +79,11 @@
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
-        <KEY NAME="processid_fk" TYPE="foreign" FIELDS="processid" REFTABLE="tool_cleanupcourses_process" REFFIELDS="id" COMMENT="Foreign key on process table"/>
-        <KEY NAME="stepid_fk" TYPE="foreign" FIELDS="stepid" REFTABLE="tool_cleanupcourses_step" REFFIELDS="id" COMMENT="Foreign key on step table"/>
+        <KEY NAME="processid_fk" TYPE="foreign" FIELDS="processid" REFTABLE="tool_lifecycle_process" REFFIELDS="id" COMMENT="Foreign key on process table"/>
+        <KEY NAME="stepid_fk" TYPE="foreign" FIELDS="stepid" REFTABLE="tool_lifecycle_step" REFFIELDS="id" COMMENT="Foreign key on step table"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="tool_cleanupcourses_backups" COMMENT="Saves the location of course backups and the relevant information of the course.">
+    <TABLE NAME="tool_lifecycle_backups" COMMENT="Saves the location of course backups and the relevant information of the course.">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
         <FIELD NAME="courseid" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="false" COMMENT="id of the course the backup belongs to"/>
@@ -96,7 +96,7 @@
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
       </KEYS>
     </TABLE>
-    <TABLE NAME="tool_cleanupcourses_workflow" COMMENT="Workflow definitions for processes">
+    <TABLE NAME="tool_lifecycle_workflow" COMMENT="Workflow definitions for processes">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="true"/>
         <FIELD NAME="title" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" COMMENT="Title of a workflow"/>
diff --git a/db/subplugins.php b/db/subplugins.php
index 86740eccc4c3858e824b4f039aa893485e83a31b..4b76bb11c2d0edf3c8576d082b6d2213309dc05c 100644
--- a/db/subplugins.php
+++ b/db/subplugins.php
@@ -17,13 +17,13 @@
 /**
  * Definition of subplugins
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 defined('MOODLE_INTERNAL') || die();
 
 $subplugins = array(
-    'cleanupcoursestrigger' => 'admin/tool/cleanupcourses/trigger',
-    'cleanupcoursesstep' => 'admin/tool/cleanupcourses/step',
+    'lifecycletrigger' => 'admin/tool/lifecycle/trigger',
+    'lifecyclestep' => 'admin/tool/lifecycle/step',
 );
diff --git a/db/tasks.php b/db/tasks.php
index 64b0c55a26024a8d2cf5675ff69779451dc3af3d..22611f5f696b7faabf38cc6fe0bb2b7488fb2004 100644
--- a/db/tasks.php
+++ b/db/tasks.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Definition of cleanup courses scheduled tasks.
+ * Definition of life cycle scheduled tasks.
  *
- * @package   tool_cleanupcourses
+ * @package   tool_lifecycle
  * @category  task
  * @copyright  2017 Tobias Reischmann WWU
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -27,7 +27,7 @@ defined('MOODLE_INTERNAL') || die();
 
 $tasks = array(
     array(
-        'classname' => 'tool_cleanupcourses\task\process_cleanup',
+        'classname' => 'tool_lifecycle\task\lifecycle_task',
         'blocking' => 0,
         'minute' => '*',
         'hour' => '*',
diff --git a/db/upgrade.php b/db/upgrade.php
index f70021419657ba96b31df7f0ef393e174897ef86..35bc8384e66b2d40b31a4f852a73bd3fef402676 100644
--- a/db/upgrade.php
+++ b/db/upgrade.php
@@ -15,24 +15,24 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Update script for course cleanup
+ * Update script for lifecycle plugin
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
 defined('MOODLE_INTERNAL') || die();
 
-function xmldb_tool_cleanupcourses_upgrade($oldversion) {
+function xmldb_tool_lifecycle_upgrade($oldversion) {
 
     global $DB;
     $dbman = $DB->get_manager();
 
     if ($oldversion < 2017081101) {
 
-        // Create table tool_cleanupcourses_workflow.
-        $table = new xmldb_table('tool_cleanupcourses_workflow');
+        // Create table tool_lifecycle_workflow.
+        $table = new xmldb_table('tool_lifecycle_workflow');
         $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null, null);
         $table->add_field('title', XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, 'id');
         $table->add_field('active', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '0', 'title');
@@ -44,8 +44,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->create_table($table);
         }
 
-        // Changing structure of table tool_cleanupcourses_step.
-        $table = new xmldb_table('tool_cleanupcourses_step');
+        // Changing structure of table tool_lifecycle_step.
+        $table = new xmldb_table('tool_lifecycle_step');
         $field = new xmldb_field('followedby');
 
         // Conditionally drop followedby field.
@@ -54,7 +54,7 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
         }
 
         $field = new xmldb_field('workflowid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'subpluginname');
-        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_cleanupcourses_workflow', array('id'));
+        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_lifecycle_workflow', array('id'));
 
         // Conditionally create the field.
         if (!$dbman->field_exists($table, $field)) {
@@ -69,8 +69,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        // Changing structure of table tool_cleanupcourses_trigger.
-        $table = new xmldb_table('tool_cleanupcourses_trigger');
+        // Changing structure of table tool_lifecycle_trigger.
+        $table = new xmldb_table('tool_lifecycle_trigger');
         $field = new xmldb_field('followedby');
 
         // Conditionally drop followedby field.
@@ -80,7 +80,7 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
 
         // Add workflowfield to trigger.
         $field = new xmldb_field('workflowid', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'enabled');
-        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_cleanupcourses_workflow', array('id'));
+        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_lifecycle_workflow', array('id'));
 
         // Conditionally create the field.
         if (!$dbman->field_exists($table, $field)) {
@@ -88,8 +88,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_key($table, $key);
         }
 
-        // Changing structure of table tool_cleanupcourses_process.
-        $table = new xmldb_table('tool_cleanupcourses_process');
+        // Changing structure of table tool_lifecycle_process.
+        $table = new xmldb_table('tool_lifecycle_process');
         $field = new xmldb_field('stepid');
 
         // Conditionally drop followedby field.
@@ -98,7 +98,7 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
         }
 
         $field = new xmldb_field('workflowid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'courseid');
-        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_cleanupcourses_workflow', array('id'));
+        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_lifecycle_workflow', array('id'));
 
         // Conditionally create the field.
         if (!$dbman->field_exists($table, $field)) {
@@ -113,14 +113,14 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2017081101, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2017081101, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018021300) {
 
-        // Define field sortindex to be added to tool_cleanupcourses_workflow.
-        $table = new xmldb_table('tool_cleanupcourses_workflow');
+        // Define field sortindex to be added to tool_lifecycle_workflow.
+        $table = new xmldb_table('tool_lifecycle_workflow');
         $field = new xmldb_field('sortindex', XMLDB_TYPE_INTEGER, '3', null, null, null, null, 'timeactive');
 
         // Conditionally launch add field sortindex.
@@ -128,14 +128,14 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018021300, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018021300, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018021301) {
 
-        // Define field type to be added to tool_cleanupcourses_settings.
-        $table = new xmldb_table('tool_cleanupcourses_settings');
+        // Define field type to be added to tool_lifecycle_settings.
+        $table = new xmldb_table('tool_lifecycle_settings');
         $field = new xmldb_field('type', XMLDB_TYPE_CHAR, '7', null, XMLDB_NOTNULL, null, null, 'instanceid');
 
         // Conditionally launch add field type.
@@ -143,16 +143,16 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        $DB->execute('update {tool_cleanupcourses_settings} set type = \'step\'');
+        $DB->execute('update {tool_lifecycle_settings} set type = \'step\'');
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018021301, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018021301, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018021302) {
 
-        // Define field workflowid to be added to tool_cleanupcourses_trigger.
-        $table = new xmldb_table('tool_cleanupcourses_trigger');
+        // Define field workflowid to be added to tool_lifecycle_trigger.
+        $table = new xmldb_table('tool_lifecycle_trigger');
         $field = new xmldb_field('workflowid', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, null, 'subpluginname');
 
         // Conditionally launch add field workflowid.
@@ -160,8 +160,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        // Define field instancename to be added to tool_cleanupcourses_trigger.
-        $table = new xmldb_table('tool_cleanupcourses_trigger');
+        // Define field instancename to be added to tool_lifecycle_trigger.
+        $table = new xmldb_table('tool_lifecycle_trigger');
         $field = new xmldb_field('instancename', XMLDB_TYPE_CHAR, '50', null, XMLDB_NOTNULL, null, null, 'workflowid');
 
         // Conditionally launch add field instancename.
@@ -169,8 +169,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        // Define field enabled to be dropped from tool_cleanupcourses_trigger.
-        $table = new xmldb_table('tool_cleanupcourses_trigger');
+        // Define field enabled to be dropped from tool_lifecycle_trigger.
+        $table = new xmldb_table('tool_lifecycle_trigger');
         $field = new xmldb_field('enabled');
 
         // Conditionally launch drop field enabled.
@@ -178,8 +178,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->drop_field($table, $field);
         }
 
-        // Define field sortindex to be dropped from tool_cleanupcourses_trigger.
-        $table = new xmldb_table('tool_cleanupcourses_trigger');
+        // Define field sortindex to be dropped from tool_lifecycle_trigger.
+        $table = new xmldb_table('tool_lifecycle_trigger');
         $field = new xmldb_field('sortindex');
 
         // Conditionally launch drop field sortindex.
@@ -187,8 +187,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->drop_field($table, $field);
         }
 
-        // Define field sortindex to be dropped from tool_cleanupcourses_trigger.
-        $table = new xmldb_table('tool_cleanupcourses_trigger');
+        // Define field sortindex to be dropped from tool_lifecycle_trigger.
+        $table = new xmldb_table('tool_lifecycle_trigger');
         $field = new xmldb_field('sortindex');
 
         // Conditionally launch drop field sortindex.
@@ -196,21 +196,21 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->drop_field($table, $field);
         }
 
-        // Define key workflowid_fk (foreign) to be added to tool_cleanupcourses_trigger.
-        $table = new xmldb_table('tool_cleanupcourses_trigger');
-        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_cleanupcourses_workflow', array('id'));
+        // Define key workflowid_fk (foreign) to be added to tool_lifecycle_trigger.
+        $table = new xmldb_table('tool_lifecycle_trigger');
+        $key = new xmldb_key('workflowid_fk', XMLDB_KEY_FOREIGN, array('workflowid'), 'tool_lifecycle_workflow', array('id'));
 
         // Launch add key workflowid_fk.
         $dbman->add_key($table, $key);
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018021302, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018021302, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018022001) {
 
-        // Define field manual to be added to tool_cleanupcourses_workflow.
-        $table = new xmldb_table('tool_cleanupcourses_workflow');
+        // Define field manual to be added to tool_lifecycle_workflow.
+        $table = new xmldb_table('tool_lifecycle_workflow');
         $field = new xmldb_field('manual', XMLDB_TYPE_INTEGER, '1', null, null, null, null, 'sortindex');
 
         // Conditionally launch add field manual.
@@ -218,60 +218,60 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018022001, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018022001, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018022002) {
 
-        // Define field manual to be added to tool_cleanupcourses_workflow.
-        $table = new xmldb_table('tool_cleanupcourses_procdata');
+        // Define field manual to be added to tool_lifecycle_workflow.
+        $table = new xmldb_table('tool_lifecycle_procdata');
         $field = new xmldb_field('key', XMLDB_TYPE_CHAR, '50', null, XMLDB_NOTNULL, null, null, 'subpluginname');
 
         // Launch rename field key.
         $dbman->rename_field($table, $field, 'keyname');
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018022002, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018022002, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018022005) {
-        $workflows = \tool_cleanupcourses\manager\workflow_manager::get_active_workflows();
+        $workflows = \tool_lifecycle\manager\workflow_manager::get_active_workflows();
         foreach ($workflows as $workflow) {
             if ($workflow->manual === null) {
-                $trigger = \tool_cleanupcourses\manager\trigger_manager::get_trigger_for_workflow($workflow->id);
-                $lib = \tool_cleanupcourses\manager\lib_manager::get_trigger_lib($trigger->subpluginname);
+                $trigger = \tool_lifecycle\manager\trigger_manager::get_trigger_for_workflow($workflow->id);
+                $lib = \tool_lifecycle\manager\lib_manager::get_trigger_lib($trigger->subpluginname);
                 $workflow->manual = $lib->is_manual_trigger();
-                \tool_cleanupcourses\manager\workflow_manager::insert_or_update($workflow);
+                \tool_lifecycle\manager\workflow_manager::insert_or_update($workflow);
             }
         }
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018022005, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018022005, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018022101) {
 
-        // Define key courseid_fk (foreign) to be dropped form tool_cleanupcourses_process.
-        $table = new xmldb_table('tool_cleanupcourses_process');
+        // Define key courseid_fk (foreign) to be dropped form tool_lifecycle_process.
+        $table = new xmldb_table('tool_lifecycle_process');
         $key = new xmldb_key('courseid_fk', XMLDB_KEY_FOREIGN, array('courseid'), 'course', array('id'));
 
         // Launch drop key courseid_fk.
         $dbman->drop_key($table, $key);
 
-        // Define key courseid_fk (foreign-unique) to be added to tool_cleanupcourses_process.
+        // Define key courseid_fk (foreign-unique) to be added to tool_lifecycle_process.
         $key = new xmldb_key('courseid_fk', XMLDB_KEY_FOREIGN_UNIQUE, array('courseid'), 'course', array('id'));
 
         // Launch add key courseid_fk.
         $dbman->add_key($table, $key);
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018022101, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018022101, 'tool', 'lifecycle');
     }
 
     if ($oldversion < 2018022102) {
 
-        // Define field displaytitle to be added to tool_cleanupcourses_workflow.
-        $table = new xmldb_table('tool_cleanupcourses_workflow');
+        // Define field displaytitle to be added to tool_lifecycle_workflow.
+        $table = new xmldb_table('tool_lifecycle_workflow');
         $field = new xmldb_field('displaytitle', XMLDB_TYPE_CHAR, '255', null, null, null, null, 'manual');
 
         // Conditionally launch add field displaytitle.
@@ -279,8 +279,8 @@ function xmldb_tool_cleanupcourses_upgrade($oldversion) {
             $dbman->add_field($table, $field);
         }
 
-        // Cleanupcourses savepoint reached.
-        upgrade_plugin_savepoint(true, 2018022102, 'tool', 'cleanupcourses');
+        // lifecycle savepoint reached.
+        upgrade_plugin_savepoint(true, 2018022102, 'tool', 'lifecycle');
     }
 
     return true;
diff --git a/lang/en/tool_cleanupcourses.php b/lang/en/tool_lifecycle.php
similarity index 85%
rename from lang/en/tool_cleanupcourses.php
rename to lang/en/tool_lifecycle.php
index 31425ec341708284d5ea55ee7fd8277a5bcab3a1..a7541f9a1fb9b316236c4027bbff5d998701b287 100644
--- a/lang/en/tool_cleanupcourses.php
+++ b/lang/en/tool_lifecycle.php
@@ -15,23 +15,23 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Course Cleanup langauge strings.
+ * Life cycle langauge strings.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
 
 
-$string['pluginname'] = 'Cleanup Courses';
-$string['plugintitle'] = 'Cleanup Courses';
+$string['pluginname'] = 'Life Cycle';
+$string['plugintitle'] = 'Course Life Cycle';
 
-$string['cleanupcourses:managecourses'] = 'May manage courses in tool_cleanupcourses';
+$string['lifecycle:managecourses'] = 'May manage courses in tool_lifecycle';
 
 $string['general_config_header'] = "General & Subplugins";
 $string['config_delay_duration'] = 'Duration of a course delay';
-$string['config_delay_duration_desc'] = 'Defines the time frame, which a course is excluded from the cleanup course, when rolled back via user interaction.';
+$string['config_delay_duration_desc'] = 'Defines the time frame, which a course is excluded from the life cycle processes, when rolled back via user interaction.';
 $string['active_processes_list_header'] = 'Active Processes';
 $string['adminsettings_heading'] = 'Workflow Settings';
 $string['active_manual_workflows_heading'] = 'Active Manual Workflows';
@@ -55,7 +55,7 @@ $string['trigger_does_not_exist'] = 'The requested trigger could not be found.';
 $string['cannot_trigger_workflow_manually'] = 'The requested workflow could not be triggered manually.';
 $string['error_wrong_trigger_selected'] = 'You tried to request a non-manual trigger.';
 
-$string['process_cleanup'] = 'Run the cleanup courses processes';
+$string['lifecycle_task'] = 'Run the life cycle processes';
 
 $string['trigger_subpluginname'] = 'Subplugin Name';
 $string['trigger_instancename'] = 'Instance Name';
@@ -92,13 +92,13 @@ $string['step'] = 'Process step';
 
 $string['workflow_trigger'] = 'Trigger for the workflow';
 
-$string['cleanupcoursestrigger'] = 'Trigger';
-$string['cleanupcoursesstep'] = 'Process step';
+$string['lifecycletrigger'] = 'Trigger';
+$string['lifecyclestep'] = 'Process step';
 
-$string['subplugintype_cleanupcoursestrigger'] = 'Trigger for starting the course cleanup';
-$string['subplugintype_cleanupcoursestrigger_plural'] = 'Triggers for starting the course cleanup';
-$string['subplugintype_cleanupcoursesstep'] = 'Step within a course cleanup process';
-$string['subplugintype_cleanupcoursesstep_plural'] = 'Steps within a course cleanup process';
+$string['subplugintype_lifecycletrigger'] = 'Trigger for starting a lifecycle process';
+$string['subplugintype_lifecycletrigger_plural'] = 'Triggers for starting a lifecycle process';
+$string['subplugintype_lifecyclestep'] = 'Step within a lifecycle process';
+$string['subplugintype_lifecyclestep_plural'] = 'Steps within a lifecycle process';
 
 $string['nointeractioninterface'] = 'No Interaction Interface available!';
 $string['tools'] = 'Tools';
diff --git a/lib.php b/lib.php
index cd046034d24d1a595c0bedede0d57d946205d017..ebb3713531e0ddd37c0870f2c19327e969adaf3a 100644
--- a/lib.php
+++ b/lib.php
@@ -15,7 +15,7 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
diff --git a/renderer.php b/renderer.php
index cda6b10b4d699135b7072fc3b8a40ce3887204fd..393c52b7721d19a5c8b035dfd0a513ec7cc01c3b 100644
--- a/renderer.php
+++ b/renderer.php
@@ -15,15 +15,15 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Renderer for cleanup courses
+ * Renderer for life cycle
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 defined('MOODLE_INTERNAL') || die();
 
-class tool_cleanupcourses_renderer extends plugin_renderer_base {
+class tool_lifecycle_renderer extends plugin_renderer_base {
 
     /**
      * Write the page footer
diff --git a/restore.php b/restore.php
index 0502d83536987528d2f111184677d2537d8b3a37..37277f4cb090ddbda82cf2e99e41a3913e619ef2 100644
--- a/restore.php
+++ b/restore.php
@@ -17,13 +17,13 @@
 /**
  * Display the list of courses relevant for a specific user in a specific step instance.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 require_once(__DIR__ . '/../../../config.php');
 
-use tool_cleanupcourses\manager\backup_manager;
+use tool_lifecycle\manager\backup_manager;
 
 $PAGE->set_context(context_system::instance());
 require_login(null, false);
diff --git a/settings.php b/settings.php
index a25a14bb56d9ec0714dc5eb5d49e3dc34d25536e..ebec7129e4c8019c7ee99e4c1ad5754fd601b69d 100644
--- a/settings.php
+++ b/settings.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Settings page which gives an overview over running cleanup processes.
+ * Settings page which gives an overview over running lifecycle processes.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -26,29 +26,29 @@ defined('MOODLE_INTERNAL') || die;
 if ($hassiteconfig) {
     require_once(__DIR__ . '/adminlib.php');
 
-    $category = new admin_category('cleanupcourses_category',
-        get_string('pluginname', 'tool_cleanupcourses'));
+    $category = new admin_category('lifecycle_category',
+        get_string('pluginname', 'tool_lifecycle'));
     $ADMIN->add('tools', $category);
-    $settings = new admin_settingpage('tool_cleanupcourses',
-        get_string('general_config_header', 'tool_cleanupcourses'));
-    $ADMIN->add('cleanupcourses_category', $settings);
+    $settings = new admin_settingpage('tool_lifecycle',
+        get_string('general_config_header', 'tool_lifecycle'));
+    $ADMIN->add('lifecycle_category', $settings);
 
-    $settings->add(new admin_setting_configduration('cleanupcourses_duration',
-        get_string('config_delay_duration', 'tool_cleanupcourses'),
-        get_string('config_delay_duration_desc', 'tool_cleanupcourses'),
+    $settings->add(new admin_setting_configduration('lifecycle_duration',
+        get_string('config_delay_duration', 'tool_lifecycle'),
+        get_string('config_delay_duration_desc', 'tool_lifecycle'),
         183 * 24 * 60 * 60)); // Dafault value is 180 days.
 
-    $ADMIN->add('cleanupcourses_category', new tool_cleanupcourses\admin_page_active_processes());
-    $ADMIN->add('cleanupcourses_category', new tool_cleanupcourses\admin_page_course_backups());
-    $ADMIN->add('cleanupcourses_category', new tool_cleanupcourses\admin_page_sublugins());
+    $ADMIN->add('lifecycle_category', new tool_lifecycle\admin_page_active_processes());
+    $ADMIN->add('lifecycle_category', new tool_lifecycle\admin_page_course_backups());
+    $ADMIN->add('lifecycle_category', new tool_lifecycle\admin_page_sublugins());
 
     if ($ADMIN->fulltree) {
-        $triggers = core_component::get_plugin_list('cleanupcoursestrigger');
+        $triggers = core_component::get_plugin_list('lifecycletrigger');
         foreach ($triggers as $trigger => $path) {
             if (file_exists($settingsfile = $path . '/settings.php')) {
-                $settings->add(new admin_setting_heading('cleanupcoursestriggersetting'.$trigger,
-                    get_string('trigger', 'tool_cleanupcourses') .
-                    ' - ' . get_string('pluginname', 'cleanupcoursestrigger_' . $trigger), ''));
+                $settings->add(new admin_setting_heading('lifecycletriggersetting'.$trigger,
+                    get_string('trigger', 'tool_lifecycle') .
+                    ' - ' . get_string('pluginname', 'lifecycletrigger_' . $trigger), ''));
                 include($settingsfile);
             }
         }
diff --git a/step/createbackup/lang/en/cleanupcoursesstep_createbackup.php b/step/createbackup/lang/en/lifecyclestep_createbackup.php
similarity index 96%
rename from step/createbackup/lang/en/cleanupcoursesstep_createbackup.php
rename to step/createbackup/lang/en/lifecyclestep_createbackup.php
index 05d2010266dc9628aa1b48c1f1f922140c1801bb..caf33d8131759abea190ab00a4d3c8d2c31c0ddf 100644
--- a/step/createbackup/lang/en/cleanupcoursesstep_createbackup.php
+++ b/step/createbackup/lang/en/lifecyclestep_createbackup.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for create backup step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage createbackup
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/step/createbackup/lib.php b/step/createbackup/lib.php
index d2df65456af989905bffe49eb5377dea87651e77..3c5c22cf06b0bb96bf98a5f5230ab44963c6d817 100644
--- a/step/createbackup/lib.php
+++ b/step/createbackup/lib.php
@@ -18,15 +18,15 @@
  * Interface for the subplugintype step
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage createbackup
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\response\step_response;
-use tool_cleanupcourses\manager\backup_manager;
+use tool_lifecycle\response\step_response;
+use tool_lifecycle\manager\backup_manager;
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/step/createbackup/version.php b/step/createbackup/version.php
index 68190717f44ec7cf628afe6b70de5b49df14aba0..53e977c1fd2c2f95149929f22ac65f6c40422e64 100644
--- a/step/createbackup/version.php
+++ b/step/createbackup/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Create Backup Step
+ * Life Cycle Create Backup Step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage createbackup
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017050901;
-$plugin->component = 'cleanupcoursesstep_createbackup';
\ No newline at end of file
+$plugin->component = 'lifecyclestep_createbackup';
\ No newline at end of file
diff --git a/step/deletecourse/lang/en/cleanupcoursesstep_deletecourse.php b/step/deletecourse/lang/en/lifecyclestep_deletecourse.php
similarity index 96%
rename from step/deletecourse/lang/en/cleanupcoursesstep_deletecourse.php
rename to step/deletecourse/lang/en/lifecyclestep_deletecourse.php
index 666a4d4c9aaf9393d5c7b14e2d49ad24a06d664e..edcc753293313d2baff91ffec5a68a9c8fdad683 100644
--- a/step/deletecourse/lang/en/cleanupcoursesstep_deletecourse.php
+++ b/step/deletecourse/lang/en/lifecyclestep_deletecourse.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for delete course step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage deletecourse
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/step/deletecourse/lib.php b/step/deletecourse/lib.php
index dfeeb601f5c3d40779bd7ac7979ca7e74d572127..012b56ed9a4c8baabe0bcfcf9aff93f7a09ff919 100644
--- a/step/deletecourse/lib.php
+++ b/step/deletecourse/lib.php
@@ -18,14 +18,14 @@
  * Interface for the subplugintype step
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage deletecourse
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\response\step_response;
+use tool_lifecycle\response\step_response;
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/step/deletecourse/version.php b/step/deletecourse/version.php
index b9ae1dc99c7f729c55681c4a6933a84b83de2e8f..e157ebbf4a1160b8ba5fa8b33a471d4618c473bb 100644
--- a/step/deletecourse/version.php
+++ b/step/deletecourse/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Delete Course Step
+ * Life Cycle Delete Course Step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage deletecourse
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017050901;
-$plugin->component = 'cleanupcoursesstep_deletecourse';
\ No newline at end of file
+$plugin->component = 'lifecyclestep_deletecourse';
\ No newline at end of file
diff --git a/step/dummy/lang/en/cleanupcoursesstep_dummy.php b/step/dummy/lang/en/lifecyclestep_dummy.php
similarity index 96%
rename from step/dummy/lang/en/cleanupcoursesstep_dummy.php
rename to step/dummy/lang/en/lifecyclestep_dummy.php
index c4535bf8868ef83cce2055fc0172a10ea62e45cd..2159a69bcb9bba22826c5fe98181bbae46bb76b5 100644
--- a/step/dummy/lang/en/cleanupcoursesstep_dummy.php
+++ b/step/dummy/lang/en/lifecyclestep_dummy.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for dummy step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage dummy
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/step/dummy/lib.php b/step/dummy/lib.php
index 83537151236daaafed43c4576bb07e5ab33717d4..4418309587be85e0318a6bbfc5f4902ce012f3da 100644
--- a/step/dummy/lib.php
+++ b/step/dummy/lib.php
@@ -18,14 +18,14 @@
  * Interface for the subplugintype step
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage dummy
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\response\step_response;
+use tool_lifecycle\response\step_response;
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/step/dummy/version.php b/step/dummy/version.php
index 591a5777b43e4871145ff7eaab4918a3440aad7d..63fc1990c1c05c71050afb1dad493733947e8818 100644
--- a/step/dummy/version.php
+++ b/step/dummy/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Dummy Step
+ * Life Cycle Dummy Step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage dummy
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017050901;
-$plugin->component = 'cleanupcoursesstep_dummy';
\ No newline at end of file
+$plugin->component = 'lifecyclestep_dummy';
\ No newline at end of file
diff --git a/step/duplicate/classes/form_duplicate.php b/step/duplicate/classes/form_duplicate.php
index 79f94b653fdc43734effff2369990401dc274db4..7baaed68b640605b6e9dbcdd3b02ca0c89165406 100644
--- a/step/duplicate/classes/form_duplicate.php
+++ b/step/duplicate/classes/form_duplicate.php
@@ -17,14 +17,14 @@
 /**
  * Offers the possibility to enter a new coursename
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace cleanupcoursesstep_duplicate;
+namespace lifecyclestep_duplicate;
 
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\step\interactionduplicate;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\step\interactionduplicate;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -70,7 +70,7 @@ class form_duplicate extends \moodleform {
         $mform->setDefault('action', 'duplicateform');
 
         $mform->addElement('header', 'duplicate_course_header',
-            get_string('duplicate_course_header', 'cleanupcoursesstep_duplicate'));
+            get_string('duplicate_course_header', 'lifecyclestep_duplicate'));
 
         $elementname = 'shortname';
         $mform->addElement('text', $elementname, get_string('shortnamecourse'));
diff --git a/step/duplicate/interactionlib.php b/step/duplicate/interactionlib.php
index 5e2e44d7ffe6339ec124b7388663e97ba68de2b1..51f13a3e33c68bbecb868246dd07bba9057efb79 100644
--- a/step/duplicate/interactionlib.php
+++ b/step/duplicate/interactionlib.php
@@ -18,19 +18,19 @@
  * Interface for the interactions of the subplugintype step
  * It has to be implemented by all subplugins that want to use the interaction view.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @subpackage step
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use cleanupcoursesstep_duplicate\form_duplicate;
-use tool_cleanupcourses\entity\process;
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\manager\process_data_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\response\step_interactive_response;
+use lifecyclestep_duplicate\form_duplicate;
+use tool_lifecycle\entity\process;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\manager\process_data_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\response\step_interactive_response;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -47,7 +47,7 @@ class interactionduplicate extends interactionlibbase {
      * @return string capability string.
      */
     public function get_relevant_capability() {
-        return 'cleanupcoursesstep/email:preventdeletion';
+        return 'lifecyclestep/email:preventdeletion';
     }
 
     /**
@@ -67,7 +67,7 @@ class interactionduplicate extends interactionlibbase {
         }
         return array(
             array('action' => self::ACTION_DUPLICATE_FORM,
-                'alt' => get_string('duplicate_form', 'cleanupcoursesstep_duplicate'),
+                'alt' => get_string('duplicate_form', 'lifecyclestep_duplicate'),
             ),
         );
     }
@@ -82,9 +82,9 @@ class interactionduplicate extends interactionlibbase {
         $shortname = process_data_manager::get_process_data($process->id, $step->id, duplicate::PROC_DATA_COURSESHORTNAME);
         $fullname = process_data_manager::get_process_data($process->id, $step->id, duplicate::PROC_DATA_COURSEFULLNAME);
         if (!empty($fullname) && !empty($shortname)) {
-            return get_string('status_message_duplication', 'cleanupcoursesstep_duplicate');
+            return get_string('status_message_duplication', 'lifecyclestep_duplicate');
         }
-        return get_string('status_message_form', 'cleanupcoursesstep_duplicate');
+        return get_string('status_message_form', 'lifecyclestep_duplicate');
     }
 
     /**
@@ -132,7 +132,7 @@ class interactionduplicate extends interactionlibbase {
      */
     private function render_form($mform) {
         global $PAGE;
-        $renderer = $PAGE->get_renderer('tool_cleanupcourses');
+        $renderer = $PAGE->get_renderer('tool_lifecycle');
 
         echo $renderer->header();
         $mform->display();
diff --git a/step/duplicate/lang/en/cleanupcoursesstep_duplicate.php b/step/duplicate/lang/en/lifecyclestep_duplicate.php
similarity index 96%
rename from step/duplicate/lang/en/cleanupcoursesstep_duplicate.php
rename to step/duplicate/lang/en/lifecyclestep_duplicate.php
index 136c1f34e904d3e4f732a4eae96a5dd3e31578da..bf663dd095d446e9e038c1d77ff835660980eff6 100644
--- a/step/duplicate/lang/en/cleanupcoursesstep_duplicate.php
+++ b/step/duplicate/lang/en/lifecyclestep_duplicate.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for duplicate step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage duplicate
  * @copyright  2018 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/step/duplicate/lib.php b/step/duplicate/lib.php
index db127c7c48a2145ab24ffa7aa57c0960daa4097c..609278b0b36f3e4102a29f71454d50d6b197c476 100644
--- a/step/duplicate/lib.php
+++ b/step/duplicate/lib.php
@@ -18,18 +18,18 @@
  * Interface for the subplugintype step
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage email
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\response\step_response;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\process_data_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\response\step_response;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\process_data_manager;
 use tool_usertours\step;
 
 defined('MOODLE_INTERNAL') || die();
diff --git a/step/duplicate/version.php b/step/duplicate/version.php
index 280826305a36d488269eaf312e70e6e1fde712b7..20dd38f8b9752c93be6ecd84f68096b3d1653811 100644
--- a/step/duplicate/version.php
+++ b/step/duplicate/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Email Step
+ * Life Cycle Email Step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage email
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2018080300;
-$plugin->component = 'cleanupcoursesstep_duplicate';
\ No newline at end of file
+$plugin->component = 'lifecyclestep_duplicate';
\ No newline at end of file
diff --git a/step/email/db/access.php b/step/email/db/access.php
index 64f994d3ab5dec4276d8a30ed1285baaf72ed23a..94ddebbe0834b51b69733fec8782ac5bdbbbd8b0 100644
--- a/step/email/db/access.php
+++ b/step/email/db/access.php
@@ -16,7 +16,7 @@
 
 /**
  * Capability definitions for the email step subplugin
- * @package    cleanupcourses_step
+ * @package    lifecycle_step
  * @subpackage email
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -25,7 +25,7 @@ defined('MOODLE_INTERNAL') || die();
 
 $capabilities = array(
 
-    'cleanupcoursesstep/email:preventdeletion' => array(
+    'lifecyclestep/email:preventdeletion' => array(
         'contextlevel' => CONTEXT_COURSE,
         'captype' => 'write',
         'archetypes' => array(
@@ -34,7 +34,7 @@ $capabilities = array(
             'teacher' => CAP_PREVENT,
             'students' => CAP_PREVENT,
         ),
-        'clonepermissionsfrom' => 'tool/cleanupcourses:managecourses'
+        'clonepermissionsfrom' => 'tool/lifecycle:managecourses'
     ),
 );
 
diff --git a/step/email/db/install.xml b/step/email/db/install.xml
index 6b94cbed7bfc646085b0294dd3ab4d9de6d1c82d..1620fde5939538e5a521c21b91352861cfec7440 100644
--- a/step/email/db/install.xml
+++ b/step/email/db/install.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="admin/tool/cleanupcourses/step/email/db" VERSION="2017052300" COMMENT="XMLDB file for Moodle cleanupcourses_step/email"
+<XMLDB PATH="admin/tool/lifecycle/step/email/db" VERSION="2017052300" COMMENT="XMLDB file for Moodle lifecycle_step/email"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../../lib/xmldb/xmldb.xsd">
   <TABLES>
-    <TABLE NAME="cleanupcoursesstep_email" COMMENT="table containing all mails which still have to be sent">
+    <TABLE NAME="lifecyclestep_email" COMMENT="table containing all mails which still have to be sent">
       <FIELDS>
         <FIELD NAME="id" TYPE="int" LENGTH="20" NOTNULL="true" SEQUENCE="true" COMMENT="id of the mail"/>
         <FIELD NAME="touser" TYPE="int" LENGTH="10" NOTNULL="true" SEQUENCE="false" COMMENT="user id to which the email should go to"/>
diff --git a/step/email/interactionlib.php b/step/email/interactionlib.php
index ccccb84b115d90f84374080f937eafa8c5aa2600..2483ca6d946d46646b4a1442fa7591f7f5191185 100644
--- a/step/email/interactionlib.php
+++ b/step/email/interactionlib.php
@@ -18,20 +18,20 @@
  * Interface for the interactions of the subplugintype step
  * It has to be implemented by all subplugins that want to use the interaction view.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @subpackage step
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\entity\process;
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\manager\process_data_manager;
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\response\step_interactive_response;
+use tool_lifecycle\entity\process;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\manager\process_data_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\response\step_interactive_response;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -48,7 +48,7 @@ class interactionemail extends interactionlibbase {
      * @return string capability string.
      */
     public function get_relevant_capability() {
-        return 'cleanupcoursesstep/email:preventdeletion';
+        return 'lifecyclestep/email:preventdeletion';
     }
 
     /**
@@ -62,7 +62,7 @@ class interactionemail extends interactionlibbase {
     public function get_action_tools($process) {
         return array(
             array('action' => self::ACTION_KEEP,
-                'alt' => get_string('keep_course', 'cleanupcoursesstep_email'),
+                'alt' => get_string('keep_course', 'lifecyclestep_email'),
             ),
         );
     }
@@ -73,7 +73,7 @@ class interactionemail extends interactionlibbase {
      * @return string status message
      */
     public function get_status_message($process) {
-        return get_string('status_message_requiresattention', 'cleanupcoursesstep_email');
+        return get_string('status_message_requiresattention', 'lifecyclestep_email');
     }
 
     /**
diff --git a/step/email/lang/en/cleanupcoursesstep_email.php b/step/email/lang/en/lifecyclestep_email.php
similarity index 97%
rename from step/email/lang/en/cleanupcoursesstep_email.php
rename to step/email/lang/en/lifecyclestep_email.php
index 9909c33faf7e55323000b5de3bc951d2afb2edc4..35131364ac043cbfba6a9e744c058bed66cb0fe3 100644
--- a/step/email/lang/en/cleanupcoursesstep_email.php
+++ b/step/email/lang/en/lifecyclestep_email.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for email step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage email
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/step/email/lib.php b/step/email/lib.php
index 779d28b86d57613367adac0ecd7248d9c4b2ee0f..c1e317dc0ffbb9f18d51d8e112f1e949082437c1 100644
--- a/step/email/lib.php
+++ b/step/email/lib.php
@@ -18,18 +18,18 @@
  * Interface for the subplugintype step
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage email
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\response\step_response;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\process_data_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\response\step_response;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\process_data_manager;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -54,13 +54,13 @@ class email extends libbase {
     public function process_course($processid, $instanceid, $course) {
         global $DB;
         $coursecontext = \context_course::instance($course->id);
-        $userstobeinformed = get_users_by_capability($coursecontext, 'cleanupcoursesstep/email:preventdeletion');
+        $userstobeinformed = get_users_by_capability($coursecontext, 'lifecyclestep/email:preventdeletion');
         foreach ($userstobeinformed as $user) {
             $record = new \stdClass();
             $record->touser = $user->id;
             $record->courseid = $course->id;
             $record->instanceid = $instanceid;
-            $DB->insert_record('cleanupcoursesstep_email', $record);
+            $DB->insert_record('lifecyclestep_email', $record);
         }
         return step_response::waiting();
     }
@@ -96,12 +96,12 @@ class email extends libbase {
             // Format the raw string in the DB to FORMAT_HTML.
             $settings['contenthtml'] = format_text($settings['contenthtml'], FORMAT_HTML);
 
-            $userstobeinformed = $DB->get_records('cleanupcoursesstep_email',
+            $userstobeinformed = $DB->get_records('lifecyclestep_email',
                 array('instanceid' => $step->id), '', 'distinct touser');
             foreach ($userstobeinformed as $userrecord) {
                 $user = \core_user::get_user($userrecord->touser);
                 $transaction = $DB->start_delegated_transaction();
-                $mailentries = $DB->get_records('cleanupcoursesstep_email',
+                $mailentries = $DB->get_records('lifecyclestep_email',
                     array('instanceid' => $step->id,
                         'touser' => $user->id));
 
@@ -112,7 +112,7 @@ class email extends libbase {
                     $contenthtml = $parsedsettings['contenthtml'];
                     // TODO: use course info to parse content template!
                     email_to_user($user, \core_user::get_noreply_user(), $subject, $content, $contenthtml);
-                    $DB->delete_records('cleanupcoursesstep_email',
+                    $DB->delete_records('lifecyclestep_email',
                     array('instanceid' => $step->id,
                         'touser' => $user->id));
                     $transaction->allow_commit();
@@ -142,7 +142,7 @@ class email extends libbase {
         $replacements [] = $user->lastname;
 
         // Replace link to interaction page.
-        $interactionlink = new \moodle_url('admin/tool/cleanupcourses/view.php');
+        $interactionlink = new \moodle_url('admin/tool/lifecycle/view.php');
         $url = $CFG->wwwroot . '/' . $interactionlink->out();
         $patterns [] = '##link##';
         $replacements [] = $url;
@@ -211,18 +211,18 @@ class email extends libbase {
 
     public function extend_add_instance_form_definition($mform) {
         $elementname = 'responsetimeout';
-        $mform->addElement('duration', $elementname, get_string('email_responsetimeout', 'cleanupcoursesstep_email'));
+        $mform->addElement('duration', $elementname, get_string('email_responsetimeout', 'lifecyclestep_email'));
         $mform->setType($elementname, PARAM_INT);
         $elementname = 'subject';
-        $mform->addElement('text', $elementname, get_string('email_subject', 'cleanupcoursesstep_email'));
+        $mform->addElement('text', $elementname, get_string('email_subject', 'lifecyclestep_email'));
         $mform->setType($elementname, PARAM_TEXT);
 
         $elementname = 'content';
-        $mform->addElement('textarea', $elementname, get_string('email_content', 'cleanupcoursesstep_email'));
+        $mform->addElement('textarea', $elementname, get_string('email_content', 'lifecyclestep_email'));
         $mform->setType($elementname, PARAM_TEXT);
 
         $elementname = 'contenthtml';
-        $mform->addElement('editor', $elementname, get_string('email_content_html', 'cleanupcoursesstep_email'));
+        $mform->addElement('editor', $elementname, get_string('email_content_html', 'lifecyclestep_email'));
         $mform->setType($elementname, PARAM_RAW);
     }
 
diff --git a/step/email/version.php b/step/email/version.php
index b6fc2490187ecbb66e9e6c3c2d6b2c6a2c752939..94a4be6a331bfd602034487fab839d5d76ecc539 100644
--- a/step/email/version.php
+++ b/step/email/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Email Step
+ * Life Cycle Email Step
  *
- * @package tool_cleanupcourses_step
+ * @package tool_lifecycle_step
  * @subpackage email
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017052302;
-$plugin->component = 'cleanupcoursesstep_email';
\ No newline at end of file
+$plugin->component = 'lifecyclestep_email';
\ No newline at end of file
diff --git a/step/interactionlib.php b/step/interactionlib.php
index 6166a094cc57c73105ada26b859086b2f239ddf8..04cadf9fb400e7a0d09b2c8ee97b7a54f552453f 100644
--- a/step/interactionlib.php
+++ b/step/interactionlib.php
@@ -18,16 +18,16 @@
  * Interface for the interactions of the subplugintype step
  * It has to be implemented by all subplugins that want to use the interaction view.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @subpackage step
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\entity\process;
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\response\step_interactive_response;
+use tool_lifecycle\entity\process;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\response\step_interactive_response;
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/step/lib.php b/step/lib.php
index 2516f40ccd61a6a8ebf5b8aaec78c8d8d8da16d8..d9078a5b3af388dafffc9896fdc5ea76ed5839a9 100644
--- a/step/lib.php
+++ b/step/lib.php
@@ -18,15 +18,15 @@
  * Interface for the subplugintype step
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @subpackage step
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\step;
+namespace tool_lifecycle\step;
 
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\response\step_response;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\response\step_response;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -109,7 +109,7 @@ abstract class libbase {
 
 /**
  * Class representing a local settings object for a subplugin instance.
- * @package tool_cleanupcourses\step
+ * @package tool_lifecycle\step
  */
 class instance_setting {
 
diff --git a/styles.css b/styles.css
index 14ad71f31dc3689307aa276160bf5642d50b45e8..566f3a5eee7040bf3cae256a7892f9932e936392 100644
--- a/styles.css
+++ b/styles.css
@@ -1,8 +1,8 @@
-.cleanupcourses-enable-overflow > .no-overflow {
+.lifecycle-enable-overflow > .no-overflow {
     overflow: initial;
 }
 
-.cleanupcourses-table span.workflow_displaytitle {
+.lifecycle-table span.workflow_displaytitle {
     color: #888;
     font-size: .9em;
     padding: 0.5em;
diff --git a/tests/active_workflow_is_manual_test.php b/tests/active_workflow_is_manual_test.php
index 3cd2f257d11b7e6b894d14c7993279db38e485c6..1b081b1cb654c71410342d4dcb4656889fd4c577 100644
--- a/tests/active_workflow_is_manual_test.php
+++ b/tests/active_workflow_is_manual_test.php
@@ -19,18 +19,18 @@ defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/generator/lib.php');
 require_once(__DIR__ . '/../lib.php');
 
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\entity\workflow;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\entity\workflow;
 
 /**
  * Tests the field is manual after activating workflows.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2018 WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_workflow_is_manual_testcase extends \advanced_testcase {
+class tool_lifecycle_workflow_is_manual_testcase extends \advanced_testcase {
     const MANUAL_TRIGGER1_ICON = 't/up';
     const MANUAL_TRIGGER1_DISPLAYNAME = 'Up';
     const MANUAL_TRIGGER1_CAPABILITY = 'moodle/course:manageactivities';
@@ -40,7 +40,7 @@ class tool_cleanupcourses_workflow_is_manual_testcase extends \advanced_testcase
 
     public function setUp() {
         $this->resetAfterTest(true);
-        $generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $settings = new stdClass();
         $settings->icon = self::MANUAL_TRIGGER1_ICON;
diff --git a/tests/active_workflow_sortindex_updown_test.php b/tests/active_workflow_sortindex_updown_test.php
index 46b4daf32b4af5c67b3375586b7893123a9dddd3..982093dfc2ca6b39d455d431918f7b037e67006d 100644
--- a/tests/active_workflow_sortindex_updown_test.php
+++ b/tests/active_workflow_sortindex_updown_test.php
@@ -19,18 +19,18 @@ defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/generator/lib.php');
 require_once(__DIR__ . '/../lib.php');
 
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\entity\workflow;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\entity\workflow;
 
 /**
  * Tests the different state changes of the workflow sortindex for up and down action.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_workflow_sortindex_updown_testcase extends \advanced_testcase {
+class tool_lifecycle_workflow_sortindex_updown_testcase extends \advanced_testcase {
 
     private $workflow1;
     private $workflow2;
@@ -38,7 +38,7 @@ class tool_cleanupcourses_workflow_sortindex_updown_testcase extends \advanced_t
 
     public function setUp() {
         $this->resetAfterTest(true);
-        $generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         // Remove preset workflows.
         $workflows = workflow_manager::get_active_automatic_workflows();
diff --git a/tests/backup_manager_test.php b/tests/backup_manager_test.php
index 9d7b0745cb42d2c0ddccc7cf44f4977d162139c3..b05c5fc55c82ed4a523c1b1264be6efac9f7c91d 100644
--- a/tests/backup_manager_test.php
+++ b/tests/backup_manager_test.php
@@ -16,17 +16,17 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\manager\backup_manager;
+use tool_lifecycle\manager\backup_manager;
 
 /**
  * Tests the beckup manager.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses_backup
+ * @group      tool_lifecycle_backup
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_backup_manager_testcase extends \advanced_testcase {
+class tool_lifecycle_backup_manager_testcase extends \advanced_testcase {
 
     /** course */
     private $course;
@@ -43,7 +43,7 @@ class tool_cleanupcourses_backup_manager_testcase extends \advanced_testcase {
         global $DB;
         $result = backup_manager::create_course_backup($this->course->id);
         $this->assertTrue($result);
-        $backups = $DB->get_records('tool_cleanupcourses_backups');
+        $backups = $DB->get_records('tool_lifecycle_backups');
         $this->assertEquals(1, count($backups));
     }
 
@@ -52,7 +52,7 @@ class tool_cleanupcourses_backup_manager_testcase extends \advanced_testcase {
      */
     public function test_backup_restore() {
         global $DB;
-        $backups = $DB->get_records('tool_cleanupcourses_backups');
+        $backups = $DB->get_records('tool_lifecycle_backups');
         $this->assertEquals(1, count($backups));
         $backupid = array_pop($backups)->id;
         try {
diff --git a/tests/behat/activate_workflow.feature b/tests/behat/activate_workflow.feature
index 07e10b269008d7f1e552107153d6d74151480842..c45ff649cf73e56b6ad3911592ca0c179b85f8a1 100644
--- a/tests/behat/activate_workflow.feature
+++ b/tests/behat/activate_workflow.feature
@@ -1,10 +1,10 @@
-@tool @tool_cleanupcourses
+@tool @tool_lifecycle
 Feature: Add a workflow definition activate it
   Further, check that all edit possibilities are disabled.
 
   Scenario: Add a new workflow definition with steps and rearange
     Given I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -39,19 +39,19 @@ Feature: Add a workflow definition activate it
     And I set the field "Instance Name" to "Delete Course 2"
     And I press "Save changes"
     And I press "Back"
-    Then I should see the tool "View Workflow Steps" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    And I should see the tool "Duplicate Workflow" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    And I should see the tool "Edit Title" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    And I should see the tool "Delete Workflow" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
+    Then I should see the tool "View Workflow Steps" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    And I should see the tool "Duplicate Workflow" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    And I should see the tool "Edit Title" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    And I should see the tool "Delete Workflow" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
     When I press "Activate"
-    Then I should see the tool "View Workflow Steps" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    And I should see the tool "Duplicate Workflow" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    And I should see the tool "Edit Title" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    And I should not see the tool "Delete Workflow" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    When I click on the tool "View Workflow Steps" in the "My Workflow" row of the "tool_cleanupcourses_workflow_definitions" table
-    Then I should not see the tool "Edit" in any row of the "tool_cleanupcourses_workflows" table
-    And I should not see the tool "Delete" in any row of the "tool_cleanupcourses_workflows" table
-    And I should not see the tool "Up" in any row of the "tool_cleanupcourses_workflows" table
-    And I should not see the tool "Down" in any row of the "tool_cleanupcourses_workflows" table
-    And I should see the tool "View" in all rows of the "tool_cleanupcourses_workflows" table
+    Then I should see the tool "View Workflow Steps" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    And I should see the tool "Duplicate Workflow" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    And I should see the tool "Edit Title" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    And I should not see the tool "Delete Workflow" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    When I click on the tool "View Workflow Steps" in the "My Workflow" row of the "tool_lifecycle_workflow_definitions" table
+    Then I should not see the tool "Edit" in any row of the "tool_lifecycle_workflows" table
+    And I should not see the tool "Delete" in any row of the "tool_lifecycle_workflows" table
+    And I should not see the tool "Up" in any row of the "tool_lifecycle_workflows" table
+    And I should not see the tool "Down" in any row of the "tool_lifecycle_workflows" table
+    And I should see the tool "View" in all rows of the "tool_lifecycle_workflows" table
     And I should not see "Add New Step Instance"
\ No newline at end of file
diff --git a/tests/behat/add_workflow.feature b/tests/behat/add_workflow.feature
index ce6009c76887783fb814c7daa70ed1ddb335c04b..07dd4082e0f3c5b3ef0a7d73d3c50dc42075301c 100644
--- a/tests/behat/add_workflow.feature
+++ b/tests/behat/add_workflow.feature
@@ -1,10 +1,10 @@
-@tool @tool_cleanupcourses
+@tool @tool_lifecycle
 Feature: Add a workflow definition
 
   Scenario: Add a new workflow definition without steps
   For displaying the additional trigger settings the "Save changes" button is used.
     Given I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -31,7 +31,7 @@ Feature: Add a workflow definition
   Scenario: Add a new workflow definition with steps
   For displaying the additional trigger settings the "reload" button is used.
     Given I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -57,7 +57,7 @@ Feature: Add a workflow definition
 
   Scenario: Add a new workflow definition and alter trigger
     Given I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -75,7 +75,7 @@ Feature: Add a workflow definition
     And I press "Save changes"
     Then I should see "Workflow Steps"
     And I should see "Start date delay trigger"
-    When I click on the tool "Edit" in the "Trigger" row of the "tool_cleanupcourses_workflows" table
+    When I click on the tool "Edit" in the "Trigger" row of the "tool_lifecycle_workflows" table
     Then the following fields match these values:
       | Instance Name              | My Trigger                                |
       | Subplugin Name             | Start date delay trigger                  |
@@ -91,7 +91,7 @@ Feature: Add a workflow definition
       | Capability                 | moodle/course:manageactivities            |
     And I press "Save changes"
     Then I should see "Manual trigger"
-    When I click on the tool "Edit" in the "Trigger" row of the "tool_cleanupcourses_workflows" table
+    When I click on the tool "Edit" in the "Trigger" row of the "tool_lifecycle_workflows" table
     Then the following fields match these values:
       | Instance Name              | My updated Trigger                        |
       | Subplugin Name             | Manual trigger                            |
@@ -101,7 +101,7 @@ Feature: Add a workflow definition
 
   Scenario: Add a new workflow definition with steps and rearange
     Given I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -131,11 +131,11 @@ Feature: Add a workflow definition
     Then the step "Delete Course 1" should be at the 1 position
     And the step "Delete Course 2" should be at the 2 position
     And the step "Create Backup Step" should be at the 3 position
-    And I click on the tool "Down" in the "Delete Course 1" row of the "tool_cleanupcourses_workflows" table
+    And I click on the tool "Down" in the "Delete Course 1" row of the "tool_lifecycle_workflows" table
     Then the step "Delete Course 1" should be at the 2 position
     And the step "Delete Course 2" should be at the 1 position
     And the step "Create Backup Step" should be at the 3 position
-    And I click on the tool "Up" in the "Create Backup Step" row of the "tool_cleanupcourses_workflows" table
+    And I click on the tool "Up" in the "Create Backup Step" row of the "tool_lifecycle_workflows" table
     Then the step "Delete Course 1" should be at the 3 position
     And the step "Delete Course 2" should be at the 1 position
     And the step "Create Backup Step" should be at the 2 position
diff --git a/tests/behat/behat_tool_cleanupcourses.php b/tests/behat/behat_tool_lifecycle.php
similarity index 94%
rename from tests/behat/behat_tool_cleanupcourses.php
rename to tests/behat/behat_tool_lifecycle.php
index 14165cab21b6ae893050ca042b4b10f7837cbabd..866c682450e230392317f8e21f82702075f77a0f 100644
--- a/tests/behat/behat_tool_cleanupcourses.php
+++ b/tests/behat/behat_tool_lifecycle.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Step definition for cleanup courses.
+ * Step definition for life cycle.
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
  * @copyright  2018 Tobias Reischmann
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -29,14 +29,14 @@ use Behat\Mink\Exception\ExpectationException;
 require_once(__DIR__ . '/../../../../../lib/behat/behat_base.php');
 
 /**
- * Step definition for cleanup courses.
+ * Step definition for life cycle.
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
  * @copyright  2018 Tobias Reischmann
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class behat_tool_cleanupcourses extends behat_base {
+class behat_tool_lifecycle extends behat_base {
 
     /**
      * Click on an entry in the tools menu of a table.
@@ -204,7 +204,7 @@ class behat_tool_cleanupcourses extends behat_base {
      * @throws ExpectationException
      */
     public function the_step_should_be_at_the_position($stepname, $position) {
-        $xpathelement = "//table/tbody/tr[@id = 'tool_cleanupcourses_workflows_r$position']/td[contains(text(),'$stepname')]";
+        $xpathelement = "//table/tbody/tr[@id = 'tool_lifecycle_workflows_r$position']/td[contains(text(),'$stepname')]";
 
         try {
             $this->find('xpath', $xpathelement);
@@ -218,9 +218,9 @@ class behat_tool_cleanupcourses extends behat_base {
     /**
      * Opens Teacher's Courses Overview.
      *
-     * @Given /^I am on cleanupcourses view$/
+     * @Given /^I am on lifecycle view$/
      */
-    public function i_am_on_cleanupcourses_view() {
-        $this->getSession()->visit($this->locate_path('/admin/tool/cleanupcourses/view.php'));
+    public function i_am_on_lifecycle_view() {
+        $this->getSession()->visit($this->locate_path('/admin/tool/lifecycle/view.php'));
     }
 }
diff --git a/tests/behat/interaction.feature b/tests/behat/interaction.feature
index c7c62dbd12e58985b06824ea7895351973cb6064..1c8fc09eba820387744cdebfd60de15b05e3e7e6 100644
--- a/tests/behat/interaction.feature
+++ b/tests/behat/interaction.feature
@@ -1,4 +1,4 @@
-@tool @tool_cleanupcourses
+@tool @tool_lifecycle
 Feature: Add a workflow with an email step and test the interaction as a teacher
 
   Background:
@@ -16,7 +16,7 @@ Feature: Add a workflow with an email step and test the interaction as a teacher
       | teacher1 | C2     | editingteacher |
       | teacher1 | C3     | editingteacher |
     And I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -48,24 +48,24 @@ Feature: Add a workflow with an email step and test the interaction as a teacher
 
   Scenario: Test interaction of email step
     Given I log in as "teacher1"
-    When I am on cleanupcourses view
-    Then I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "Course 2" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "Course 3" in the "tool_cleanupcourses_remaining" "table"
-    When I run the scheduled task "tool_cleanupcourses\task\process_cleanup"
-    And I am on cleanupcourses view
-    Then I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "Course 2" in the "tool_cleanupcourses_interaction" "table"
-    And I should see "Course 3" in the "tool_cleanupcourses_interaction" "table"
-    And I should see the tool "Keep Course" in the "Course 2" row of the "tool_cleanupcourses_interaction" table
-    And I should see the tool "Keep Course" in the "Course 3" row of the "tool_cleanupcourses_interaction" table
-    When I click on the tool "Keep Course" in the "Course 2" row of the "tool_cleanupcourses_interaction" table
-    Then I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "Course 2" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "Course 3" in the "tool_cleanupcourses_interaction" "table"
+    When I am on lifecycle view
+    Then I should see "Course 1" in the "tool_lifecycle_remaining" "table"
+    And I should see "Course 2" in the "tool_lifecycle_remaining" "table"
+    And I should see "Course 3" in the "tool_lifecycle_remaining" "table"
+    When I run the scheduled task "tool_lifecycle\task\lifecycle_task"
+    And I am on lifecycle view
+    Then I should see "Course 1" in the "tool_lifecycle_remaining" "table"
+    And I should see "Course 2" in the "tool_lifecycle_interaction" "table"
+    And I should see "Course 3" in the "tool_lifecycle_interaction" "table"
+    And I should see the tool "Keep Course" in the "Course 2" row of the "tool_lifecycle_interaction" table
+    And I should see the tool "Keep Course" in the "Course 3" row of the "tool_lifecycle_interaction" table
+    When I click on the tool "Keep Course" in the "Course 2" row of the "tool_lifecycle_interaction" table
+    Then I should see "Course 1" in the "tool_lifecycle_remaining" "table"
+    And I should see "Course 2" in the "tool_lifecycle_remaining" "table"
+    And I should see "Course 3" in the "tool_lifecycle_interaction" "table"
     When I wait "10" seconds
-    And I run the scheduled task "tool_cleanupcourses\task\process_cleanup"
-    And I am on cleanupcourses view
-    Then I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "Course 2" in the "tool_cleanupcourses_remaining" "table"
+    And I run the scheduled task "tool_lifecycle\task\lifecycle_task"
+    And I am on lifecycle view
+    Then I should see "Course 1" in the "tool_lifecycle_remaining" "table"
+    And I should see "Course 2" in the "tool_lifecycle_remaining" "table"
     And I should not see "Course 3"
\ No newline at end of file
diff --git a/tests/behat/interaction_forms.feature b/tests/behat/interaction_forms.feature
index 27c88448fdbf5b882ff703fe55718b707754c860..3be67a05fb3c3602ec88485a54d88be0ece36c61 100644
--- a/tests/behat/interaction_forms.feature
+++ b/tests/behat/interaction_forms.feature
@@ -1,4 +1,4 @@
-@tool @tool_cleanupcourses
+@tool @tool_lifecycle
 Feature: Add a workflow with a manual trigger and a duplicate step and test the interaction as a teacher
 
   Background:
@@ -12,7 +12,7 @@ Feature: Add a workflow with a manual trigger and a duplicate step and test the
       | user     | course | role           |
       | teacher1 | C1     | editingteacher |
     And I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -38,57 +38,57 @@ Feature: Add a workflow with a manual trigger and a duplicate step and test the
 
   Scenario: Test interaction of duplicate step including the correct handling of the form for aditional information
     Given I log in as "teacher1"
-    When I am on cleanupcourses view
-    Then I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
-    And I should see the tool "Duplicate course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
-    When I click on the tool "Duplicate course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
+    When I am on lifecycle view
+    Then I should see "Course 1" in the "tool_lifecycle_remaining" "table"
+    And I should see the tool "Duplicate course" in the "Course 1" row of the "tool_lifecycle_remaining" table
+    When I click on the tool "Duplicate course" in the "Course 1" row of the "tool_lifecycle_remaining" table
     Then I should see "Duplicate Course"
     When I set the following fields to these values:
       | Course short name          | C2                                 |
       | Course full name           | Course 2                           |
     And I press "Save changes"
-    Then I should see "Duplicated course will be available shortly." in the "tool_cleanupcourses_remaining" "table"
+    Then I should see "Duplicated course will be available shortly." in the "tool_lifecycle_remaining" "table"
     When I log out
     And I log in as "admin"
-    And I run the scheduled task "tool_cleanupcourses\task\process_cleanup"
+    And I run the scheduled task "tool_lifecycle\task\lifecycle_task"
     And I log out
     And I log in as "teacher1"
-    And I am on cleanupcourses view
-    Then I should see "Course 2" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "C2" in the "tool_cleanupcourses_remaining" "table"
+    And I am on lifecycle view
+    Then I should see "Course 2" in the "tool_lifecycle_remaining" "table"
+    And I should see "C2" in the "tool_lifecycle_remaining" "table"
 
   Scenario: Test interaction of duplicate step when interaction is interrupted
     Given I log in as "teacher1"
-    When I am on cleanupcourses view
-    Then I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
-    And I should see the tool "Duplicate course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
-    When I click on the tool "Duplicate course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
+    When I am on lifecycle view
+    Then I should see "Course 1" in the "tool_lifecycle_remaining" "table"
+    And I should see the tool "Duplicate course" in the "Course 1" row of the "tool_lifecycle_remaining" table
+    When I click on the tool "Duplicate course" in the "Course 1" row of the "tool_lifecycle_remaining" table
     Then I should see "Duplicate Course"
-    When I am on cleanupcourses view
-    Then I should see the tool "Enter data" in the "Course 1" row of the "tool_cleanupcourses_interaction" table
-    When I click on the tool "Enter data" in the "Course 1" row of the "tool_cleanupcourses_interaction" table
+    When I am on lifecycle view
+    Then I should see the tool "Enter data" in the "Course 1" row of the "tool_lifecycle_interaction" table
+    When I click on the tool "Enter data" in the "Course 1" row of the "tool_lifecycle_interaction" table
     Then I should see "Duplicate Course"
     When I set the following fields to these values:
       | Course short name          | C2                                 |
       | Course full name           | Course 2                           |
     And I press "Save changes"
-    Then I should see "Duplicated course will be available shortly." in the "tool_cleanupcourses_remaining" "table"
+    Then I should see "Duplicated course will be available shortly." in the "tool_lifecycle_remaining" "table"
     When I log out
     And I log in as "admin"
-    And I run the scheduled task "tool_cleanupcourses\task\process_cleanup"
+    And I run the scheduled task "tool_lifecycle\task\lifecycle_task"
     And I log out
     And I log in as "teacher1"
-    And I am on cleanupcourses view
-    Then I should see "Course 2" in the "tool_cleanupcourses_remaining" "table"
-    And I should see "C2" in the "tool_cleanupcourses_remaining" "table"
+    And I am on lifecycle view
+    Then I should see "Course 2" in the "tool_lifecycle_remaining" "table"
+    And I should see "C2" in the "tool_lifecycle_remaining" "table"
 
   Scenario: Test interaction of duplicate step when interaction is canceled
     Given I log in as "teacher1"
-    When I am on cleanupcourses view
-    Then I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
-    And I should see the tool "Duplicate course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
-    When I click on the tool "Duplicate course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
+    When I am on lifecycle view
+    Then I should see "Course 1" in the "tool_lifecycle_remaining" "table"
+    And I should see the tool "Duplicate course" in the "Course 1" row of the "tool_lifecycle_remaining" table
+    When I click on the tool "Duplicate course" in the "Course 1" row of the "tool_lifecycle_remaining" table
     Then I should see "Duplicate Course"
     When I press "Cancel"
-    Then I should not see "Duplicated course will be available shortly." in the "tool_cleanupcourses_remaining" "table"
-    And I should see "Course 1" in the "tool_cleanupcourses_remaining" "table"
\ No newline at end of file
+    Then I should not see "Duplicated course will be available shortly." in the "tool_lifecycle_remaining" "table"
+    And I should see "Course 1" in the "tool_lifecycle_remaining" "table"
\ No newline at end of file
diff --git a/tests/behat/manual_trigger.feature b/tests/behat/manual_trigger.feature
index df35658cb3a16527b77f9bec858d854a772b5255..88e5c035a9834e3bf328be6db683592c29413085 100644
--- a/tests/behat/manual_trigger.feature
+++ b/tests/behat/manual_trigger.feature
@@ -1,4 +1,4 @@
-@tool @tool_cleanupcourses
+@tool @tool_lifecycle
 Feature: Add a manual trigger and test view and actions as a teacher
 
   Background:
@@ -18,12 +18,12 @@ Feature: Add a manual trigger and test view and actions as a teacher
 
   Scenario: Test displayed action tools for different capabilities
     Given I log in as "admin"
-    # Allow teacher role to view courses in cleanup courses view
+    # Allow teacher role to view courses in life cycle view
     # to allow for different visibility levels of manual tools.
     And I set the following system permissions of "Non-editing teacher" role:
       | capability | permission |
-      | tool/cleanupcourses:managecourses | Allow |
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+      | tool/lifecycle:managecourses | Allow |
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -43,17 +43,17 @@ Feature: Add a manual trigger and test view and actions as a teacher
     And I press "Activate"
     And I log out
     And I log in as "teacher1"
-    And I am on cleanupcourses view
+    And I am on lifecycle view
     Then I should see "Course 1"
     And I should see "Course 2"
     And I should see "Course 3"
-    And I should see the tool "Delete course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
-    And I should see the tool "Delete course" in the "Course 2" row of the "tool_cleanupcourses_remaining" table
-    And I should not see the tool "Delete course" in the "Course 3" row of the "tool_cleanupcourses_remaining" table
+    And I should see the tool "Delete course" in the "Course 1" row of the "tool_lifecycle_remaining" table
+    And I should see the tool "Delete course" in the "Course 2" row of the "tool_lifecycle_remaining" table
+    And I should not see the tool "Delete course" in the "Course 3" row of the "tool_lifecycle_remaining" table
 
   Scenario: Manually trigger backup and course deletion
     Given I log in as "admin"
-    And I navigate to "Workflow Settings" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Workflow Settings" node in "Site administration > Life Cycle"
     And I press "Add Workflow"
     And I set the following fields to these values:
       | Title                      | My Workflow                               |
@@ -79,19 +79,19 @@ Feature: Add a manual trigger and test view and actions as a teacher
     And I press "Activate"
     And I log out
     And I log in as "teacher1"
-    And I am on cleanupcourses view
-    Then I should see the tool "Delete course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
-    When I click on the tool "Delete course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
+    And I am on lifecycle view
+    Then I should see the tool "Delete course" in the "Course 1" row of the "tool_lifecycle_remaining" table
+    When I click on the tool "Delete course" in the "Course 1" row of the "tool_lifecycle_remaining" table
     Then I should see "Course 1"
     And I should see "Course 2"
-    And I should not see the tool "Delete course" in the "Course 1" row of the "tool_cleanupcourses_remaining" table
-    And I should see the tool "Delete course" in the "Course 2" row of the "tool_cleanupcourses_remaining" table
-    When I run the scheduled task "tool_cleanupcourses\task\process_cleanup"
-    And I am on cleanupcourses view
+    And I should not see the tool "Delete course" in the "Course 1" row of the "tool_lifecycle_remaining" table
+    And I should see the tool "Delete course" in the "Course 2" row of the "tool_lifecycle_remaining" table
+    When I run the scheduled task "tool_lifecycle\task\lifecycle_task"
+    And I am on lifecycle view
     Then I should not see "Course 1"
     And I should see "Course 2"
     When I log out
     And I log in as "admin"
-    And I navigate to "Course Backups" node in "Site administration > Plugins > Cleanup Courses"
+    And I navigate to "Course Backups" node in "Site administration > Life Cycle"
     Then I should see "Course 1"
     And I should not see "Course 2"
\ No newline at end of file
diff --git a/tests/generator/lib.php b/tests/generator/lib.php
index d787d565d5630ef20dcf1e8f55f869c781e0e0a2..1d99e85be8ad89360d257ffcb0fbed3833207ae1 100644
--- a/tests/generator/lib.php
+++ b/tests/generator/lib.php
@@ -16,24 +16,24 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\entity\process;
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\entity\workflow;
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\entity\process;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\entity\workflow;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 /**
- * tool_cleanupcourses generator tests
+ * tool_lifecycle generator tests
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_generator extends testing_module_generator {
+class tool_lifecycle_generator extends testing_module_generator {
 
     /**
      * Creates an artificial workflow without steps.
@@ -112,7 +112,7 @@ class tool_cleanupcourses_generator extends testing_module_generator {
         $record->timestepchanged = time();
         $record->stepindex = 0;
         $process = process::from_record($record);
-        $process->id = $DB->insert_record('tool_cleanupcourses_process', $process);
+        $process->id = $DB->insert_record('tool_lifecycle_process', $process);
         return $process;
     }
 }
diff --git a/tests/manual_trigger_tools_test.php b/tests/manual_trigger_tools_test.php
index 59f402e18fcf58898c1c243b1f8a6aec6c4b07da..c556f826fcbb5abce0fcd272360db245e96ed240 100644
--- a/tests/manual_trigger_tools_test.php
+++ b/tests/manual_trigger_tools_test.php
@@ -16,19 +16,19 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\local\data\manual_trigger_tool;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\local\data\manual_trigger_tool;
 
 /**
  * Tests assembly of manual trigger tools.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2018 Tobias Reischmann, Jan Dageforde WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_manual_trigger_tools_testcase extends \advanced_testcase {
+class tool_lifecycle_manual_trigger_tools_testcase extends \advanced_testcase {
     const MANUAL_TRIGGER1_ICON = 't/up';
     const MANUAL_TRIGGER1_DISPLAYNAME = 'Up';
     const MANUAL_TRIGGER1_CAPABILITY = 'moodle/course:manageactivities';
@@ -40,7 +40,7 @@ class tool_cleanupcourses_manual_trigger_tools_testcase extends \advanced_testca
 
     public function setUp() {
         $this->resetAfterTest(true);
-        $generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $triggersettings = new stdClass();
         $triggersettings->icon = self::MANUAL_TRIGGER1_ICON;
@@ -77,7 +77,7 @@ class tool_cleanupcourses_manual_trigger_tools_testcase extends \advanced_testca
         workflow_manager::handle_action(ACTION_WORKFLOW_ACTIVATE, $this->workflow1->id);
         $tools = workflow_manager::get_manual_trigger_tools_for_active_workflows();
         $this->assertCount(2, $tools);
-        $this->assertContainsOnly(\tool_cleanupcourses\local\data\manual_trigger_tool::class, $tools);
+        $this->assertContainsOnly(\tool_lifecycle\local\data\manual_trigger_tool::class, $tools);
         $trigger = trigger_manager::get_trigger_for_workflow($this->workflow1->id);
         $expectedtool = new manual_trigger_tool($trigger->id, self::MANUAL_TRIGGER1_ICON,
             self::MANUAL_TRIGGER1_DISPLAYNAME, self::MANUAL_TRIGGER1_CAPABILITY);
diff --git a/tests/manually_triggered_process_test.php b/tests/manually_triggered_process_test.php
index d85695e7eedae540a38cef70dfd78e7624b4b1a4..c266dbb1c361ecaef39ead9ac70d5e185c6698e8 100644
--- a/tests/manually_triggered_process_test.php
+++ b/tests/manually_triggered_process_test.php
@@ -19,20 +19,20 @@ defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/generator/lib.php');
 require_once(__DIR__ . '/../lib.php');
 
-use tool_cleanupcourses\manager\workflow_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\process_manager;
-use tool_cleanupcourses\cleanup_processor;
+use tool_lifecycle\manager\workflow_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\process_manager;
+use tool_lifecycle\processor;
 
 /**
  * Manually triggers a process and tests if process courses proceeds the process as expected.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2018 WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_manually_triggered_process_testcase extends \advanced_testcase {
+class tool_lifecycle_manually_triggered_process_testcase extends \advanced_testcase {
     const MANUAL_TRIGGER1_ICON = 't/up';
     const MANUAL_TRIGGER1_DISPLAYNAME = 'Up';
     const MANUAL_TRIGGER1_CAPABILITY = 'moodle/course:manageactivities';
@@ -42,7 +42,7 @@ class tool_cleanupcourses_manually_triggered_process_testcase extends \advanced_
 
     public function setUp() {
         $this->resetAfterTest(true);
-        $generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $triggersettings = new stdClass();
         $triggersettings->icon = self::MANUAL_TRIGGER1_ICON;
@@ -64,7 +64,7 @@ class tool_cleanupcourses_manually_triggered_process_testcase extends \advanced_
         $process = process_manager::manually_trigger_process($this->course->id, $this->trigger->id);
         $this->assertEquals(0, $process->stepindex);
 
-        $processor = new cleanup_processor();
+        $processor = new processor();
         $processor->process_courses();
         $process = process_manager::get_process_by_id($process->id);
 
diff --git a/tests/persistence/persist_process_data_test.php b/tests/persistence/persist_process_data_test.php
index f3e2888565f44a4153fa772146eee4634321aed8..dafd44e3e8d55d1e7d0aee39c1ae74739deb1c36 100644
--- a/tests/persistence/persist_process_data_test.php
+++ b/tests/persistence/persist_process_data_test.php
@@ -18,19 +18,19 @@ defined('MOODLE_INTERNAL') || die();
 
 require_once(__DIR__ . '/../../lib.php');
 
-use \tool_cleanupcourses\manager\process_manager;
-use \tool_cleanupcourses\manager\process_data_manager;
-use \tool_cleanupcourses\manager\step_manager;
+use \tool_lifecycle\manager\process_manager;
+use \tool_lifecycle\manager\process_data_manager;
+use \tool_lifecycle\manager\step_manager;
 
 /**
  * Tests creating storing and retrieving process data.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_persist_process_data_testcase extends \advanced_testcase {
+class tool_lifecycle_persist_process_data_testcase extends \advanced_testcase {
 
     /** process*/
     private $process;
@@ -40,7 +40,7 @@ class tool_cleanupcourses_persist_process_data_testcase extends \advanced_testca
 
     public function setUp() {
         $this->resetAfterTest(true);
-        $generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $workflow = $generator->create_workflow_with_steps();
         $course = $this->getDataGenerator()->create_course();
diff --git a/tests/persistence/persist_process_test.php b/tests/persistence/persist_process_test.php
index b31211800a050e75e85f9650f98e7c970b7e3440..342983b335bcbb13721c207d3b008a69f6317ef9 100644
--- a/tests/persistence/persist_process_test.php
+++ b/tests/persistence/persist_process_test.php
@@ -18,17 +18,17 @@ defined('MOODLE_INTERNAL') || die();
 
 require_once(__DIR__ . '/../../lib.php');
 
-use \tool_cleanupcourses\manager\process_manager;
+use \tool_lifecycle\manager\process_manager;
 
 /**
  * Tests creating storing and retrieving a process object.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_persist_process_testcase extends \advanced_testcase {
+class tool_lifecycle_persist_process_testcase extends \advanced_testcase {
 
     /** workflow */
     private $workflow;
@@ -38,7 +38,7 @@ class tool_cleanupcourses_persist_process_testcase extends \advanced_testcase {
 
     public function setUp() {
         $this->resetAfterTest(true);
-        $generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $this->workflow = $generator->create_workflow_with_steps();
         $this->course = $this->getDataGenerator()->create_course();
diff --git a/tests/persistence/persist_step_test.php b/tests/persistence/persist_step_test.php
index cb8b5291315a5940fc4dd75aeabe504db824eaaf..8276acae968906d48b9055934c710ddcca80fd3b 100644
--- a/tests/persistence/persist_step_test.php
+++ b/tests/persistence/persist_step_test.php
@@ -18,18 +18,18 @@ defined('MOODLE_INTERNAL') || die();
 
 require_once(__DIR__ . '/../../lib.php');
 
-use \tool_cleanupcourses\entity\workflow;
-use \tool_cleanupcourses\manager\step_manager;
+use \tool_lifecycle\entity\workflow;
+use \tool_lifecycle\manager\step_manager;
 
 /**
  * Tests creating storing and retrieving a step object.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_persist_step_testcase extends \advanced_testcase {
+class tool_lifecycle_persist_step_testcase extends \advanced_testcase {
 
     /** workflow */
     private $workflow;
@@ -41,7 +41,7 @@ class tool_cleanupcourses_persist_step_testcase extends \advanced_testcase {
 
     public function setUp() {
         $this->resetAfterTest(true);
-        $this->generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $this->generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $this->workflow = $this->generator->create_workflow();
     }
diff --git a/tests/persistence/persist_workflow_test.php b/tests/persistence/persist_workflow_test.php
index 6f01b89b445e7d3d5ae67a93907e9f3e1f88723e..86cef5934780be4ab3d671cbe21e2b31716385a7 100644
--- a/tests/persistence/persist_workflow_test.php
+++ b/tests/persistence/persist_workflow_test.php
@@ -18,18 +18,18 @@ defined('MOODLE_INTERNAL') || die();
 
 require_once(__DIR__ . '/../../lib.php');
 
-use \tool_cleanupcourses\entity\workflow;
-use \tool_cleanupcourses\manager\workflow_manager;
+use \tool_lifecycle\entity\workflow;
+use \tool_lifecycle\manager\workflow_manager;
 
 /**
  * Tests creating storing and retrieving a workflow object.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_persist_workflow_testcase extends \advanced_testcase {
+class tool_lifecycle_persist_workflow_testcase extends \advanced_testcase {
 
     /** workflow */
     private $workflow;
diff --git a/tests/phpunit.xml b/tests/phpunit.xml
index 8d08504c905466c6abe5aebab4ae9e161602bb3b..9cc368f62b5f667122d021cf21c9a390c03dfd62 100644
--- a/tests/phpunit.xml
+++ b/tests/phpunit.xml
@@ -29,7 +29,7 @@
 
 
         <testsuites>
-            <testsuite name="admin_tool_cleanupcourses_tests_testsuite">
+            <testsuite name="admin_tool_lifecycle_tests_testsuite">
                 <directory suffix="_test.php">.</directory>
             </testsuite>
         </testsuites>
diff --git a/tests/process_status_message_test.php b/tests/process_status_message_test.php
index 1795a085425fbbf8a3e4b812b09aa4ba0c3aab58..d6ad1e99c9b49dc876f662404c235b070784d1c7 100644
--- a/tests/process_status_message_test.php
+++ b/tests/process_status_message_test.php
@@ -16,17 +16,17 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 /**
  * Tests assembly of manual trigger tools.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2018 Tamara Gunkel, Jan Dageforde WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_process_status_message_testcase extends \advanced_testcase {
+class tool_lifecycle_process_status_message_testcase extends \advanced_testcase {
     const MANUAL_TRIGGER1_ICON = 't/up';
     const MANUAL_TRIGGER1_DISPLAYNAME = 'Up';
     const MANUAL_TRIGGER1_CAPABILITY = 'moodle/course:manageactivities';
@@ -37,7 +37,7 @@ class tool_cleanupcourses_process_status_message_testcase extends \advanced_test
 
     public function setUp() {
         $this->resetAfterTest(false);
-        $this->generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $this->generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $settings = new stdClass();
         $settings->icon = self::MANUAL_TRIGGER1_ICON;
@@ -55,15 +55,15 @@ class tool_cleanupcourses_process_status_message_testcase extends \advanced_test
      */
     public function test_get_status_message() {
         $process = $this->generator->create_process(2, $this->workflow->id);
-        $message = \tool_cleanupcourses\manager\interaction_manager::get_process_status_message($process->id);
-        $this->assertEquals(get_string("workflow_started", "tool_cleanupcourses"), $message);
+        $message = \tool_lifecycle\manager\interaction_manager::get_process_status_message($process->id);
+        $this->assertEquals(get_string("workflow_started", "tool_lifecycle"), $message);
 
-        \tool_cleanupcourses\manager\process_manager::proceed_process($process);
-        $message = \tool_cleanupcourses\manager\interaction_manager::get_process_status_message($process->id);
-        $this->assertEquals(get_string("workflow_is_running", "tool_cleanupcourses"), $message);
+        \tool_lifecycle\manager\process_manager::proceed_process($process);
+        $message = \tool_lifecycle\manager\interaction_manager::get_process_status_message($process->id);
+        $this->assertEquals(get_string("workflow_is_running", "tool_lifecycle"), $message);
 
-        \tool_cleanupcourses\manager\process_manager::proceed_process($process);
-        $message = \tool_cleanupcourses\manager\interaction_manager::get_process_status_message($process->id);
-        $this->assertEquals(get_string('status_message_requiresattention', 'cleanupcoursesstep_email'), $message);
+        \tool_lifecycle\manager\process_manager::proceed_process($process);
+        $message = \tool_lifecycle\manager\interaction_manager::get_process_status_message($process->id);
+        $this->assertEquals(get_string('status_message_requiresattention', 'lifecyclestep_email'), $message);
     }
 }
\ No newline at end of file
diff --git a/tests/settings_manager_test.php b/tests/settings_manager_test.php
index 25f6a5ebfc05add7652682b180a4bf9b1c522933..1d27208d3a44aea30ceed88b7855756838c25220 100644
--- a/tests/settings_manager_test.php
+++ b/tests/settings_manager_test.php
@@ -16,19 +16,19 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\entity\step_subplugin;
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\settings_manager;
+use tool_lifecycle\entity\step_subplugin;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\settings_manager;
 
 /**
  * Tests the settings manager.
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @category   test
- * @group      tool_cleanupcourses
+ * @group      tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_settings_manager_testcase extends \advanced_testcase {
+class tool_lifecycle_settings_manager_testcase extends \advanced_testcase {
 
     /** step_subplugin */
     private $step;
@@ -39,12 +39,12 @@ class tool_cleanupcourses_settings_manager_testcase extends \advanced_testcase {
 
     public function setUp() {
         $this->resetAfterTest(false);
-        $generator = $this->getDataGenerator()->get_plugin_generator('tool_cleanupcourses');
+        $generator = $this->getDataGenerator()->get_plugin_generator('tool_lifecycle');
 
         $workflow = $generator->create_workflow();
         $this->step = new step_subplugin('instancename', 'email', $workflow->id);
         step_manager::insert_or_update($this->step);
-        $this->trigger = \tool_cleanupcourses\manager\trigger_manager::get_trigger_for_workflow($workflow->id);
+        $this->trigger = \tool_lifecycle\manager\trigger_manager::get_trigger_for_workflow($workflow->id);
     }
 
     /**
diff --git a/trigger/delayedcourses/db/install.php b/trigger/delayedcourses/db/install.php
index 6024394738694cd846eece09593f4895c9936bed..465ef53cceb6f143fbf9fdf4c852c26d97b9881e 100644
--- a/trigger/delayedcourses/db/install.php
+++ b/trigger/delayedcourses/db/install.php
@@ -15,17 +15,17 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Install script for course cleanup subplugin
+ * Install script for lifecycle subplugin
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage delayedcourses
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-use tool_cleanupcourses\manager\trigger_manager;
+use tool_lifecycle\manager\trigger_manager;
 
 defined('MOODLE_INTERNAL') || die();
 
-function xmldb_cleanupcoursestrigger_delayedcourses_install() {
+function xmldb_lifecycletrigger_delayedcourses_install() {
     trigger_manager::register_workflow('delayedcourses');
 }
\ No newline at end of file
diff --git a/trigger/delayedcourses/lang/en/cleanupcoursestrigger_delayedcourses.php b/trigger/delayedcourses/lang/en/lifecycletrigger_delayedcourses.php
similarity index 96%
rename from trigger/delayedcourses/lang/en/cleanupcoursestrigger_delayedcourses.php
rename to trigger/delayedcourses/lang/en/lifecycletrigger_delayedcourses.php
index 00c7b371541837194217ef000a51154ed4b16581..088c10d13a8483e07113450d42027a372d6602fa 100644
--- a/trigger/delayedcourses/lang/en/cleanupcoursestrigger_delayedcourses.php
+++ b/trigger/delayedcourses/lang/en/lifecycletrigger_delayedcourses.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for site course trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage delayedcourses
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/trigger/delayedcourses/lib.php b/trigger/delayedcourses/lib.php
index 4c8ea7d122aee29a02c9ec9bc5f4e7de01635374..834482cf0cc491b6cf53d3fd74d0b613a554b888 100644
--- a/trigger/delayedcourses/lib.php
+++ b/trigger/delayedcourses/lib.php
@@ -18,21 +18,21 @@
  * Interface for the subplugintype trigger
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\response\trigger_response;
-use tool_cleanupcourses\manager\delayed_courses_manager;
+use tool_lifecycle\response\trigger_response;
+use tool_lifecycle\manager\delayed_courses_manager;
 
 defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/../lib.php');
 
 /**
- * Class which implements the basic methods necessary for a cleanup courses trigger subplugin
- * @package tool_cleanupcourses\trigger
+ * Class which implements the basic methods necessary for a life cycle trigger subplugin
+ * @package tool_lifecycle\trigger
  */
 class delayedcourses extends base_automatic {
 
diff --git a/trigger/delayedcourses/tests/generator/lib.php b/trigger/delayedcourses/tests/generator/lib.php
index d89e8d356ba4cbd1b851f22d6519c85e277e78cb..b211c1139944722e078aeffeb9b36509ea2e9cc0 100644
--- a/trigger/delayedcourses/tests/generator/lib.php
+++ b/trigger/delayedcourses/tests/generator/lib.php
@@ -16,20 +16,20 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\entity\workflow;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\entity\workflow;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 /**
- * cleanupcoursestrigger_delayedcourses generator tests
+ * lifecycletrigger_delayedcourses generator tests
  *
- * @package    cleanupcoursestrigger_delayedcourses
+ * @package    lifecycletrigger_delayedcourses
  * @category   test
  * @copyright  2018 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_trigger_delayedcourses_generator extends testing_module_generator {
+class tool_lifecycle_trigger_delayedcourses_generator extends testing_module_generator {
 
     /**
      * Creates a trigger delayedcourses for an artificial workflow without steps.
diff --git a/trigger/delayedcourses/tests/trigger_test.php b/trigger/delayedcourses/tests/trigger_test.php
index 36d87954f6d386db988f41715efb42fd82f29b5c..62e7e0a34dfbfc3b2f2fa1b90aac9d9a34c39096 100644
--- a/trigger/delayedcourses/tests/trigger_test.php
+++ b/trigger/delayedcourses/tests/trigger_test.php
@@ -14,10 +14,10 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\response\trigger_response;
-use tool_cleanupcourses\manager\delayed_courses_manager;
+use tool_lifecycle\response\trigger_response;
+use tool_lifecycle\manager\delayed_courses_manager;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -27,13 +27,13 @@ require_once(__DIR__ . '/generator/lib.php');
 /**
  * Trigger test for delayed courses trigger.
  *
- * @package    tool_cleanupcourses_trigger
+ * @package    tool_lifecycle_trigger
  * @category   delayedcourses
- * @group tool_cleanupcourses_trigger
+ * @group tool_lifecycle_trigger
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_trigger_delayedcourses_testcase extends \advanced_testcase {
+class tool_lifecycle_trigger_delayedcourses_testcase extends \advanced_testcase {
 
     private $triggerinstance;
 
@@ -41,7 +41,7 @@ class tool_cleanupcourses_trigger_delayedcourses_testcase extends \advanced_test
         $this->resetAfterTest(true);
         $this->setAdminUser();
 
-        $this->triggerinstance = \tool_cleanupcourses_trigger_delayedcourses_generator::create_trigger_with_workflow();
+        $this->triggerinstance = \tool_lifecycle_trigger_delayedcourses_generator::create_trigger_with_workflow();
     }
 
     /**
diff --git a/trigger/delayedcourses/version.php b/trigger/delayedcourses/version.php
index 9c71d544a912aa71883aafeceb1d5322b37a506b..c9ff0a1e05d4e825f5628b6b8a0a47c1388f4aac 100644
--- a/trigger/delayedcourses/version.php
+++ b/trigger/delayedcourses/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Site Course Trigger
+ * Life Cycle Site Course Trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage delayedcourses
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017061900;
-$plugin->component = 'cleanupcoursestrigger_delayedcourses';
\ No newline at end of file
+$plugin->component = 'lifecycletrigger_delayedcourses';
\ No newline at end of file
diff --git a/trigger/dummy/lang/en/cleanupcoursestrigger_dummy.php b/trigger/dummy/lang/en/lifecycletrigger_dummy.php
similarity index 95%
rename from trigger/dummy/lang/en/cleanupcoursestrigger_dummy.php
rename to trigger/dummy/lang/en/lifecycletrigger_dummy.php
index b121d5c3e16a55c9cb1c7ff9d0b7e91cd20071ab..f8547eb31e43c19b4c4ce274f322e6b84d20b16f 100644
--- a/trigger/dummy/lang/en/cleanupcoursestrigger_dummy.php
+++ b/trigger/dummy/lang/en/lifecycletrigger_dummy.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for start date delay trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage startdatedelay
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/trigger/dummy/lib.php b/trigger/dummy/lib.php
index 1a40f2e711998e7ca763a95678c7984478487545..a1e1746353c041a74d8813ec98e41726acfac170 100644
--- a/trigger/dummy/lib.php
+++ b/trigger/dummy/lib.php
@@ -18,21 +18,21 @@
  * Interface for the subplugintype trigger
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage startdatedelay
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\response\trigger_response;
+use tool_lifecycle\response\trigger_response;
 
 defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/../lib.php');
 
 /**
  * Class which implements the basic methods necessary for a cleanyp courses trigger subplugin
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  */
 class dummy extends base_automatic {
 
diff --git a/trigger/dummy/version.php b/trigger/dummy/version.php
index 8f371f11ee16825b01f9ddab2d7e6badf9d762fc..4276e91005ac0aa2a76b4373ff7f6a2845ccd686 100644
--- a/trigger/dummy/version.php
+++ b/trigger/dummy/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Dummy Trigger
+ * Life Cycle Dummy Trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage dummy
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017050901;
-$plugin->component = 'cleanupcoursestrigger_dummy';
\ No newline at end of file
+$plugin->component = 'lifecycletrigger_dummy';
\ No newline at end of file
diff --git a/trigger/lib.php b/trigger/lib.php
index ae1c839b1277010671a023c76013b3e6dac0336a..b46a1f993a903a6ae12ce686d9043bb181b1c558 100644
--- a/trigger/lib.php
+++ b/trigger/lib.php
@@ -18,21 +18,21 @@
  * Interface for the subplugintype trigger
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @subpackage trigger
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\response\trigger_response;
+use tool_lifecycle\response\trigger_response;
 
 defined('MOODLE_INTERNAL') || die();
 
 /**
  * This class bundles different functions necessary for every trigger of a workflow.
  * This class should not be extended directly. Please use base_manual or base_automatic.
- * @package tool_cleanupcourses\trigger
+ * @package tool_lifecycle\trigger
  */
 abstract class base {
 
@@ -89,7 +89,7 @@ abstract class base {
      * @return string status message
      */
     public function get_status_message() {
-        return get_string("workflow_started", "tool_cleanupcourses");
+        return get_string("workflow_started", "tool_lifecycle");
     }
 
 }
@@ -97,7 +97,7 @@ abstract class base {
 /**
  * This class represents an automatic trigger.
  * It is used when workflow should be started based on a specific logic.
- * @package tool_cleanupcourses\trigger
+ * @package tool_lifecycle\trigger
  */
 abstract class base_automatic extends base {
 
@@ -117,7 +117,7 @@ abstract class base_automatic extends base {
 /**
  * This class represents a manual trigger.
  * It is used to enable user to manually start processes for workflows.
- * @package tool_cleanupcourses\trigger
+ * @package tool_lifecycle\trigger
  */
 abstract class base_manual extends base {
 
@@ -127,7 +127,7 @@ abstract class base_manual extends base {
 }
 /**
  * Class representing a local settings object for a subplugin instance.
- * @package tool_cleanupcourses\trigger
+ * @package tool_lifecycle\trigger
  */
 class instance_setting {
 
diff --git a/trigger/manual/lang/en/cleanupcoursestrigger_manual.php b/trigger/manual/lang/en/lifecycletrigger_manual.php
similarity index 96%
rename from trigger/manual/lang/en/cleanupcoursestrigger_manual.php
rename to trigger/manual/lang/en/lifecycletrigger_manual.php
index 1ca00455078b30701d5be66cf29b3447dd52a805..096ac9f339ea3c3800a44f31b6969354f74ba821 100644
--- a/trigger/manual/lang/en/cleanupcoursestrigger_manual.php
+++ b/trigger/manual/lang/en/lifecycletrigger_manual.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for manual trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage manual
  * @copyright  2018 WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
diff --git a/trigger/manual/lib.php b/trigger/manual/lib.php
index 12a4ecfa7d1e467c7cb07e6286ec5c28b1f5af09..42019a905fe5ea0cc6eece18b28d99732263b447 100644
--- a/trigger/manual/lib.php
+++ b/trigger/manual/lib.php
@@ -18,19 +18,19 @@
  * Interface for the subplugintype trigger
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage manual
  * @copyright  2018 WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
 defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/../lib.php');
 
 /**
- * Class which implements the basic methods necessary for a cleanup courses trigger subplugin
- * @package tool_cleanupcourses_trigger
+ * Class which implements the basic methods necessary for a life cycle trigger subplugin
+ * @package tool_lifecycle_trigger
  */
 class manual extends base_manual {
 
@@ -56,19 +56,19 @@ class manual extends base_manual {
     public function extend_add_instance_form_definition($mform) {
         $elementname = 'icon';
         $mform->addElement(
-            'text', $elementname, get_string('setting_icon', 'cleanupcoursestrigger_manual')
+            'text', $elementname, get_string('setting_icon', 'lifecycletrigger_manual')
         );
         $mform->setType($elementname, PARAM_SAFEPATH);
 
         $elementname = 'displayname';
         $mform->addElement(
-            'text', $elementname, get_string('setting_displayname', 'cleanupcoursestrigger_manual')
+            'text', $elementname, get_string('setting_displayname', 'lifecycletrigger_manual')
         );
         $mform->setType($elementname, PARAM_TEXT);
 
         $elementname = 'capability';
         $mform->addElement(
-            'text', $elementname, get_string('setting_capability', 'cleanupcoursestrigger_manual')
+            'text', $elementname, get_string('setting_capability', 'lifecycletrigger_manual')
         );
         $mform->setType($elementname, PARAM_CAPABILITY);
     }
diff --git a/trigger/manual/version.php b/trigger/manual/version.php
index 35547bf657d101a39dd3238202b29be99187e9d0..c6f0f0a127655be820f5ff108b9f980c87036ac0 100644
--- a/trigger/manual/version.php
+++ b/trigger/manual/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Manual Trigger
+ * Life Cycle Manual Trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage manual
  * @copyright  2018 WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2018022000;
-$plugin->component = 'cleanupcoursestrigger_manual';
\ No newline at end of file
+$plugin->component = 'lifecycletrigger_manual';
\ No newline at end of file
diff --git a/trigger/sitecourse/db/install.php b/trigger/sitecourse/db/install.php
index 693bd577fefbadb1aa4fecc2918b24414c8fb151..b251a39dda13f791be63b67835837b2cbed5b19c 100644
--- a/trigger/sitecourse/db/install.php
+++ b/trigger/sitecourse/db/install.php
@@ -15,17 +15,17 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Install script for course cleanup subplugin
+ * Install script for lifecycle subplugin
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage sitecourse
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-use tool_cleanupcourses\manager\trigger_manager;
+use tool_lifecycle\manager\trigger_manager;
 
 defined('MOODLE_INTERNAL') || die();
 
-function xmldb_cleanupcoursestrigger_sitecourse_install() {
+function xmldb_lifecycletrigger_sitecourse_install() {
     trigger_manager::register_workflow('sitecourse');
 }
\ No newline at end of file
diff --git a/trigger/sitecourse/lang/en/cleanupcoursestrigger_sitecourse.php b/trigger/sitecourse/lang/en/lifecycletrigger_sitecourse.php
similarity index 95%
rename from trigger/sitecourse/lang/en/cleanupcoursestrigger_sitecourse.php
rename to trigger/sitecourse/lang/en/lifecycletrigger_sitecourse.php
index 7ccc830ff560a2970bebf12843e056789aadd026..e5496ca9e5b0e1d53c3a7483f67c8412e9467b9d 100644
--- a/trigger/sitecourse/lang/en/cleanupcoursestrigger_sitecourse.php
+++ b/trigger/sitecourse/lang/en/lifecycletrigger_sitecourse.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for site course trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage startdatedelay
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -25,4 +25,4 @@
 
 $string['pluginname'] = 'Exclude site course trigger';
 
-$string['delay'] = 'This module will exclude the site course from cleanup';
+$string['delay'] = 'This module will exclude the site course from processing';
diff --git a/trigger/sitecourse/lib.php b/trigger/sitecourse/lib.php
index 84370a62d9a75ba60344b017f473e79e39d7e763..4ffe2d487c5a70db2ee105d7c8041ce87346bb6d 100644
--- a/trigger/sitecourse/lib.php
+++ b/trigger/sitecourse/lib.php
@@ -18,20 +18,20 @@
  * Interface for the subplugintype trigger
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\response\trigger_response;
+use tool_lifecycle\response\trigger_response;
 
 defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/../lib.php');
 
 /**
- * Class which implements the basic methods necessary for a cleanup courses trigger subplugin
- * @package tool_cleanupcourses\trigger
+ * Class which implements the basic methods necessary for a life cycle trigger subplugin
+ * @package tool_lifecycle\trigger
  */
 class sitecourse extends base_automatic {
 
diff --git a/trigger/sitecourse/tests/generator/lib.php b/trigger/sitecourse/tests/generator/lib.php
index 14d5d94b2cc7b711d7e86b5e610a6d2b2f0f2fd9..584db79dc31ca600ce982b39f33d83a16550230d 100644
--- a/trigger/sitecourse/tests/generator/lib.php
+++ b/trigger/sitecourse/tests/generator/lib.php
@@ -16,20 +16,20 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\entity\workflow;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\entity\workflow;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 /**
- * cleanupcoursestrigger_sitecourse generator tests
+ * lifecycletrigger_sitecourse generator tests
  *
- * @package    cleanupcoursestrigger_sitecourse
+ * @package    lifecycletrigger_sitecourse
  * @category   test
  * @copyright  2018 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_trigger_sitecourse_generator extends testing_module_generator {
+class tool_lifecycle_trigger_sitecourse_generator extends testing_module_generator {
 
     /**
      * Creates a trigger sitecourse for an artificial workflow without steps.
diff --git a/trigger/sitecourse/tests/trigger_test.php b/trigger/sitecourse/tests/trigger_test.php
index 134fe3c7ba8b85e437ff5a0e83eaf2973ea1c19b..1fb30fa0c93d1ca97949a4a2f533e9ec42c9a721 100644
--- a/trigger/sitecourse/tests/trigger_test.php
+++ b/trigger/sitecourse/tests/trigger_test.php
@@ -14,9 +14,9 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\response\trigger_response;
+use tool_lifecycle\response\trigger_response;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -26,13 +26,13 @@ require_once(__DIR__ . '/generator/lib.php');
 /**
  * Trigger test for course site trigger.
  *
- * @package    tool_cleanupcourses_trigger
+ * @package    tool_lifecycle_trigger
  * @category   startdatedelay
- * @group tool_cleanupcourses_trigger
+ * @group tool_lifecycle_trigger
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_trigger_sitecourse_testcase extends \advanced_testcase {
+class tool_lifecycle_trigger_sitecourse_testcase extends \advanced_testcase {
 
     private $triggerinstance;
 
@@ -40,7 +40,7 @@ class tool_cleanupcourses_trigger_sitecourse_testcase extends \advanced_testcase
         $this->resetAfterTest(true);
         $this->setAdminUser();
 
-        $this->triggerinstance = \tool_cleanupcourses_trigger_sitecourse_generator::create_trigger_with_workflow();
+        $this->triggerinstance = \tool_lifecycle_trigger_sitecourse_generator::create_trigger_with_workflow();
     }
 
     /**
diff --git a/trigger/sitecourse/version.php b/trigger/sitecourse/version.php
index 7fe46958bf0ed0223c04498b017629de651f1e4f..d89e6c1c1b79aff3d757b10e2a0c7b0632189665 100644
--- a/trigger/sitecourse/version.php
+++ b/trigger/sitecourse/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Site Course Trigger
+ * Life Cycle Site Course Trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage sitecourse
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017050900;
-$plugin->component = 'cleanupcoursestrigger_sitecourse';
\ No newline at end of file
+$plugin->component = 'lifecycletrigger_sitecourse';
\ No newline at end of file
diff --git a/trigger/startdatedelay/lang/en/cleanupcoursestrigger_startdatedelay.php b/trigger/startdatedelay/lang/en/lifecycletrigger_startdatedelay.php
similarity index 89%
rename from trigger/startdatedelay/lang/en/cleanupcoursestrigger_startdatedelay.php
rename to trigger/startdatedelay/lang/en/lifecycletrigger_startdatedelay.php
index e1180b2e18285e6ef7c828cf8cbf4ca9cd81b502..8783af5dca30dc3be6af0b54b9f30b256fd5cf29 100644
--- a/trigger/startdatedelay/lang/en/cleanupcoursestrigger_startdatedelay.php
+++ b/trigger/startdatedelay/lang/en/lifecycletrigger_startdatedelay.php
@@ -17,7 +17,7 @@
 /**
  * Lang strings for start date delay trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage startdatedelay
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -25,4 +25,4 @@
 
 $string['pluginname'] = 'Start date delay trigger';
 
-$string['delay'] = 'Delay from start of course til cleanup';
+$string['delay'] = 'Delay from start of course til starting a process';
diff --git a/trigger/startdatedelay/lib.php b/trigger/startdatedelay/lib.php
index 410bed3e68cf9f21a08d2a9b27953fcd61305c00..494756f9b9bad3e2c73a4c4c69f8c5d245b9fc55 100644
--- a/trigger/startdatedelay/lib.php
+++ b/trigger/startdatedelay/lib.php
@@ -18,15 +18,15 @@
  * Interface for the subplugintype trigger
  * It has to be implemented by all subplugins.
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage startdatedelay
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\response\trigger_response;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\response\trigger_response;
 
 defined('MOODLE_INTERNAL') || die();
 require_once(__DIR__ . '/../lib.php');
@@ -34,7 +34,7 @@ require_once(__DIR__ . '/../../lib.php');
 
 /**
  * Class which implements the basic methods necessary for a cleanyp courses trigger subplugin
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  */
 class startdatedelay extends base_automatic {
 
@@ -65,7 +65,7 @@ class startdatedelay extends base_automatic {
     }
 
     public function extend_add_instance_form_definition($mform) {
-        $mform->addElement('duration', 'delay', get_string('delay', 'cleanupcoursestrigger_startdatedelay'));
+        $mform->addElement('duration', 'delay', get_string('delay', 'lifecycletrigger_startdatedelay'));
     }
 
     public function extend_add_instance_form_definition_after_data($mform, $settings) {
diff --git a/trigger/startdatedelay/tests/generator/lib.php b/trigger/startdatedelay/tests/generator/lib.php
index 44813ec974b1ed95b1bd97f01284f17a19d24838..cd6f7426944ea08730854bb1a5bf447d2c411365 100644
--- a/trigger/startdatedelay/tests/generator/lib.php
+++ b/trigger/startdatedelay/tests/generator/lib.php
@@ -16,21 +16,21 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-use tool_cleanupcourses\entity\trigger_subplugin;
-use tool_cleanupcourses\entity\workflow;
-use tool_cleanupcourses\manager\settings_manager;
-use tool_cleanupcourses\manager\trigger_manager;
-use tool_cleanupcourses\manager\workflow_manager;
+use tool_lifecycle\entity\trigger_subplugin;
+use tool_lifecycle\entity\workflow;
+use tool_lifecycle\manager\settings_manager;
+use tool_lifecycle\manager\trigger_manager;
+use tool_lifecycle\manager\workflow_manager;
 
 /**
- * cleanupcoursestrigger_startdatedelay generator tests
+ * lifecycletrigger_startdatedelay generator tests
  *
- * @package    cleanupcoursestrigger_startdatedelay
+ * @package    lifecycletrigger_startdatedelay
  * @category   test
  * @copyright  2018 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_trigger_startdatedelay_generator extends testing_module_generator {
+class tool_lifecycle_trigger_startdatedelay_generator extends testing_module_generator {
 
     /**
      * Creates a trigger startdatedelay for an artificial workflow without steps.
diff --git a/trigger/startdatedelay/tests/trigger_test.php b/trigger/startdatedelay/tests/trigger_test.php
index 55b9e54649321015b5e9928e80a962b140e74c88..09dc96c3d94e14e09ad0ba79f1522b98f67206d4 100644
--- a/trigger/startdatedelay/tests/trigger_test.php
+++ b/trigger/startdatedelay/tests/trigger_test.php
@@ -14,9 +14,9 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-namespace tool_cleanupcourses\trigger;
+namespace tool_lifecycle\trigger;
 
-use tool_cleanupcourses\response\trigger_response;
+use tool_lifecycle\response\trigger_response;
 
 defined('MOODLE_INTERNAL') || die();
 
@@ -26,13 +26,13 @@ require_once(__DIR__ . '/generator/lib.php');
 /**
  * Trigger test for start date delay trigger.
  *
- * @package    tool_cleanupcourses_trigger
+ * @package    tool_lifecycle_trigger
  * @category   startdatedelay
- * @group tool_cleanupcourses_trigger
+ * @group tool_lifecycle_trigger
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
-class tool_cleanupcourses_trigger_startdatedelay_testcase extends \advanced_testcase {
+class tool_lifecycle_trigger_startdatedelay_testcase extends \advanced_testcase {
 
     private $triggerinstance;
 
@@ -40,7 +40,7 @@ class tool_cleanupcourses_trigger_startdatedelay_testcase extends \advanced_test
         $this->resetAfterTest(true);
         $this->setAdminUser();
 
-        $this->triggerinstance = \tool_cleanupcourses_trigger_startdatedelay_generator::create_trigger_with_workflow();
+        $this->triggerinstance = \tool_lifecycle_trigger_startdatedelay_generator::create_trigger_with_workflow();
     }
 
     /**
diff --git a/trigger/startdatedelay/version.php b/trigger/startdatedelay/version.php
index c521155280844e706afca9026941b0cb1304da08..9bd6252549ed74de592cb1bd60bb08da60dfc09c 100644
--- a/trigger/startdatedelay/version.php
+++ b/trigger/startdatedelay/version.php
@@ -15,9 +15,9 @@
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
- * Cleanup Courses Startdate Trigger
+ * Life Cycle Startdate Trigger
  *
- * @package tool_cleanupcourses_trigger
+ * @package tool_lifecycle_trigger
  * @subpackage startdatedelay
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
@@ -26,4 +26,4 @@
 defined('MOODLE_INTERNAL') || die;
 
 $plugin->version  = 2017050901;
-$plugin->component = 'cleanupcoursestrigger_startdatedelay';
\ No newline at end of file
+$plugin->component = 'lifecycletrigger_startdatedelay';
\ No newline at end of file
diff --git a/version.php b/version.php
index 80557eab120e6001d9a823e125516189233c5e1a..8f1997279f994fbefac8e0c01055af501c38b63d 100644
--- a/version.php
+++ b/version.php
@@ -17,12 +17,13 @@
 /**
  * Version details.
  *
- * @package    tool_cleanupcourses
+ * @package    tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  */
 
 defined('MOODLE_INTERNAL') || die;
 
+$plugin->maturity = MATURITY_ALPHA;
 $plugin->version  = 2018022102;
-$plugin->component = 'tool_cleanupcourses';
+$plugin->component = 'tool_lifecycle';
 $plugin->requires = 2017051500; // Require Moodle 3.3 (or above).
diff --git a/view.php b/view.php
index bf0eba66341d9a33abe27c8f4fcf75e4175324ca..8649c3f07cc1204a3d560e2bccf7e9d767448f1e 100644
--- a/view.php
+++ b/view.php
@@ -17,21 +17,21 @@
 /**
  * Display the list of courses relevant for a specific user in a specific step instance.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 require_once(__DIR__ . '/../../../config.php');
 
-use tool_cleanupcourses\manager\step_manager;
-use tool_cleanupcourses\manager\interaction_manager;
-use tool_cleanupcourses\table\interaction_attention_table;
+use tool_lifecycle\manager\step_manager;
+use tool_lifecycle\manager\interaction_manager;
+use tool_lifecycle\table\interaction_attention_table;
 
 require_login(null, false);
 
 $PAGE->set_context(context_system::instance());
 $PAGE->set_pagelayout('standard');
-$PAGE->set_url(new \moodle_url('/admin/tool/cleanupcourses/view.php'));
+$PAGE->set_url(new \moodle_url('/admin/tool/lifecycle/view.php'));
 
 // Interaction params.
 $action = optional_param('action', null, PARAM_ALPHA);
@@ -42,10 +42,10 @@ $stepid = optional_param('stepid', null, PARAM_INT);
 $triggerid = optional_param('triggerid', null, PARAM_INT);
 $courseid = optional_param('courseid', null, PARAM_INT);
 
-$PAGE->set_title(get_string('viewheading', 'tool_cleanupcourses'));
-$PAGE->set_heading(get_string('viewheading', 'tool_cleanupcourses'));
+$PAGE->set_title(get_string('viewheading', 'tool_lifecycle'));
+$PAGE->set_heading(get_string('viewheading', 'tool_lifecycle'));
 
-$controller = new \tool_cleanupcourses\view_controller();
+$controller = new \tool_lifecycle\view_controller();
 
 if ($action !== null && $processid !== null && $stepid !== null) {
     require_sesskey();
@@ -57,7 +57,7 @@ if ($action !== null && $processid !== null && $stepid !== null) {
     exit;
 }
 
-$renderer = $PAGE->get_renderer('tool_cleanupcourses');
+$renderer = $PAGE->get_renderer('tool_lifecycle');
 
 echo $renderer->header();
 
diff --git a/workflowsettings.php b/workflowsettings.php
index d96f1903b3496b0305ef9754551d7e104e76844f..12fbbfe4b870b49d977173840174c3c1125122fa 100644
--- a/workflowsettings.php
+++ b/workflowsettings.php
@@ -17,7 +17,7 @@
 /**
  * Displays the settings associated with one single workflow and handles action for it.
  *
- * @package tool_cleanupcourses
+ * @package tool_lifecycle
  * @copyright  2017 Tobias Reischmann WWU
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
@@ -30,15 +30,15 @@ require_capability('moodle/site:config', context_system::instance());
 
 $workflowid = required_param('workflowid', PARAM_INT);
 
-$workflow = tool_cleanupcourses\manager\workflow_manager::get_workflow($workflowid);
+$workflow = tool_lifecycle\manager\workflow_manager::get_workflow($workflowid);
 
 if (!$workflow) {
-    throw new moodle_exception('workflownotfound', 'tool_cleanupcourses',
-        new \moodle_url('/admin/tool/cleanupcourses/adminsettings.php'), $workflowid);
+    throw new moodle_exception('workflownotfound', 'tool_lifecycle',
+        new \moodle_url('/admin/tool/lifecycle/adminsettings.php'), $workflowid);
 }
 
 // Create the class for this controller.
-$workflowsettings = new tool_cleanupcourses\workflow_settings($workflowid);
+$workflowsettings = new tool_lifecycle\workflow_settings($workflowid);
 
 // Execute the controller.
 $workflowsettings->execute(optional_param('action', null, PARAM_TEXT),