diff --git a/Headers/setup.h b/Headers/setup.h
index 4063ea97f535ca2667ef1644d38f06c33ddf973e..9af31582cb49005fe86b9ccf67fe55e86a207bbe 100644
--- a/Headers/setup.h
+++ b/Headers/setup.h
@@ -111,7 +111,7 @@ public:
     // queue capacity
     ulong capacity=1024;
     // max number of cones to process
-    ulong maxN=1000;
+    ulong maxN=10000;
 };
 
 class Cone
diff --git a/Sources/MainWindow.cpp b/Sources/MainWindow.cpp
index e99f5027161977f862356ccaf0a1ff83b1dfe1ba..64a15850aec36d51e8c204246fd36683c7920e2f 100644
--- a/Sources/MainWindow.cpp
+++ b/Sources/MainWindow.cpp
@@ -50,7 +50,7 @@ MainWindow::MainWindow(QWidget *parent) :
     // update every 0.1 second
     QTimer *timer = new QTimer(this);
     connect(timer, &QTimer::timeout, this, QOverload<>::of(&MainWindow::redraw));
-    timer->start(100);
+    timer->start(1000);
 
     setWindowTitle(tr("Back projection"));
     ui->canvas->Canvas()->Modified();
@@ -99,6 +99,8 @@ MainWindow::~MainWindow()
     delete ui;
     if (image)
         delete image;
+    if (countsText)
+        delete countsText;
     if (config)
         delete config;
     for (int i = 0; i < longitudes.size(); ++i) {
@@ -226,12 +228,11 @@ bool MainWindow::handleSaveAs()
     QString fileName = QFileDialog::getSaveFileName(this,
             tr("Save Image"), "",
             tr("PNG file (*.png);;ROOT file (*.root);;C file (*.C);;text file (*.txt)"));
-    if (fileName.isEmpty())
-        return false;
-    else {
-        if (saveCanvas(fileName))
-            curFile = fileName;
+    if (!fileName.isEmpty() && saveCanvas(fileName)){
+        curFile = fileName;
+        return true;
     }
+    return false;
 }
 
 bool MainWindow::saveCanvas(const QString& fileName)
@@ -240,7 +241,7 @@ bool MainWindow::saveCanvas(const QString& fileName)
     QString ext=fileInfo.completeSuffix();
     bool saved=false;
     if (ext == "root" || ext == "png" || ext == "C") {
-//        qDebug() << "Save as " << ext << " file.";
+        qDebug() << "Save as " << ext << " file.";
         image->mMutex.lock();
         ui->canvas->Canvas()->SaveAs(fileName.toLocal8Bit().constData());
         image->mMutex.unlock();
diff --git a/Sources/reconstruction.cpp b/Sources/reconstruction.cpp
index 7426a88698e43c26bca12a848e8ddc4a2538cf6d..fc19ee5454c2af6aa70d93b6e4bf71852f8f1ac7 100644
--- a/Sources/reconstruction.cpp
+++ b/Sources/reconstruction.cpp
@@ -164,6 +164,10 @@ int RecoImage::addConesNormalized(std::vector<Cone>::const_iterator first,
         {
             for (int j = 0; j < config->phiBins; j++)
             {
+		// if (i==0&&j==0)
+		// {
+		//     std::cout << omp_get_num_threads() << '\n';
+		// }
                 ray = k->apex - config->xbs[i][j];
                 beta = getCosAngle(ray, k->axis);
                 sgmb2 = std::pow((ray/(ray*ray) + k->axis/(k->axis*k->axis)-
diff --git a/Sources/worker.cpp b/Sources/worker.cpp
index 819b09ea77d093c0d61c4f42af25d0c7f8bc0149..337b8871fe72d97ad47a2e3acc33dcb78ac2d8cf 100644
--- a/Sources/worker.cpp
+++ b/Sources/worker.cpp
@@ -31,10 +31,13 @@ void Worker::run()
                 cones[i]=Cone(line);
                 i++;
             }
+            if (exitted)
+                break;
             localCounts+=i;
             // update image
             image->updateImage(cones.cbegin(), cones.cbegin()+i, true);
-            if (exitted || line.isNull() || localCounts >= config->maxN)
+//            if (exitted || in.atEnd() || localCounts >= config->maxN)
+            if (exitted || localCounts >= config->maxN)
                 break;
         }
     }
diff --git a/imagerQt.pro b/imagerQt.pro
index 221170b588ee0c8697dd506c695feacf58943b22..1967a8ef6f91314558b39014845140b73cb6a7a0 100644
--- a/imagerQt.pro
+++ b/imagerQt.pro
@@ -47,14 +47,18 @@ FORMS += \
 
 QMAKE_LFLAGS += -fopenmp
 QMAKE_CXXFLAGS += -fopenmp
+#QMAKE_CXXFLAGS += -fsanitize=address
+#QMAKE_LFLAGS += -fsanitize=address
 LIBS += -fopenmp
 
+
+
 INCLUDEPATH += \
-    $(ROOTSYS)/include \
+    $$(ROOTSYS)/include \
     $$PWD/Headers
 
 LIBS += \
-    -L$(ROOTSYS)/lib -lCore -lImt -lRIO -lNet -lHist -lGraf \
+    -L$$(ROOTSYS)/lib -lCore -lImt -lRIO -lNet -lHist -lGraf \
     -lGraf3d -lGpad -lTree -lTreePlayer -lRint -lPostscript -lMatrix \
     -lPhysics -lMathCore -lThread -lMultiProc -pthread -lm -ldl -rdynamic