From 9ae9bb8473d0d71810427b28640a3d3c432c10b2 Mon Sep 17 00:00:00 2001
From: Tobias Reischmann <tobias.reischmann@wi.uni-muenster.de>
Date: Mon, 26 Mar 2018 15:57:29 +0200
Subject: [PATCH] Rebranded from cleanupcourses to lifecycle

---
 README.md                                     |  12 +-
 activeprocesses.php                           |  14 +-
 adminlib.php                                  | 110 +++++++--------
 adminsettings.php                             |   4 +-
 classes/entity/process.php                    |   8 +-
 classes/entity/step_subplugin.php             |   4 +-
 classes/entity/subplugin.php                  |   4 +-
 classes/entity/trigger_subplugin.php          |   4 +-
 classes/entity/workflow.php                   |   6 +-
 classes/form/form_step_instance.php           |  22 +--
 classes/form/form_trigger_instance.php        |  22 +--
 classes/form/form_workflow_instance.php       |  14 +-
 classes/local/data/manual_trigger_tool.php    |   4 +-
 classes/manager/backup_manager.php            |  22 +--
 classes/manager/delayed_courses_manager.php   |  14 +-
 classes/manager/interaction_manager.php       |  20 +--
 classes/manager/lib_manager.php               |  22 +--
 classes/manager/process_data_manager.php      |  18 +--
 classes/manager/process_manager.php           |  32 ++---
 classes/manager/settings_manager.php          |  14 +-
 classes/manager/step_manager.php              |  36 ++---
 classes/manager/subplugin_manager.php         |   6 +-
 classes/manager/trigger_manager.php           |  32 ++---
 classes/manager/workflow_manager.php          |  34 ++---
 ...eanupcoursesstep.php => lifecyclestep.php} |  12 +-
 ...oursestrigger.php => lifecycletrigger.php} |  16 +--
 .../{cleanup_processor.php => processor.php}  |  34 ++---
 .../response/step_interactive_response.php    |   4 +-
 classes/response/step_response.php            |   4 +-
 classes/response/trigger_response.php         |   8 +-
 .../active_automatic_workflows_table.php      |  26 ++--
 .../table/active_manual_workflows_table.php   |  24 ++--
 classes/table/active_processes_table.php      |  10 +-
 classes/table/course_backups_table.php        |  14 +-
 classes/table/interaction_attention_table.php |  20 +--
 classes/table/interaction_remaining_table.php |  14 +-
 classes/table/interaction_table.php           |  16 +--
 classes/table/step_table.php                  |  36 ++---
 classes/table/workflow_definition_table.php   |  36 ++---
 classes/table/workflow_table.php              |  18 +--
 ...process_cleanup.php => lifecycle_task.php} |  20 +--
 classes/view_controller.php                   |  48 +++----
 codecov.yml                                   |   2 +-
 coursebackups.php                             |  14 +-
 db/access.php                                 |   6 +-
 db/install.php                                |   6 +-
 db/install.xml                                |  30 ++---
 db/subplugins.php                             |   6 +-
 db/tasks.php                                  |   6 +-
 db/upgrade.php                                | 126 +++++++++---------
 ..._cleanupcourses.php => tool_lifecycle.php} |  26 ++--
 lib.php                                       |   2 +-
 renderer.php                                  |   6 +-
 restore.php                                   |   4 +-
 settings.php                                  |  34 ++---
 ...kup.php => lifecyclestep_createbackup.php} |   2 +-
 step/createbackup/lib.php                     |   8 +-
 step/createbackup/version.php                 |   6 +-
 ...rse.php => lifecyclestep_deletecourse.php} |   2 +-
 step/deletecourse/lib.php                     |   6 +-
 step/deletecourse/version.php                 |   6 +-
 ...step_dummy.php => lifecyclestep_dummy.php} |   2 +-
 step/dummy/lib.php                            |   6 +-
 step/dummy/version.php                        |   6 +-
 step/duplicate/classes/form_duplicate.php     |  10 +-
 step/duplicate/interactionlib.php             |  26 ++--
 ...licate.php => lifecyclestep_duplicate.php} |   2 +-
 step/duplicate/lib.php                        |  14 +-
 step/duplicate/version.php                    |   6 +-
 step/email/db/access.php                      |   6 +-
 step/email/db/install.xml                     |   4 +-
 step/email/interactionlib.php                 |  24 ++--
 ...step_email.php => lifecyclestep_email.php} |   2 +-
 step/email/lib.php                            |  34 ++---
 step/email/version.php                        |   6 +-
 step/interactionlib.php                       |  10 +-
 step/lib.php                                  |  10 +-
 styles.css                                    |   4 +-
 tests/active_workflow_is_manual_test.php      |  12 +-
 .../active_workflow_sortindex_updown_test.php |  12 +-
 tests/backup_manager_test.php                 |  12 +-
 tests/behat/activate_workflow.feature         |  32 ++---
 tests/behat/add_workflow.feature              |  18 +--
 ...upcourses.php => behat_tool_lifecycle.php} |  18 +--
 tests/behat/interaction.feature               |  42 +++---
 tests/behat/interaction_forms.feature         |  58 ++++----
 tests/behat/manual_trigger.feature            |  34 ++---
 tests/generator/lib.php                       |  24 ++--
 tests/manual_trigger_tools_test.php           |  16 +--
 tests/manually_triggered_process_test.php     |  18 +--
 .../persistence/persist_process_data_test.php |  14 +-
 tests/persistence/persist_process_test.php    |  10 +-
 tests/persistence/persist_step_test.php       |  12 +-
 tests/persistence/persist_workflow_test.php   |  10 +-
 tests/phpunit.xml                             |   2 +-
 tests/process_status_message_test.php         |  26 ++--
 tests/settings_manager_test.php               |  16 +--
 trigger/delayedcourses/db/install.php         |   8 +-
 ...hp => lifecycletrigger_delayedcourses.php} |   2 +-
 trigger/delayedcourses/lib.php                |  12 +-
 .../delayedcourses/tests/generator/lib.php    |  14 +-
 trigger/delayedcourses/tests/trigger_test.php |  14 +-
 trigger/delayedcourses/version.php            |   6 +-
 ...r_dummy.php => lifecycletrigger_dummy.php} |   2 +-
 trigger/dummy/lib.php                         |   8 +-
 trigger/dummy/version.php                     |   6 +-
 trigger/lib.php                               |  16 +--
 ...manual.php => lifecycletrigger_manual.php} |   2 +-
 trigger/manual/lib.php                        |  14 +-
 trigger/manual/version.php                    |   6 +-
 trigger/sitecourse/db/install.php             |   8 +-
 ...se.php => lifecycletrigger_sitecourse.php} |   4 +-
 trigger/sitecourse/lib.php                    |  10 +-
 trigger/sitecourse/tests/generator/lib.php    |  14 +-
 trigger/sitecourse/tests/trigger_test.php     |  12 +-
 trigger/sitecourse/version.php                |   6 +-
 ...hp => lifecycletrigger_startdatedelay.php} |   4 +-
 trigger/startdatedelay/lib.php                |  12 +-
 .../startdatedelay/tests/generator/lib.php    |  16 +--
 trigger/startdatedelay/tests/trigger_test.php |  12 +-
 trigger/startdatedelay/version.php            |   6 +-
 version.php                                   |   5 +-
 view.php                                      |  18 +--
 workflowsettings.php                          |  10 +-
 124 files changed, 973 insertions(+), 968 deletions(-)
 rename classes/plugininfo/{cleanupcoursesstep.php => lifecyclestep.php} (85%)
 rename classes/plugininfo/{cleanupcoursestrigger.php => lifecycletrigger.php} (86%)
 rename classes/{cleanup_processor.php => processor.php} (86%)
 rename classes/task/{process_cleanup.php => lifecycle_task.php} (72%)
 rename lang/en/{tool_cleanupcourses.php => tool_lifecycle.php} (85%)
 rename step/createbackup/lang/en/{cleanupcoursesstep_createbackup.php => lifecyclestep_createbackup.php} (96%)
 rename step/deletecourse/lang/en/{cleanupcoursesstep_deletecourse.php => lifecyclestep_deletecourse.php} (96%)
 rename step/dummy/lang/en/{cleanupcoursesstep_dummy.php => lifecyclestep_dummy.php} (96%)
 rename step/duplicate/lang/en/{cleanupcoursesstep_duplicate.php => lifecyclestep_duplicate.php} (96%)
 rename step/email/lang/en/{cleanupcoursesstep_email.php => lifecyclestep_email.php} (97%)
 rename tests/behat/{behat_tool_cleanupcourses.php => behat_tool_lifecycle.php} (94%)
 rename trigger/delayedcourses/lang/en/{cleanupcoursestrigger_delayedcourses.php => lifecycletrigger_delayedcourses.php} (96%)
 rename trigger/dummy/lang/en/{cleanupcoursestrigger_dummy.php => lifecycletrigger_dummy.php} (95%)
 rename trigger/manual/lang/en/{cleanupcoursestrigger_manual.php => lifecycletrigger_manual.php} (96%)
 rename trigger/sitecourse/lang/en/{cleanupcoursestrigger_sitecourse.php => lifecycletrigger_sitecourse.php} (95%)
 rename trigger/startdatedelay/lang/en/{cleanupcoursestrigger_startdatedelay.php => lifecycletrigger_startdatedelay.php} (89%)

