diff --git a/QNSTreeController.mm b/QNSTreeController.mm
index 6c1dd9e..75533c2 100644
--- a/QNSTreeController.mm
+++ b/QNSTreeController.mm
@@ -138,21 +138,13 @@
                      &QAbstractItemModel::rowsAboutToBeRemoved,
                      [=](const QModelIndex & parent, int first, int last) {
                          NSLog(@"rows about to be removed");
-                         
-                     }
-                     );
-
-    QObject::connect(self->privateQModel,
-                     &QAbstractItemModel::rowsAboutToBeRemoved,
-                     [=](const QModelIndex & parent, int first, int last) {
-                         NSLog(@"rows about to be removed");
                      }
                      );
 
     QObject::connect(self->privateQModel,
                      &QAbstractItemModel::rowsRemoved,
                      [=](const QModelIndex & parent, int first, int last) {
-                         NSLog(@"rows removed");
+                         //NSLog(@"rows removed");
                          for( int row = first; row <= last; row++) {
                              if(parent.isValid())
                              {
@@ -170,14 +162,14 @@
     QObject::connect(self->privateQModel,
                      &QAbstractItemModel::layoutChanged,
                      [=]() {
-                         NSLog(@"layout changed");
+                         //NSLog(@"layout changed");
                      }
                      );
 
     QObject::connect(self->privateQModel,
                      &QAbstractItemModel::dataChanged,
                      [=](const QModelIndex &topLeft, const QModelIndex &bottomRight) {
-                         NSLog(@"data changed");
+                         //NSLog(@"data changed");
                          for(int row = topLeft.row() ; row <= bottomRight.row() ; ++row)
                          {
                              QModelIndex tmpIdx = self->privateQModel->index(row, 0);
