diff --git a/db/migrations/1.231_add_files_search_index.php b/db/migrations/1.231_add_files_search_index.php
index aa25348a4bcaade7a3d7aa3c633eb58b6e953f15..18a22ae009a78bdee7d9dab67c5adb8591b0f36d 100644
--- a/db/migrations/1.231_add_files_search_index.php
+++ b/db/migrations/1.231_add_files_search_index.php
@@ -181,10 +181,12 @@ class AddFilesSearchIndex extends Migration
 
     private function installCronjob()
     {
+        $scheduler = CronjobScheduler::getInstance();
+
         require_once 'lib/classes/FilesSearch/Cronjob.php';
         $task = new  \FilesSearch\Cronjob();
-        $taskId = CronjobScheduler::getInstance()->registerTask($task);
-        CronjobScheduler::scheduleOnce($taskId, strtotime('+1 minute'))->activate();
-        CronjobScheduler::schedulePeriodic($taskId, 55, 0)->activate();
+        $taskId = $scheduler->registerTask($task);
+        $scheduler->scheduleOnce($taskId, strtotime('+1 minute'))->activate();
+        $scheduler->schedulePeriodic($taskId, 55, 0)->activate();
     }
 }
diff --git a/lib/classes/StudipObject.class.php b/lib/classes/StudipObject.class.php
index 840e91baa8a074c748713d6add0271a2bc315c6e..38ce187e5b038a9ada7ed82c6bbc4ceba9ffca79 100644
--- a/lib/classes/StudipObject.class.php
+++ b/lib/classes/StudipObject.class.php
@@ -101,7 +101,7 @@ class StudipObject extends AuthorObject {
     * @access  public
     * @return  string  The new ID
     */
-   function createNewID () {
+   public static function createNewID () {
      srand ((double) microtime () * 1000000);
      return md5 (uniqid (rand ()));
    }
diff --git a/lib/evaluation/classes/EvaluationExportManagerCSV.class.php b/lib/evaluation/classes/EvaluationExportManagerCSV.class.php
index 7d8a47c69838015324492236ba447c028f56cd18..8e70a1b0c12abaca9d663a7bbdb2d699db8e1028 100644
--- a/lib/evaluation/classes/EvaluationExportManagerCSV.class.php
+++ b/lib/evaluation/classes/EvaluationExportManagerCSV.class.php
@@ -138,8 +138,6 @@ class EvaluationExportManagerCSV extends EvaluationExportManager {
       fputs ($this->filehandle, EVALEXPORT_DELIMITER . _("Vorname") . EVALEXPORT_DELIMITER.EVALEXPORT_SEPERATOR);
       fputs ($this->filehandle, EVALEXPORT_DELIMITER . _("E-Mail") . EVALEXPORT_DELIMITER.EVALEXPORT_SEPERATOR);
 
-      $db      = new EvaluationAnswerDB ();
-
       /* for each question -------------------------------------------------- */
       foreach ($this->evalquestions as $evalquestion) {
          $type     = $evalquestion->getType ();
@@ -147,7 +145,7 @@ class EvaluationExportManagerCSV extends EvaluationExportManager {
 
          /* Questiontype: likert scale -------------------------------------- */
          if ($type == EVALQUESTION_TYPE_LIKERT) {
-             $db->addChildren($evalquestion);
+            EvaluationAnswerDB::addChildren($evalquestion);
             $header = $evalquestion->getText ().":";
             while ($answer = &$evalquestion->getNextChild ()) {
                if ($answer->isResidual ()) {
@@ -171,7 +169,7 @@ class EvaluationExportManagerCSV extends EvaluationExportManager {
 
          /* Questiontype: pol scale ----------------------------------------- */
          } elseif ($type == EVALQUESTION_TYPE_POL) {
-            $db->addChildren($evalquestion);
+            EvaluationAnswerDB::addChildren($evalquestion);
             $header = $evalquestion->getText ().":";
             $answer = $evalquestion->getNextChild ();
             $header .= $answer->getText ();
@@ -195,7 +193,7 @@ class EvaluationExportManagerCSV extends EvaluationExportManager {
          /* Questiontype: multiple chioice ---------------------------------- */
          } elseif ($type == EVALQUESTION_TYPE_MC) {
             if ($evalquestion->isMultiplechoice ()) {
-                $db->addChildren($evalquestion);
+               EvaluationAnswerDB::addChildren($evalquestion);
                while ($answer = &$evalquestion->getNextChild ()) {
                   $header = $evalquestion->getText ();
                   $header .= ":".$answer->getText ();
diff --git a/lib/evaluation/classes/EvaluationObject.class.php b/lib/evaluation/classes/EvaluationObject.class.php
index 4bb9423b5a09d30a085843aba312a01ea2c361ed..fc91102997d432b471fb7c1379d2d9c6f957b116 100644
--- a/lib/evaluation/classes/EvaluationObject.class.php
+++ b/lib/evaluation/classes/EvaluationObject.class.php
@@ -441,7 +441,7 @@ class EvaluationObject extends StudipObject {
    function init ($objectID = "") {
      /* Load an evaluationobject or create a new one ----------------------- */
      if (empty ($objectID)) {
-       $this->setObjectID ($this->createNewID ());
+       $this->setObjectID(self::createNewID());
      } else {
        $this->setObjectID ($objectID);
        $this->load ();
diff --git a/lib/evaluation/classes/db/EvaluationAnswerDB.class.php b/lib/evaluation/classes/db/EvaluationAnswerDB.class.php
index d69ac771a1891bdf93c6ce3c8f34c2039b96e3aa..54bdb7dda72b465f474de6b0753a42fffb16e021 100644
--- a/lib/evaluation/classes/db/EvaluationAnswerDB.class.php
+++ b/lib/evaluation/classes/db/EvaluationAnswerDB.class.php
@@ -184,7 +184,7 @@ class EvaluationAnswerDB extends EvaluationObjectDB
      * @access  public
      * @param EvaluationObject  &$parentObject The parent object
      */
-    function addChildren(&$parentObject)
+    public static function addChildren(&$parentObject)
     {
         $result = DBManager::get()->fetchFirst("SELECT evalanswer_id FROM evalanswer
                                             WHERE parent_id= ? ORDER by position",
@@ -194,8 +194,8 @@ class EvaluationAnswerDB extends EvaluationObjectDB
             $parentObject->loadChildren == EVAL_LOAD_ALL_CHILDREN ? EVAL_LOAD_ALL_CHILDREN : EVAL_LOAD_NO_CHILDREN;
 
         foreach ($result as $row) {
-            $parentObject->addChild(new EvaluationAnswer
-            ($row, $parentObject, $loadChildren));
+            $child = new EvaluationAnswer($row, $parentObject, $loadChildren);
+            $parentObject->addChild($child);
         }
     }
 
@@ -220,11 +220,11 @@ class EvaluationAnswerDB extends EvaluationObjectDB
      * @param string $objectID The object id
      * @return string  The id from the parent object
      */
-    function getParentID($objectID)
+    public static function getParentID($objectID)
     {
         return DBManager::get()->fetchColumn("SELECT parent_id FROM evalanswer
                                             WHERE evalanswer_id = ?",
-            [$objectID()]);
+            [$objectID]);
     }
 
     /**
diff --git a/lib/evaluation/classes/db/EvaluationDB.class.php b/lib/evaluation/classes/db/EvaluationDB.class.php
index 991e26c4b77b04e5192c79d163e233d4e675e68b..fd1c2b6a84f70e83940b3335a326531513efc0b2 100644
--- a/lib/evaluation/classes/db/EvaluationDB.class.php
+++ b/lib/evaluation/classes/db/EvaluationDB.class.php
@@ -258,9 +258,9 @@ class EvaluationDB extends EvaluationObjectDB
      * @access public
      * @param string $evalID The eval id
      * @param array $answerIDs The answerIDs to get the pseudonym users
-     * @return integer  The number of users
+     * @return string[] Ids of the users who voted
      */
-    public function getUserVoted($evalID, $answerIDs = [], $questionIDs = [])
+    public static function getUserVoted($evalID, $answerIDs = [], $questionIDs = [])
     {
         $sql = "SELECT DISTINCT user_id FROM ";
 
diff --git a/lib/evaluation/classes/db/EvaluationGroupDB.class.php b/lib/evaluation/classes/db/EvaluationGroupDB.class.php
index 557a52d80014ca2eaa6744e31dd7eb2b2b19ef24..60842ada7389e5d52e52d5ebcefca2dcf5629c03 100644
--- a/lib/evaluation/classes/db/EvaluationGroupDB.class.php
+++ b/lib/evaluation/classes/db/EvaluationGroupDB.class.php
@@ -165,7 +165,7 @@ class EvaluationGroupDB extends EvaluationObjectDB
      * @access  public
      * @param EvaluationObject  &$parentObject The parent object
      */
-    public function addChildren(&$parentObject)
+    public static function addChildren(&$parentObject)
     {
         $result = DBManager::get()->fetchFirst("
         SELECT evalgroup_id FROM evalgroup
@@ -176,9 +176,8 @@ class EvaluationGroupDB extends EvaluationObjectDB
             $loadChildren = EVAL_LOAD_NO_CHILDREN;
 
         foreach ($result as $groupID) {
-            $parentObject->addChild(
-                new EvaluationGroup ($groupID, $parentObject, $loadChildren)
-            );
+            $child = new EvaluationGroup ($groupID, $parentObject, $loadChildren);
+            $parentObject->addChild($child);
         }
     }
 
@@ -218,7 +217,7 @@ class EvaluationGroupDB extends EvaluationObjectDB
      * @param string $objectID The object id
      * @return string  The id from the parent object
      */
-    public function getParentID($objectID)
+    public static function getParentID($objectID)
     {
         return DBManager::get()->fetchColumn("
             SELECT parent_id FROM evalgroup WHERE evalgroup_id = ?", [$objectID]);
diff --git a/lib/evaluation/classes/db/EvaluationObjectDB.class.php b/lib/evaluation/classes/db/EvaluationObjectDB.class.php
index d9e476c649aecfbe2aee83d484b1e0c2d19647db..2af32a482e9095fa733160752b7922f3e0d5b447 100644
--- a/lib/evaluation/classes/db/EvaluationObjectDB.class.php
+++ b/lib/evaluation/classes/db/EvaluationObjectDB.class.php
@@ -91,22 +91,22 @@ class EvaluationObjectDB extends DatabaseObject
      * @param boolean $as_value If YES return as value
      * @return  string   the perm or NULL
      */
-    public function getGlobalPerm($as_value = false)
+    public static function getGlobalPerm($as_value = false)
     {
         if ($GLOBALS['perm']->have_perm("root")) {
-            return ($as_value) ? 63 : "root";
+            return $as_value ? 63 : "root";
         } elseif ($GLOBALS['perm']->have_perm("admin")) {
-            return ($as_value) ? 31 : "admin";
+            return $as_value ? 31 : "admin";
         } elseif ($GLOBALS['perm']->have_perm("dozent")) {
-            return ($as_value) ? 15 : "dozent";
+            return $as_value ? 15 : "dozent";
         } elseif ($GLOBALS['perm']->have_perm("tutor")) {
-            return ($as_value) ? 7 : "dozent";
+            return $as_value ? 7 : "dozent";
         } elseif ($GLOBALS['perm']->have_perm("autor")) {
-            return ($as_value) ? 3 : "autor";
+            return $as_value ? 3 : "autor";
         } elseif ($GLOBALS['perm']->have_perm("user")) {
-            return ($as_value) ? 1 : "user";
+            return $as_value ? 1 : "user";
         } else {
-            return ($as_value) ? 0 : NULL;
+            return $as_value ? 0 : NULL;
         }
     }
 
@@ -118,7 +118,7 @@ class EvaluationObjectDB extends DatabaseObject
      * @access   public
      * @return   string
      */
-    public function getRangePerm($rangeID, $userID = NULL, $as_value = false)
+    public static function getRangePerm($rangeID, $userID = NULL, $as_value = false)
     {
         if (!$rangeID) {
             print "no rangeID!<br>";
@@ -194,9 +194,9 @@ class EvaluationObjectDB extends DatabaseObject
      * @access   public
      * @param EvaluationObject   &$eval The evaluation
      * @param boolean $return_ids If YES return the ids
-     * @return   integer            Number of ranges with no permission
+     * @return array|integer Number of ranges with no permission or array of ids
      */
-    public function getEvalUserRangesWithNoPermission(&$eval, $return_ids = false)
+    public static function getEvalUserRangesWithNoPermission(&$eval, $return_ids = false)
     {
         $no_permisson = 0;
         $rangeIDs = $eval->getRangeIDs();
diff --git a/lib/evaluation/classes/db/EvaluationQuestionDB.class.php b/lib/evaluation/classes/db/EvaluationQuestionDB.class.php
index fb3b42f5fde86ca3bcdc37a712d2155a08622f1e..9c7ce4667d2e21039d307ed5a337a4cc243400e5 100644
--- a/lib/evaluation/classes/db/EvaluationQuestionDB.class.php
+++ b/lib/evaluation/classes/db/EvaluationQuestionDB.class.php
@@ -208,7 +208,7 @@ class EvaluationQuestionDB extends EvaluationObjectDB
      * @access  public
      * @param EvaluationObject  &$parentObject The parent object
      */
-    public function addChildren(&$parentObject)
+    public static function addChildren(&$parentObject)
     {
         $db = DBManager::get();
 
@@ -228,9 +228,8 @@ class EvaluationQuestionDB extends EvaluationObjectDB
             : EVAL_LOAD_NO_CHILDREN;
 
         foreach ($result as $evalquestion_id) {
-            $parentObject->addChild(new EvaluationQuestion
-            ($evalquestion_id,
-                $parentObject, $loadChildren));
+            $child = new EvaluationQuestion($evalquestion_id, $parentObject, $loadChildren);
+            $parentObject->addChild($child);
         }
     }
 
@@ -256,7 +255,7 @@ class EvaluationQuestionDB extends EvaluationObjectDB
      * @param string $objectID The object id
      * @return string  The id from the parent object
      */
-    public function getParentID($objectID)
+    public static function getParentID($objectID)
     {
         $db = DBManager::get();
 
diff --git a/lib/evaluation/evaluation_admin_edit.inc.php b/lib/evaluation/evaluation_admin_edit.inc.php
index 5785368449e2a1dbbd59a5610f74640f6484101d..4d9764bf04e012295d5408a5446bd5aaf72a219e 100644
--- a/lib/evaluation/evaluation_admin_edit.inc.php
+++ b/lib/evaluation/evaluation_admin_edit.inc.php
@@ -153,7 +153,6 @@ if ($eval->hasVoted()) {
 
 // only the author or user with tutor perm in all evalRangeIDs should edit an eval
 $authorID = $eval->getAuthorID();
-$db = new EvaluationObjectDB();
 
 if ($authorID != $user->id) {
 
@@ -163,7 +162,7 @@ if ($authorID != $user->id) {
 
         foreach ($eval->getRangeIDs() as $rangeID) {
 
-            $user_perm = $db->getRangePerm($rangeID, $user->id, YES);
+            $user_perm = EvaluationObjectDB::getRangePerm($rangeID, $user->id, YES);
 
             // every range with a lower perm than Tutor
             if ($user_perm < 7)
@@ -225,5 +224,3 @@ if (Request::submitted('newButton')) {
 }
 $editSite = $EditTree->showEvalTree($itemID, 1);
 echo EvalEdit::createSite($editSite, $templateSite);
-
-?>
diff --git a/lib/evaluation/evaluation_admin_edit.lib.php b/lib/evaluation/evaluation_admin_edit.lib.php
index a79bb78da9cd1eb8806397868146f14e53da7a63..45ce428fa206d04e2291a524ad42b4f3260eadcd 100644
--- a/lib/evaluation/evaluation_admin_edit.lib.php
+++ b/lib/evaluation/evaluation_admin_edit.lib.php
@@ -44,7 +44,7 @@ class EvalEdit
      * @param string $rigt the right site of the table
      * @return  string  the html-table
      */
-    public function createSite($left = "", $right = "")
+    public static function createSite($left = "", $right = "")
     {
         $table = new HTML("table");
         $table->addAttr("border", "0");
@@ -78,7 +78,7 @@ class EvalEdit
         return $table->createContent();
     }
 
-    public function createHiddenIDs()
+    public static function createHiddenIDs()
     {
         $input = new HTML ("input");
         $input->addAttr("type", "hidden");
@@ -95,5 +95,3 @@ class EvalEdit
         return;
     }
 }
-
-?>
diff --git a/lib/evaluation/evaluation_admin_overview.inc.php b/lib/evaluation/evaluation_admin_overview.inc.php
index a670e2f5c18c0f51f25e3d137616e09786f31153..d02f77b25042988f522477d09aff6587c0695cdf 100644
--- a/lib/evaluation/evaluation_admin_overview.inc.php
+++ b/lib/evaluation/evaluation_admin_overview.inc.php
@@ -225,7 +225,7 @@ $td = new HTML ("td");
 $td->addAttr("class", "blank");
 
 
-if ($lib->db->getGlobalPerm() != "autor") {
+if (EvaluationObjectDB::getGlobalPerm() !== 'autor') {
     $td->addContent($lib->createShowRangeForm());
 } else {
     $td->addHTMLContent("Evaluationen aus dem Bereich \"" .
diff --git a/lib/evaluation/evaluation_admin_overview.lib.php b/lib/evaluation/evaluation_admin_overview.lib.php
index 9ad6f562c79b53566d37f3bd4b8be19d8c9e5967..6e70ac74d1aeeab1a5e7ebda440acaee384a044f 100644
--- a/lib/evaluation/evaluation_admin_overview.lib.php
+++ b/lib/evaluation/evaluation_admin_overview.lib.php
@@ -1716,7 +1716,7 @@ class EvalOverview
         $db = new EvaluationObjectDB ();
         $evalDB = new EvaluationDB ();
         $evalID = $eval->getObjectID();
-        $globalperm = $db->getGlobalPerm();
+        $globalperm = EvaluationObjectDB::getGlobalPerm();
 
         // linked ranges
         $rangeIDs = $eval->getRangeIDs();
@@ -2049,9 +2049,8 @@ class EvalOverview
 
     function createDomainLinks($search)
     {
-        $db = new EvaluationObjectDB ();
         $evalDB = new EvaluationDB ();
-        $globalperm = $db->getGlobalPerm();
+        $globalperm = EvaluationObjectDB::getGlobalPerm();
 
         // search results
         $results = $evalDB->search_range($search);
diff --git a/lib/evaluation/evaluation_admin_template.inc.php b/lib/evaluation/evaluation_admin_template.inc.php
index f7a96c61c88ce243ae09a7e9ec5a843bbb74fbe7..57fdee0f85e2abf0afe96b6eb0c69e332ca1064f 100644
--- a/lib/evaluation/evaluation_admin_template.inc.php
+++ b/lib/evaluation/evaluation_admin_template.inc.php
@@ -65,8 +65,7 @@ if (empty ($rangeID)) {
 }
 
 $command = $lib->getPageCommand();
-$odb = new EvaluationObjectDB();
-if ($odb->getGlobalPerm() == "root") {
+if (EvaluationObjectDB::getGlobalPerm() === 'root') {
     $myuserid = 0;
 } else {
     $myuserid = $user->id;
diff --git a/lib/evaluation/evaluation_admin_template.lib.php b/lib/evaluation/evaluation_admin_template.lib.php
index e5e5f9f87e245947eb0af36c821ed67cfcc8c3a0..504a828b174ee9f6345a6fdd0d62fb925cd24c54 100644
--- a/lib/evaluation/evaluation_admin_template.lib.php
+++ b/lib/evaluation/evaluation_admin_template.lib.php
@@ -886,15 +886,6 @@ class EvalTemplateGUI
         /* uebernehmen / loeschen Button ---------------------------- */
         $input = Button::create(_('Ãœbernehmen'),
             'template_savefree_button');
-        $odb = new EvaluationObjectDB();
-        //if($odb->getGlobalPerm()=="root"){
-        //  $myuserid = 0;
-        //}
-        //else{
-        //   $myuserid = $user->id;
-        //}
-        //if($question->getParentID()==$myuserid){
-        //   $loesch=1;
         if (!mb_strstr($this->command, "create")) {
             $showDelete = YES;
             $input2 = Button::createAccept(_('Löschen'),
diff --git a/lib/extern/lib/ExternError.class.php b/lib/extern/lib/ExternError.class.php
deleted file mode 100644
index 8c46f713eef15b955b7a9c1346422e5546992956..0000000000000000000000000000000000000000
--- a/lib/extern/lib/ExternError.class.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?
-# Lifter002: TODO
-# Lifter007: TODO
-# Lifter003: TODO
-# Lifter010: TODO
-/**
-* ExternError.class.php
-* 
-* 
-* 
-*
-* @author       Peter Thienel <pthienel@web.de>, Suchi & Berg GmbH <info@data-quest.de>
-* @access       public
-* @modulegroup  extern
-* @module       ExternError
-* @package  studip_extern
-*/
-
-// +---------------------------------------------------------------------------+
-// This file is part of Stud.IP
-// ExternError.class.php
-// 
-// Copyright (C) 2003 Peter Thienel <pthienel@web.de>,
-// Suchi & Berg GmbH <info@data-quest.de>
-// +---------------------------------------------------------------------------+
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or any later version.
-// +---------------------------------------------------------------------------+
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-// +---------------------------------------------------------------------------+
-
-
-class ExternError {
-
-    /**
-    *
-    */
-    function __construct($error_location) {
-    }
-
-    /**
-    *
-    */
-    function printMessage ($message) {
-    }
-
-    /**
-    *
-    */
-    function printStudipMessage ($message) {
-    }
-
-    /**
-    *
-    */
-    function printError ($description = "") {
-    }
-
-    /**
-    *
-    */
-    function logError ($description = "") {
-    }
-    
-}
\ No newline at end of file
diff --git a/lib/extern/lib/ExternModule.class.php b/lib/extern/lib/ExternModule.class.php
index 0a7ddd5e2d9f30ee188235d7eee786ecf1762eb0..04871a50573eb122dbec989232eddf859a49fde6 100644
--- a/lib/extern/lib/ExternModule.class.php
+++ b/lib/extern/lib/ExternModule.class.php
@@ -84,10 +84,10 @@ class ExternModule {
         // the module is called via extern.php (not via the admin area) and there is
         // no config_id so it's necessary to check the range_id
         if (!$config_id && !$this->checkRangeId($range_id)) {
-            $this->printError();
+            self::printError();
         }
         if (is_null($this->type)) {
-            $this->printError();
+            self::printError();
         }
 
         $this->name = $module_name;
@@ -325,10 +325,8 @@ class ExternModule {
         return in_array(get_object_type($range_id), $GLOBALS['EXTERN_MODULE_TYPES'][$this->type]['view']);
     }
 
-    /**
-    *
-    */
-    function printError () {
+    public static function printError ()
+    {
         page_close();
         exit;
     }
diff --git a/lib/models/Courseware/Bookmark.php b/lib/models/Courseware/Bookmark.php
index 96f919dab1bd0e7ac1b8e793c57313778c42c3d7..e11954825cc6d656d78ad9de00cf987b7acd9ca4 100755
--- a/lib/models/Courseware/Bookmark.php
+++ b/lib/models/Courseware/Bookmark.php
@@ -58,7 +58,7 @@ class Bookmark extends \SimpleORMap
      *
      * @return Bookmark[] the list of bookmarks
      */
-    public function findUsersBookmarks($user): array
+    public static function findUsersBookmarks($user): array
     {
         return self::findBySQL('user_id = ? ORDER BY chdate', [$user->id]);
     }
diff --git a/lib/models/CronjobTask.class.php b/lib/models/CronjobTask.class.php
index 7bb2b6bf6d7ccf94ee09bf1bccb3767d0e09f3ff..754041660b80cc02812668e6b8f53df73e35b37f 100644
--- a/lib/models/CronjobTask.class.php
+++ b/lib/models/CronjobTask.class.php
@@ -123,7 +123,7 @@ class CronjobTask extends SimpleORMap
      * "getParameters" from the task class.
      *
      * @param  String $field Field which should be accessed.
-     * @return String Value of the method call
+     * @return mixed Value of the method call
      */
     public function getValue($field)
     {
@@ -163,7 +163,12 @@ class CronjobTask extends SimpleORMap
     public function scheduleOnce($timestamp, $priority = CronjobSchedule::PRIORITY_NORMAL,
                                  $parameters = [])
     {
-        return CronjobScheduler::scheduleOnce($this->id, $timestamp, $priority, $parameters);
+        return CronjobScheduler::getInstance()->scheduleOnce(
+            $this->id,
+            $timestamp,
+            $priority,
+            $parameters
+        );
     }
 
     /**
@@ -200,8 +205,16 @@ class CronjobTask extends SimpleORMap
                                      $priority = CronjobSchedule::PRIORITY_NORMAL,
                                      $parameters = [])
     {
-        return CronjobScheduler::schedulePeriodic($this->id, $minute, $hour, $day, $month,
-                                                  $day_of_week, $priority, $parameters);
+        return CronjobScheduler::getInstance()->schedulePeriodic(
+            $this->id,
+            $minute,
+            $hour,
+            $day,
+            $month,
+            $day_of_week,
+            $priority,
+            $parameters
+        );
     }
 
     /**
diff --git a/lib/raumzeit/IssueDB.class.php b/lib/raumzeit/IssueDB.class.php
index 7910b4bcf7b8963c5541ef0cf980883e66877671..d6c0ba344504fc2c7fd4bf94280252d60f69fbf1 100644
--- a/lib/raumzeit/IssueDB.class.php
+++ b/lib/raumzeit/IssueDB.class.php
@@ -36,9 +36,9 @@
  * @deprecated
  */
 
-class IssueDB {
-
-    function restoreIssue($issue_id)
+class IssueDB
+{
+    public static function restoreIssue($issue_id)
     {
         $query = "SELECT *
                   FROM themen
@@ -48,11 +48,8 @@ class IssueDB {
         return $statement->fetch(PDO::FETCH_ASSOC);
     }
 
-    function storeIssue(&$issue)
+    public static function storeIssue(&$issue)
     {
-        global $user;
-
-
         if ($issue->new) {
             $query = "INSERT INTO themen
                         (issue_id, seminar_id, author_id, title, description, mkdate, chdate, priority)
@@ -104,7 +101,7 @@ class IssueDB {
         return TRUE;
     }
 
-    function deleteIssue($issue_id, $seminar_id, $title = '', $description = '')
+    public static function deleteIssue($issue_id)
     {
         $query = "DELETE FROM themen WHERE issue_id = ?";
         $statement = DBManager::get()->prepare($query);
@@ -115,7 +112,7 @@ class IssueDB {
         $statement->execute([$issue_id]);
     }
 
-    function isIssue($issue_id)
+    public static function isIssue($issue_id)
     {
         $query = "SELECT 1 FROM themen WHERE issue_id = ?";
         $statement = DBManager::get()->prepare($query);
@@ -123,7 +120,7 @@ class IssueDB {
         return (bool)$statement->fetchColumn();
     }
 
-    function getDatesforIssue($issue_id)
+    public static function getDatesforIssue($issue_id)
     {
         $query = "SELECT termine.*
                   FROM themen_termine
@@ -140,7 +137,7 @@ class IssueDB {
         return $ret;
     }
 
-    static function deleteAllIssues($course_id)
+    public static function deleteAllIssues($course_id)
     {
         $query = "SELECT issue_id FROM themen WHERE seminar_id = ?";
         $statement = DBManager::get()->prepare($query);
@@ -154,4 +151,3 @@ class IssueDB {
         return count($themen);
     }
 }
-?>
diff --git a/lib/webservices/api/studip_contentmodule.php b/lib/webservices/api/studip_contentmodule.php
index 8a22db13a0e26733d80680519ab433d95b1bd219..0f317190ca62f46095134f315f053fa9390e004b 100644
--- a/lib/webservices/api/studip_contentmodule.php
+++ b/lib/webservices/api/studip_contentmodule.php
@@ -12,7 +12,7 @@
 
 class StudipContentmoduleHelper
 {
-    function find_seminars_using_contentmodule($system_type, $module_id)
+    public static function find_seminars_using_contentmodule($system_type, $module_id)
     {
         $db = DBManager::get();
 
@@ -25,7 +25,7 @@ class StudipContentmoduleHelper
         return $stmt->fetchAll(PDO::FETCH_COLUMN);
     }
 
-    function find_institutes_using_contentmodule($system_type, $module_id)
+    public static function find_institutes_using_contentmodule($system_type, $module_id)
     {
         $db = DBManager::get();
 
diff --git a/lib/webservices/api/studip_institute.php b/lib/webservices/api/studip_institute.php
index 42c6dc82654ad29191e06147780f7aa13d9be193..a9b14039e5b9db0cb9af38feccbe4c72cb759dfe 100644
--- a/lib/webservices/api/studip_institute.php
+++ b/lib/webservices/api/studip_institute.php
@@ -14,7 +14,7 @@ require_once 'lib/webservices/api/studip_user.php';
 
 class StudipInstituteHelper
 {
-    function get_users_by_status($institute_id, $status)
+    public static function get_users_by_status($institute_id, $status)
     {
         $db = DBManager::get();
 
@@ -26,7 +26,7 @@ class StudipInstituteHelper
         return $stmt->fetchAll(PDO::FETCH_COLUMN);
     }
 
-    function get_user_status($username, $institute_id)
+    public static function get_user_status($username, $institute_id)
     {
         $db = DBManager::get();
 
@@ -38,27 +38,27 @@ class StudipInstituteHelper
         return $stmt->fetchColumn();
     }
 
-    function get_admins($institute_id)
+    public static function get_admins($institute_id)
     {
         return StudipInstituteHelper::get_users_by_status($institute_id, 'admin');
     }
 
-    function get_lecturers($institute_id)
+    public static function get_lecturers($institute_id)
     {
         return StudipInstituteHelper::get_users_by_status($institute_id, 'dozent');
     }
 
-    function get_authors($institute_id)
+    public static function get_authors($institute_id)
     {
         return StudipInstituteHelper::get_users_by_status($institute_id, 'autor');
     }
 
-    function get_users($institute_id)
+    public static function get_users($institute_id)
     {
         return StudipInstituteHelper::get_users_by_status($institute_id, 'user');
     }
 
-    function get_higher_level_institute($institute_id)
+    public static function get_higher_level_institute($institute_id)
     {
         $db = DBManager::get();
 
@@ -70,7 +70,7 @@ class StudipInstituteHelper
         return $stmt->fetchColumn();
     }
 
-    function get_admins_upward_recursive($institute_id)
+    public static function get_admins_upward_recursive($institute_id)
     {
         $institute_fak = StudipInstituteHelper::get_higher_level_institute($institute_id);
 
diff --git a/lib/webservices/api/studip_lecture_tree.php b/lib/webservices/api/studip_lecture_tree.php
index 7a0e55d398498ce5b7567a25f1edcbfd68f84a7d..fedc2c741f7c62db65bcca497cde113a1f2ef7eb 100644
--- a/lib/webservices/api/studip_lecture_tree.php
+++ b/lib/webservices/api/studip_lecture_tree.php
@@ -12,7 +12,7 @@
 
 class StudipLectureTreeHelper
 {
-    function get_seminars_by_sem_tree_id($sem_tree_id, $term_id)
+    public static function get_seminars_by_sem_tree_id($sem_tree_id, $term_id)
     {
         $db = DBManager::get();
         $semester = Semester::find($term_id);
@@ -32,7 +32,7 @@ class StudipLectureTreeHelper
         return $stmt->fetchAll();
     }
 
-    function get_sem_path($sem_tree_id)
+    public static function get_sem_path($sem_tree_id)
     {
         $stack = (array) $sem_tree_id;
         $info = StudipLectureTreeHelper::get_info_for_sem_tree_id($sem_tree_id);
@@ -49,7 +49,7 @@ class StudipLectureTreeHelper
         return implode (" > ", $name_parts);
     }
 
-    function get_info_for_sem_tree_id($sem_tree_id)
+    public static function get_info_for_sem_tree_id($sem_tree_id)
     {
         $db = DBManager::get();
 
@@ -64,7 +64,7 @@ class StudipLectureTreeHelper
         return $stmt->fetchAll();
     }
 
-    function get_subtree($sem_tree_id)
+    public static function get_subtree($sem_tree_id)
     {
         $stack = $collected = [$sem_tree_id];
 
@@ -77,7 +77,7 @@ class StudipLectureTreeHelper
         return $collected;
     }
 
-    function get_subtree_seminar_count($sem_tree_id, $only_visible = true)
+    public static function get_subtree_seminar_count($sem_tree_id, $only_visible = true)
     {
         $db = DBManager::get();
 
@@ -94,7 +94,7 @@ class StudipLectureTreeHelper
         return $stmt->fetchColumn();
     }
 
-    function get_local_tree($sem_tree_id)
+    public static function get_local_tree($sem_tree_id)
     {
         $db = DBManager::get();
 
diff --git a/lib/webservices/api/studip_seminar.php b/lib/webservices/api/studip_seminar.php
index 21312cf00f16e6995f676b517f25fc380262f0d3..92a683ba7446b8ccf2174e3727a7f0d9b12d36ac 100644
--- a/lib/webservices/api/studip_seminar.php
+++ b/lib/webservices/api/studip_seminar.php
@@ -16,14 +16,14 @@ require_once 'lib/webservices/api/studip_session.php';
 
 class StudipSeminarHelper
 {
-    function get_title($seminar_id)
+    public static function get_title($seminar_id)
     {
         $seminar_id = preg_replace('/\W/', '', $seminar_id);
 
         return Seminar::getInstance($seminar_id)->getName();
     }
 
-    function validate_seminar_permission($ticket, $seminar_id, $permission)
+    public static function validate_seminar_permission($ticket, $seminar_id, $permission)
     {
         $username = StudipSessionHelper::get_session_username($ticket);
 
@@ -35,7 +35,7 @@ class StudipSeminarHelper
         }
     }
 
-    function get_user_status($username, $seminar_id)
+    public static function get_user_status($username, $seminar_id)
     {
         $db = DBManager::get();
 
@@ -57,7 +57,7 @@ class StudipSeminarHelper
         return $status;
     }
 
-    function get_participants($seminar_id, $status = 'all')
+    public static function get_participants($seminar_id, $status = 'all')
     {
         $db = DBManager::get();
 
@@ -79,7 +79,7 @@ class StudipSeminarHelper
         return $stmt->fetchAll(PDO::FETCH_COLUMN);
     }
 
-    function get_main_institute($seminar_id)
+    public static function get_main_institute($seminar_id)
     {
         $db = DBManager::get();
 
@@ -89,7 +89,7 @@ class StudipSeminarHelper
         return $stmt->fetchColumn();
     }
 
-    function get_additional_institutes($seminar_id)
+    public static function get_additional_institutes($seminar_id)
     {
         $db = DBManager::get();
 
@@ -99,14 +99,14 @@ class StudipSeminarHelper
         return $stmt->fetchAll(PDO::FETCH_COLUMN);
     }
 
-    function get_all_institutes($seminar_id)
+    public static function get_all_institutes($seminar_id)
     {
         $institute_list = array_unique(array_merge([StudipSeminarHelper::get_main_institute($seminar_id)],
                                                    StudipSeminarHelper::get_additional_institutes($seminar_id)));
         return $institute_list;
     }
 
-    function get_admins_for_seminar($seminar_id)
+    public static function get_admins_for_seminar($seminar_id)
     {
         $all_institutes = StudipSeminarHelper::get_all_institutes($seminar_id);
         $admins = [];
@@ -120,7 +120,7 @@ class StudipSeminarHelper
         return $admins;
     }
 
-    function get_seminar_groups($seminar_id)
+    public static function get_seminar_groups($seminar_id)
     {
         $db = DBManager::get();
 
@@ -132,7 +132,7 @@ class StudipSeminarHelper
         return $stmt->fetchAll(PDO::FETCH_COLUMN);
     }
 
-    function get_seminar_group_members($seminar_id, $group_name)
+    public static function get_seminar_group_members($seminar_id, $group_name)
     {
         $db = DBManager::get();
         $result = [];
diff --git a/lib/webservices/api/studip_session.php b/lib/webservices/api/studip_session.php
index ac2cf46faaf6026f9cf14d7a207162017311aaae..50612691719bfa1c001c0371f584d507fd0ef67f 100644
--- a/lib/webservices/api/studip_session.php
+++ b/lib/webservices/api/studip_session.php
@@ -14,21 +14,21 @@ require_once 'lib/webservices/api/studip_seminar.php';
 
 class StudipSessionHelper
 {
-    function is_session_valid($session_id)
+    public static function is_session_valid($session_id)
     {
         $session_id = preg_replace('/\W/', '', $session_id);
 
         return Token::isValid($session_id);
     }
 
-    function get_session_user_id($session_id)
+    public static function get_session_user_id($session_id)
     {
         $session_id = preg_replace('/\W/', '', $session_id);
 
         return Token::isValid($session_id);
     }
 
-    function get_session_username($session_id)
+    public static function get_session_username($session_id)
     {
         $session_id = preg_replace('/\W/', '', $session_id);
         $user_id = Token::isValid($session_id);
diff --git a/lib/webservices/api/studip_user.php b/lib/webservices/api/studip_user.php
index c8b5f00f4e057f2a27b1c978e78d0f3774025393..0b19a5d2fcdfe1bd9975c15e57608b05341c558d 100644
--- a/lib/webservices/api/studip_user.php
+++ b/lib/webservices/api/studip_user.php
@@ -52,9 +52,7 @@ class Studip_User {
 
 
     /**
-     * <MethodDescription>
-     *
-     * @return type <description>
+     * @return bool
      */
     function save()
     {
@@ -88,9 +86,7 @@ class Studip_User {
 
 
     /**
-     * <MethodDescription>
-     *
-     * @return type <description>
+     * @return bool
      */
     function destroy()
     {
@@ -112,7 +108,7 @@ class Studip_User {
      *
      * @return mixed <description>
      */
-    function find_by_user_name($user_name)
+    public static function find_by_user_name($user_name)
     {
         $db = DBManager::get();
 
@@ -141,7 +137,7 @@ class Studip_User {
      *
      * @return mixed <description>
      */
-    function find_by_user_id($user_id)
+    public static function find_by_user_id($user_id)
     {
         $db = DBManager::get();
 
@@ -170,7 +166,7 @@ class Studip_User {
      *
      * @return mixed <description>
      */
-    function find_by_status($status)
+    public static function find_by_status($status)
     {
         $db = DBManager::get();
 
@@ -185,7 +181,7 @@ class Studip_User {
      *
      * @return array <description>
      */
-    function get_fields()
+    public static function get_fields()
     {
         $fields = ['auth_user_md5.user_id'  => 'id',
                         'auth_user_md5.username' => 'user_name',