diff --git a/cern_integration.info.yml b/cern_integration.info.yml
index d1813d29839517f19ea923a1556df0d3131f9cb8..f65b30b4057b194fb14976448c294da804bc2968 100644
--- a/cern_integration.info.yml
+++ b/cern_integration.info.yml
@@ -4,5 +4,6 @@ package: CERN
 type: module
 version: '8.0.9'
 core: 8.x
+core_version_requirement: ^8 || ^9
 
 required: TRUE
diff --git a/cern_integration.install b/cern_integration.install
index 7ccb43da9e0a45473956b486229cdc9b5efc7e1a..85bd273cda2eb60bd0a766f464971e2aba5ca4a8 100644
--- a/cern_integration.install
+++ b/cern_integration.install
@@ -2,9 +2,9 @@
 
 
 function cern_integration_install() {
-  drupal_set_message(t('CERN Integration module installed successfully.'));
+  \Drupal::messenger()->addMessage(t('CERN Integration module installed successfully.'));
 }
 
 function cern_integration_uninstall() {
-  drupal_set_message(t('CERN Integration module was uninstalled successfully.'));
+  \Drupal::messenger()->addMessage(t('CERN Integration module was uninstalled successfully.'));
 }
diff --git a/cern_integration.module b/cern_integration.module
index d3906e0e57004574f511a9861779e76e95e54bcd..25dc6b2add59697858b965cfa2f3e1ffa58a5547 100644
--- a/cern_integration.module
+++ b/cern_integration.module
@@ -43,7 +43,7 @@ function cern_integration_update_projects_alter(&$projects)
     // unset($projects['drupal']);
 
     // Remove all centrally managed modules.
-    foreach (system_get_info("module") as $module_name => $module) {
+    foreach (\Drupal::service('extension.list.module')->getAllInstalledInfo() as $module_name => $module) {
         if (preg_match('#^modules/#', drupal_get_path("module", $module_name))) {
             if (isset($module["project"])){
                 unset($projects[$module["project"]]);
@@ -52,7 +52,7 @@ function cern_integration_update_projects_alter(&$projects)
     }
 
     // Remove all centrally managed themes.
-    foreach (system_get_info("theme") as $theme_name => $theme) {
+    foreach (\Drupal::service('extension.list.theme')->getAllInstalledInfo() as $theme_name => $theme) {
         if (preg_match('#^themes/#', drupal_get_path("theme", $theme_name))) {
             if (isset($theme["project"])){
                 unset($projects[$theme["project"]]);
@@ -91,7 +91,7 @@ function cern_integration_form_views_form_user_admin_people_page_1_alter(&$form,
 *  Disable fields under admin/people/create
 */
 function cern_integration_form_user_register_form_alter(&$form, &$form_state, $form_id){
-    drupal_set_message(t("Adding/Removing users is DISABLED."),"warning");
+    \Drupal::messenger()->addMessage(t("Adding/Removing users is DISABLED."),"warning");
     // Disable all elements from this form.
     foreach (\Drupal\Core\Render\Element::children($form) as $key) {
         $form[$key]['#disabled'] = TRUE;
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000000000000000000000000000000000000..5196cda7a09e0eea4b8cf33bf4a71ce04ad41b00
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,20 @@
+{
+  "name": "drupal/cern-integration",
+  "description": "Custom functionality and constraints for CERN Drupal infrastructure",
+  "version": "8.0.9",
+  "type": "drupal-custom-module",
+  "license": "GPL-2.0-or-later",
+  "authors": [
+    {
+      "name": "Konstantinos Platis",
+      "email": "konstantinos.platis@cern.ch"
+    }
+  ],
+  "repositories": [
+    {
+      "type": "composer",
+      "url": "https://packages.drupal.org/8"
+    }
+  ],
+  "require": {}
+}
diff --git a/src/Controller/BackendController.php b/src/Controller/BackendController.php
index 5493b4229747b1641d876aff3b8c4b561eeb5aba..486c86e41d7e8c64025b10468ec2c6ed8e7e1fd7 100644
--- a/src/Controller/BackendController.php
+++ b/src/Controller/BackendController.php
@@ -13,7 +13,7 @@ class BackendController extends ControllerBase {
   /**
    * Returns a render-able array for a test page.
    */
-  public function redirect() {
+  public function redirect($route_name, array $route_parameters = [], array $options = [], $status = 302) {
      return new RedirectResponse("/_site");
   }