diff --git a/lib/classes/SemClass.class.php b/lib/classes/SemClass.class.php
index 862747f06964f2bbab49704d5d4db47c1cec5810..cfd7bc03a740f8b6ec8aef6e67bfa64033c95409 100644
--- a/lib/classes/SemClass.class.php
+++ b/lib/classes/SemClass.class.php
@@ -147,16 +147,8 @@ class SemClass implements ArrayAccess
         $plugin = PluginManager::getInstance()->getPlugin($module);
         if ($plugin) {
             return Course::findEachBySQL(function ($course) use ($plugin) {
-                if (!$course->tools->findOneby('plugin_id', $plugin->getPluginId())) {
-                    return ToolActivation::create([
-                        'plugin_id' => $plugin->getPluginId(),
-                        'range_type'  => 'course',
-                        'range_id' => $course->id
-                    ]);
-                } else {
-                    return 0;
-                }
-        },
+                return PluginManager::getInstance()->setPluginActivated($plugin->getPluginId(), $course->id, true);
+            },
                 "seminare.status IN (?)",
                 [array_keys($this->getSemTypes())]);
         } else {
@@ -173,11 +165,7 @@ class SemClass implements ArrayAccess
         $plugin = PluginManager::getInstance()->getPlugin($module);
         if ($plugin) {
             return Course::findEachBySQL(function ($course) use ($plugin) {
-                if ($tool = $course->tools->findOneby('plugin_id', $plugin->getPluginId())) {
-                    return $tool->delete();
-                } else {
-                    return 0;
-                }
+                return PluginManager::getInstance()->setPluginActivated($plugin->getPluginId(), $course->id, false);
             },
                 "seminare.status IN (?)",
                 [array_keys($this->getSemTypes())]);
diff --git a/lib/models/Course.class.php b/lib/models/Course.class.php
index 429bb1b8459776549d1062a4d9074d7604cf9ebe..315b52ede146581520bbfd1f97d496db72bcc7b4 100644
--- a/lib/models/Course.class.php
+++ b/lib/models/Course.class.php
@@ -1004,15 +1004,9 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe
     public function setDefaultTools()
     {
         $this->tools = [];
-        foreach (array_values($this->getSemClass()->getActivatedModuleObjects()) as  $pos => $module) {
-            $this->tools[] = ToolActivation::create(
-                [
-                    'plugin_id' => $module->getPluginId(),
-                    'range_type'  => 'course',
-                    'range_id' => $this->id,
-                    'position' => $pos
-                ]
-            );
+        foreach (array_values($this->getSemClass()->getActivatedModuleObjects()) as $module) {
+            PluginManager::getInstance()->setPluginActivated($module->getPluginId(), $this->id, true);
+            $this->tools[] = ToolActivation::find([$this->id, $module->getPluginId()]);
         }
     }
 
diff --git a/lib/models/Institute.class.php b/lib/models/Institute.class.php
index 1ba4eb08a86d52aa87a186368261e9a2c41d2980..9e662cc32e2e026973fcba978aa087de58d75ad0 100644
--- a/lib/models/Institute.class.php
+++ b/lib/models/Institute.class.php
@@ -320,17 +320,11 @@ class Institute extends SimpleORMap implements Range
      */
     public function setDefaultTools()
     {
-        $this->tools = [];
-        foreach (array_values($this->getSemClass()->getActivatedModuleObjects()) as  $pos => $module) {
-            $this->tools[] = ToolActivation::create(
-                [
-                    'plugin_id' => $module->getPluginId(),
-                    'range_type'  => 'institute',
-                    'range_id' => $this->id,
-                    'position' => $pos
-                ]
-            );
-        }
+       $this->tools = [];
+       foreach (array_values($this->getSemClass()->getActivatedModuleObjects()) as $module) {
+           PluginManager::getInstance()->setPluginActivated($module->getPluginId(), $this->id, true);
+           $this->tools[] = ToolActivation::find([$this->id, $module->getPluginId()]);
+       }
     }
 
     /**