diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index 578e99beff541616fde22d6c804275be2c7307c2..b5f847545c064a71a481c008058405a5d1081906 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -83,11 +83,6 @@ MainWindow::MainWindow(QWidget *parent):
     connect(_p_tandem_run_dialog, &TandemRunDialog::accepted, this, &MainWindow::doAcceptedTandemRunDialog);
     connect(_p_load_results_dialog, &LoadResultsDialog::accepted, this,&MainWindow::doAcceptedLoadResultDialog);
     connect(_p_export_spreadsheet_dialog, &ExportSpreadsheetDialog::accepted, this,&MainWindow::doAcceptedExportSpreadsheetDialog);
-    /*
-    connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
-    connect(this, &PtSpectrumViewer::operateMsDataFile, worker, &PwizLoaderThread::doMsDataFileLoad);
-    connect(worker, &PwizLoaderThread::msDataReady, this, &PtSpectrumViewer::handleMsDataFile);
-    */
 #else
 // Qt4 code
 
diff --git a/src/gui/workerthread.cpp b/src/gui/workerthread.cpp
index 3b2b73203158f3d015305f9354c5f289c417feb0..25a6c1b229bfbce39dbc63004c593a7389b4228f 100644
--- a/src/gui/workerthread.cpp
+++ b/src/gui/workerthread.cpp
@@ -112,6 +112,28 @@ WorkerThread::WorkerThread(ProjectWindow * p_project_window)
 
 #if QT_VERSION >= 0x050000
     // Qt5 code
+    
+    //worker message
+    connect(_p_work_monitor, static_cast<void (WorkMonitor::*)(QString)>(&WorkMonitor::workerMessage), p_project_window,static_cast<void (ProjectWindow::*)(QString)>(&ProjectWindow::doDisplayLoadingMessage));    
+    //connect(_p_work_monitor, static_cast<void (WorkMonitor::*)(QString, int)>(&WorkMonitor::workerMessage), p_project_window,static_cast<void (ProjectWindow::*)(QString, int)>(&ProjectWindow::doDisplayLoadingMessage));
+
+    connect(this, static_cast<void (WorkerThread::*)(QString)>(&WorkerThread::loadingMessage), p_project_window,static_cast<void (ProjectWindow::*)(QString)>(&ProjectWindow::doDisplayLoadingMessage));
+    //grouping
+    connect(p_project_window, &ProjectWindow::operateGrouping, this,&WorkerThread::doGrouping);
+    connect(this, &WorkerThread::groupingFinished, p_project_window,&ProjectWindow::doGroupingFinished);
+
+
+    //PTM grouping on IdentificationGroup
+    connect(p_project_window, &ProjectWindow::operatePtmGroupingOnIdentification, this,&WorkerThread::doPtmGroupingOnIdentification);
+    connect(this, &WorkerThread::ptmGroupingOnIdentificationFinished, p_project_window,&ProjectWindow::refreshPtmGroup);
+
+    //grouping on IdentificationGroup
+    connect(p_project_window, &ProjectWindow::operateGroupingOnIdentification, this,&WorkerThread::doGroupingOnIdentification);
+    connect(this, &WorkerThread::groupingOnIdentificationFinished, p_project_window,&ProjectWindow::refreshGroup);
+
+    connect(this, &WorkerThread::operationFailed, p_project_window,&ProjectWindow::doOperationFailed);
+    connect(this, &WorkerThread::operationFinished, p_project_window,&ProjectWindow::doOperationFinished);
+
 #else
 // Qt4 code
     qDebug() << "WorkerThread::WorkerThread Qt4 code";