diff --git a/README.md b/README.md
index 2a87aa7..b0a9b74 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 65d776f..c2a227a 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 1258127..234649d 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 5e8d294..cbbc36a 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 c0e5a97..a0ce049 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 38b7c61..2b5871c 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 2a253bb..f2f731b 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 3b49b76..fe3f89c 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 b850027..3858c03 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 2a90bad..daa3dd0 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 3721a26..898d3f8 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 ae935fb..d7f137d 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 e6659e7..cd211de 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 efd2e81..c272849 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 096b2f3..4d06cda 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 0b14f07..d59d755 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 a691b85..2db928d 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 8a69faf..eae43e1 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 5a17586..8ef3772 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 b11fa10..e19c511 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 65fa590..94cb199 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 d5553be..a702048 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 525da30..3f63902 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 fbc6bb0..407ff83 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 41d79fe..c98c550 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 a8fedc6..7b252e9 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 6dc4094..3d91ae5 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 59d0ee5..c9e2cb2 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 c47bf49..6008503 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 f23d30d..090704e 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 ee2b0ce..28663c8 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 6abc497..e4ba56e 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 6e866f6..942d0ab 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 ab57a8e..6e75856 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 00cafc9..1483186 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 82915c1..859f23f 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 5d4830d..cf338f9 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 70e4714..3306de0 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 b5cccdd..d0d6a54 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 642901f..1ddc25b 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 2e4ecc4..12092df 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 34e5bff..d893986 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 eaa2a44..82b2913 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 b31f158..6c8aee2 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 0102a2c..37c42da 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 5d544f7..34d36a2 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 d7c8f33..e103a55 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 86740ec..4b76bb1 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 64b0c55..22611f5 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 f700214..35bc838 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 31425ec..a7541f9 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 cd04603..ebb3713 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 cda6b10..393c52b 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 0502d83..37277f4 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 a25a14b..ebec712 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 05d2010..caf33d8 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 d2df654..3c5c22c 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 6819071..53e977c 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 666a4d4..edcc753 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 dfeeb60..012b56e 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 b9ae1dc..e157ebb 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 c4535bf..2159a69 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 8353715..4418309 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 591a577..63fc199 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 79f94b6..7baaed6 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 5e2e44d..51f13a3 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 136c1f3..bf663dd 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 db127c7..609278b 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 2808263..20dd38f 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 64f994d..94ddebb 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 6b94cbe..1620fde 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 ccccb84..2483ca6 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 9909c33..3513136 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 779d28b..c1e317d 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 b6fc249..94a4be6 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 6166a09..04cadf9 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 2516f40..d9078a5 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 14ad71f..566f3a5 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 3cd2f25..1b081b1 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 46b4daf..982093d 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 9d7b074..b05c5fc 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 07e10b2..c45ff64 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 ce6009c..07dd408 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 14165ca..866c682 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 c7c62db..1c8fc09 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 27c8844..3be67a0 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 df35658..88e5c03 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 d787d56..1d99e85 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 59f402e..c556f82 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 d85695e..c266dbb 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 f3e2888..dafd44e 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 b312118..342983b 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 cb8b529..8276aca 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 6f01b89..86cef59 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 8d08504..9cc368f 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 1795a08..d6ad1e9 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 25f6a5e..1d27208 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 6024394..465ef53 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 00c7b37..088c10d 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 4c8ea7d..834482c 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 d89e8d3..b211c11 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 36d8795..62e7e0a 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 9c71d54..c9ff0a1 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 b121d5c..f8547eb 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 1a40f2e..a1e1746 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 8f371f1..4276e91 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 ae1c839..b46a1f9 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 1ca0045..096ac9f 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 12a4ecf..42019a9 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 35547bf..c6f0f0a 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 693bd57..b251a39 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 7ccc830..e5496ca 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 84370a6..4ffe2d4 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 14d5d94..584db79 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 134fe3c..1fb30fa 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 7fe4695..d89e6c1 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 e1180b2..8783af5 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 410bed3..494756f 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 44813ec..cd6f742 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 55b9e54..09dc96c 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 c521155..9bd6252 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 80557ea..8f19972 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 bf0eba6..8649c3f 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 d96f190..12fbbfe 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),
-- 
GitLab