diff --git a/.eslintrc.js b/.eslintrc.js
index 1c82364..c4b3222 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -14,7 +14,7 @@ module.exports = {
   rules: {
     'no-undef': ['error'],
     eqeqeq: ['warn', 'smart'],
-    'no-unused-vars': 'off',
+    'no-unused-vars': 'warn',
     'no-prototype-builtins': 'off',
     'id-length': ['warn', { exceptions: ['i', 'j'] }],
   },
diff --git a/src/modules/api/api.js b/src/modules/api/api.js
index 5c8e2a4..c3c16da 100644
--- a/src/modules/api/api.js
+++ b/src/modules/api/api.js
@@ -22,6 +22,7 @@
 const express = require('express')
 const bodyParser = require('body-parser')
 const busboy = require('connect-busboy')
+const { Worker } = require('worker_threads')
 const { v4: uuidv4 } = require('uuid')
 const fs = require('fs')
 const app = express()
@@ -34,6 +35,7 @@ const dbtools = require('../../utils/dbtools.js')
 const auth = require('../../middlewares/auth.middleware.js')
 
 // files
+const searchDataWorkerFile = './src/utils/searchData.js'
 const msgFile = 'stats/msgs'
 const passwordFile = 'data/dataEditorPasswords.json'
 const dataEditsLog = 'stats/dataEdits'
@@ -512,7 +514,7 @@ function GetApp() {
   })
 
   app.post('/postfeedbackfile', function(req, res) {
-    UploadFile(req, res, uloadFiles, (fn) => {
+    UploadFile(req, res, uloadFiles, () => {
       res.json({ success: true })
     })
 
@@ -590,14 +592,14 @@ function GetApp() {
     }
   }
 
-  app.route('/fosuploader').post(function(req, res, next) {
+  app.route('/fosuploader').post(function(req, res) {
     UploadFile(req, res, uloadFiles, (fn) => {
       res.redirect('/f/' + fn)
     })
   })
 
-  app.route('/badtestsender').post(function(req, res, next) {
-    UploadFile(req, res, recivedFiles, (fn) => {
+  app.route('/badtestsender').post(function(req, res) {
+    UploadFile(req, res, recivedFiles, () => {
       res.redirect('back')
     })
     logger.LogReq(req)
@@ -759,14 +761,43 @@ function GetApp() {
             logger.GetColor('redbg')
           )
         }
-        let result = data.Search(question, subj, recData)
 
-        res.json({
-          result: result,
-          success: true,
+        const worker = new Worker(searchDataWorkerFile, {
+          workerData: {
+            data,
+            question,
+            subj,
+            recData,
+          },
+        })
+
+        worker.on('error', (err) => {
+          logger.Log('Search Data Worker error!', logger.GetColor('redbg'))
+          console.error(err)
+          // TODO: handle error
+        })
+
+        worker.on('exit', (code) => {
+          logger.DebugLog('Search Data exit, code: ' + code, 'actions', 1)
+          if (code !== 0) {
+            logger.Log(
+              'Search Data Worker error! Exit code is not 0',
+              logger.GetColor('redbg')
+            )
+            // TODO: handle error
+          }
+        })
+
+        // let result = data.Search(question, subj, recData)
+        worker.on('message', (workerMsg) => {
+          const result = workerMsg
+          res.json({
+            result: result,
+            success: true,
+          })
+          logger.DebugLog(`Question result length: ${result.length}`, 'ask', 1)
+          logger.DebugLog(result, 'ask', 2)
         })
-        logger.DebugLog(`Question result length: ${result.length}`, 'ask', 1)
-        logger.DebugLog(result, 'ask', 2)
       } else {
         logger.DebugLog(`Invalid question`, 'ask', 1)
         res.json({
@@ -930,6 +961,6 @@ exports.name = 'API'
 exports.getApp = GetApp
 exports.setup = (data) => {
   userDB = data.userDB
-  url = data.url
+  url = data.url // eslint-disable-line
   publicdirs = data.publicdirs
 }
diff --git a/src/utils/actions.js b/src/utils/actions.js
index f4bd96c..c87924b 100755
--- a/src/utils/actions.js
+++ b/src/utils/actions.js
@@ -91,7 +91,7 @@ function ProcessIncomingRequest(recievedData, qdb, infos, dryRun) {
       })
 
       worker.on('exit', (code) => {
-        logger.DebugLog('ProcessData exit, code: ' + code, 'actions', 1)
+        logger.DebugLog('Process Data exit, code: ' + code, 'actions', 1)
         if (code !== 0) {
           logger.Log(
             'Process Data Worker error! Exit code is not 0',
diff --git a/src/utils/processData.js b/src/utils/processData.js
index fc8db78..6a79c3e 100644
--- a/src/utils/processData.js
+++ b/src/utils/processData.js
@@ -1,12 +1,4 @@
-const dataFile = './qminingPublic/data.json'
-const recDataFile = './stats/recdata'
-
-const {
-  Worker,
-  isMainThread,
-  parentPort,
-  workerData,
-} = require('worker_threads')
+const { isMainThread, parentPort, workerData } = require('worker_threads')
 const logger = require('../utils/logger.js')
 const actions = require('../utils/actions.js')
 const classes = require('./classes.js')
@@ -16,7 +8,7 @@ const minMatchAmmountToAdd = 90 // FIXME: test this value
 
 if (!isMainThread) {
   logger.DebugLog('Starting worker thread', 'processdata', 1)
-  console.log(workerData)
+  logger.DebugLog(workerData, 'processdata', 1)
 
   parentPort.postMessage(
     ProcessData(workerData.data, actions.LoadJSONFromObject(workerData.qdb))
diff --git a/src/utils/searchData.js b/src/utils/searchData.js
new file mode 100644
index 0000000..5377975
--- /dev/null
+++ b/src/utils/searchData.js
@@ -0,0 +1,22 @@
+const { isMainThread, parentPort, workerData } = require('worker_threads')
+const logger = require('../utils/logger.js')
+const actions = require('../utils/actions.js')
+
+if (!isMainThread) {
+  logger.DebugLog('Starting worker thread', 'searchdata', 1)
+  logger.DebugLog(workerData, 'searchdata', 1)
+  const { data, question, subj, recData } = workerData
+
+  parentPort.postMessage(
+    SearchData(actions.LoadJSONFromObject(data), question, subj, recData)
+  )
+} else {
+  logger.Log(
+    'Porcess data should not run on main thread!',
+    logger.GetColor('redbg')
+  )
+}
+
+function SearchData(data, question, subj, recData) {
+  return data.Search(question, subj, recData)
+}