diff --git a/routes/methods.js b/routes/methods.js
index 4461dea632988108faf89444b01afaabf185a338..d3d3f69c029b562775f40c36cf4e710377e008a0 100644
--- a/routes/methods.js
+++ b/routes/methods.js
@@ -1,16 +1,17 @@
-const dbconn = require('./dbconn');
+const dbconn_OBSOLETE = require('./dbconn') // DO NOT USE THIS FOR NEW FEATURE
+const dbconn = require('./dbconn2')
 
 var methods = {
     // ===================== user db =====================
     registerNewUser: function(data, callback) {
-        dbconn.user.beginTransaction(function(err) { // START TRANSACTION
+        dbconn_OBSOLETE.user.beginTransaction(function(err) { // START TRANSACTION
             if (err) {
                 throw err
             }
             // insert profile
-            dbconn.user.query('INSERT INTO user SET ?', data.profile, function (err, results, fields) {
+            dbconn_OBSOLETE.user.query('INSERT INTO user SET ?', data.profile, function (err, results, fields) {
                 if (err) {
-                  return dbconn.user.rollback(function() {
+                  return dbconn_OBSOLETE.user.rollback(function() {
                     throw err
                   });
                 }
@@ -20,9 +21,9 @@ var methods = {
                     user_id: newUserId,
                     password: data.password
                 }
-                dbconn.user.query('INSERT INTO credential SET ?', credentialData, function (err, results, fields) {
+                dbconn_OBSOLETE.user.query('INSERT INTO credential SET ?', credentialData, function (err, results, fields) {
                     if (err) {
-                        return dbconn.user.rollback(function() {
+                        return dbconn_OBSOLETE.user.rollback(function() {
                             throw err
                         });
                     }
@@ -32,9 +33,9 @@ var methods = {
                         role_id: 2,     // USER
                         user_id: newUserId
                     }
-                    dbconn.user.query('INSERT INTO user_project_role SET ?', projectRoleData, function (err, results, fields) {
+                    dbconn_OBSOLETE.user.query('INSERT INTO user_project_role SET ?', projectRoleData, function (err, results, fields) {
                         if (err) {
-                            return dbconn.user.rollback(function() {
+                            return dbconn_OBSOLETE.user.rollback(function() {
                                 throw err
                             });
                         }
@@ -43,16 +44,16 @@ var methods = {
                             user_id: newUserId,
                             token: data.verificationToken
                         }
-                        dbconn.user.query('INSERT INTO verification SET ?', verificationData, function (err, results, fields) {
+                        dbconn_OBSOLETE.user.query('INSERT INTO verification SET ?', verificationData, function (err, results, fields) {
                             if (err) {
-                                return dbconn.user.rollback(function() {
+                                return dbconn_OBSOLETE.user.rollback(function() {
                                     throw err
                                 });
                             }
                             // COMMIT
-                            dbconn.user.commit(function(err) {
+                            dbconn_OBSOLETE.user.commit(function(err) {
                                 if (err) {
-                                    return dbconn.user.rollback(function() {
+                                    return dbconn_OBSOLETE.user.rollback(function() {
                                         throw err
                                     })
                                 }
@@ -64,8 +65,8 @@ var methods = {
             callback(err)
         })
     },
-    getUserByEmail: function(email, callback) {
-        dbconn.user.query('SELECT id, verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality, m4lab_idp FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
+    getUserByEmail_OBSOLETE: function(email, callback) {
+        dbconn_OBSOLETE.user.query('SELECT id, verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality, m4lab_idp FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
             let user
             if (err) { throw err }
             else {
@@ -76,8 +77,17 @@ var methods = {
             callback(user, err)
         });
     },
+    getUserByEmail: async function(email) {
+        try {
+            let rows = await dbconn.user.promise().query('SELECT id, verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality, m4lab_idp FROM user WHERE email = "' +email+'"')
+            return rows[0][0]
+        } catch (err) {
+            console.error(err)
+            return err
+        }
+    },
     getUserById: function(userId, callback) {
-        dbconn.user.query('SELECT verificationStatus, email, salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE id = ' +userId, function (err, rows, fields) {
+        dbconn_OBSOLETE.user.query('SELECT verificationStatus, email, salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE id = ' +userId, function (err, rows, fields) {
             let user
             if (err) { throw err }
             else {
@@ -90,7 +100,7 @@ var methods = {
     },
 	checkUserEmail: function(email, callback) {
         let user
-        dbconn.user.query('SELECT id, email FROM user WHERE email = "' +email+'"', function (err, rows) {
+        dbconn_OBSOLETE.user.query('SELECT id, email FROM user WHERE email = "' +email+'"', function (err, rows) {
             if (err) { throw err }
             else {
                 if ( rows.length > 0) {
@@ -102,7 +112,7 @@ var methods = {
     },
     getUserByToken: function(token, callback) {
         let user
-        dbconn.user.query('SELECT t1.user_id, t2.email FROM userdb.credential AS t1 INNER JOIN userdb.user AS t2 ON t1.user_id = t2.id AND t1.resetPasswordToken = "'
+        dbconn_OBSOLETE.user.query('SELECT t1.user_id, t2.email FROM userdb.credential AS t1 INNER JOIN userdb.user AS t2 ON t1.user_id = t2.id AND t1.resetPasswordToken = "'
             +token+'" and resetPasswordExpires > '+Date.now(), function (err, rows, fields) {
                 if (err) { throw err }
                 else {
@@ -115,20 +125,20 @@ var methods = {
         )
     },
 	updateUserById: function(userData, callback) {
-		dbconn.user.query('UPDATE user SET ? WHERE id = ' +userData.id, userData, function (err, rows, fields) {
+		dbconn_OBSOLETE.user.query('UPDATE user SET ? WHERE id = ' +userData.id, userData, function (err, rows, fields) {
             if (err) throw err
             callback(err)
         })
     },
     updateCredential: function(data, callback) {
-        dbconn.user.query('UPDATE credential SET ? WHERE user_id = ' +data.user_id, data, function (err, rows, fields) {
+        dbconn_OBSOLETE.user.query('UPDATE credential SET ? WHERE user_id = ' +data.user_id, data, function (err, rows, fields) {
             if (err) throw err
             callback(err)
         })
     },
     getUserIdByEmail: function(email, callback) {
         let userId
-        dbconn.user.query('SELECT id FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
+        dbconn_OBSOLETE.user.query('SELECT id FROM user WHERE email = "' +email+'"', function (err, rows, fields) {
             if (err) {
                 throw err
             }
@@ -141,20 +151,20 @@ var methods = {
         });
     },
     getUserProjectRole: function(userId, callback) {
-        dbconn.user.query('SELECT project_id, role_id FROM user_project_role WHERE user_id = "' +userId+'"', function (err, rows, fields) {
+        dbconn_OBSOLETE.user.query('SELECT project_id, role_id FROM user_project_role WHERE user_id = "' +userId+'"', function (err, rows, fields) {
             if (err) throw err
             callback(rows, err)
         });
     },
     addUserProjectRole: function(data, callback) {
-        dbconn.user.query('INSERT INTO user_project_role SET ?', data, function (err, results, fields){
+        dbconn_OBSOLETE.user.query('INSERT INTO user_project_role SET ?', data, function (err, results, fields){
             if (err) throw err
             callback(err)
         })
     },
     getVerificationTokenByUserId: function(userId, callback) {
         let token
-        dbconn.user.query('SELECT token FROM verification WHERE user_id = "' +userId+'"', function (err, rows, fields) {
+        dbconn_OBSOLETE.user.query('SELECT token FROM verification WHERE user_id = "' +userId+'"', function (err, rows, fields) {
             if (err) {
                 throw err
             }
@@ -168,7 +178,7 @@ var methods = {
     },
     getUserIdByVerificationToken: function(token, callback) {
         let userId
-        dbconn.user.query('SELECT user_id FROM verification WHERE token = "' +token+'"', function (err, rows, fields) {
+        dbconn_OBSOLETE.user.query('SELECT user_id FROM verification WHERE token = "' +token+'"', function (err, rows, fields) {
             if (err) {
                 throw err
             }
@@ -179,22 +189,22 @@ var methods = {
         })
     },
     verifyUserAccount: function(userData, callback) {
-        dbconn.user.beginTransaction(function(err) { // START TRANSACTION
+        dbconn_OBSOLETE.user.beginTransaction(function(err) { // START TRANSACTION
             if (err) { throw err }
             // update user status
-            dbconn.user.query('UPDATE user SET ? WHERE id =' +userData.id, userData, function (err, rows, fields) {
+            dbconn_OBSOLETE.user.query('UPDATE user SET ? WHERE id =' +userData.id, userData, function (err, rows, fields) {
                 if (err) {
-                    return dbconn.user.rollback(function() { throw err })
+                    return dbconn_OBSOLETE.user.rollback(function() { throw err })
                 }
                 // delete verification token
-                dbconn.user.query('DELETE FROM verification WHERE user_id = '+userData.id, function (err, rows, fields) {
+                dbconn_OBSOLETE.user.query('DELETE FROM verification WHERE user_id = '+userData.id, function (err, rows, fields) {
                     if (err) {
-                        return dbconn.user.rollback(function() { throw err })
+                        return dbconn_OBSOLETE.user.rollback(function() { throw err })
                     }
                     // COMMIT
-                    dbconn.user.commit(function(err) {
+                    dbconn_OBSOLETE.user.commit(function(err) {
                         if (err) {
-                            return dbconn.user.rollback(function() { throw err })
+                            return dbconn_OBSOLETE.user.rollback(function() { throw err })
                         }
                     })
                 })
@@ -203,9 +213,9 @@ var methods = {
         })
     },
     /* ===== GitLab ===== */
-    getGitlabId: function(userId, callback){
+    getGitlabId_OBSOLETE: function(userId, callback){
         let gitlabUserId
-        dbconn.user.query('SELECT gu.gitlab_userId FROM user_gitlab gu, user u WHERE u.id = "' +userId+'" and gu.user_id = u.id', function (err, rows) {
+        dbconn_OBSOLETE.user.query('SELECT gu.gitlab_userId FROM user_gitlab gu, user u WHERE u.id = "' +userId+'" and gu.user_id = u.id', function (err, rows) {
             if (err) {
                 throw err
             }
@@ -215,8 +225,18 @@ var methods = {
             callback(gitlabUserId, err)
         })
     },
+    getGitlabId: async function(userId) {
+        try {
+            let rows = await dbconn.user.promise().query('SELECT gu.gitlab_userId FROM user_gitlab gu, user u WHERE u.id = "' +userId+'" and gu.user_id = u.id')
+            return rows[0][0].gitlab_userId
+        }
+        catch(err) {
+            console.error(err)
+            return err
+        }
+    },
     addGitlabUser: function(data, callback){
-        dbconn.user.query('INSERT INTO user_gitlab SET ?', data, function (err) {
+        dbconn_OBSOLETE.user.query('INSERT INTO user_gitlab SET ?', data, function (err) {
             if (err) throw err
             callback(err)
         })