diff --git a/NPLib/Core/RootInput.cxx b/NPLib/Core/RootInput.cxx
index 44bae05e4ea28226502797000ba8316068370cb3..495d552260fc1873701082e2f79299350dd1873d 100644
--- a/NPLib/Core/RootInput.cxx
+++ b/NPLib/Core/RootInput.cxx
@@ -30,6 +30,7 @@
 #include "RootInput.h"
 #include "TAsciiFile.h"
 
+#include "TEnv.h"
 RootInput* RootInput::instance = 0;
 ////////////////////////////////////////////////////////////////////////////////
 RootInput* RootInput::getInstance(string configFileName){
@@ -138,6 +139,8 @@ RootInput::RootInput(string configFileName){
   if (!CheckRootFileName || !CheckTreeName) 
     cout << "\033[1;33mWARNING: Token not found for InputTree Declaration : Input Tree may not be instantiate properly\033[0m" << endl;
 
+  pRootChain->SetCacheLearnEntries(100);
+  gEnv->SetValue("TFile.AsyncPrefetching", 1);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -282,9 +285,6 @@ RootInput::~RootInput(){
   if (res == 0) {   // if does exist, delete it
     if (system("rm -rf ./.tmp") != 0) cout << "RootInput::~RootInput() problem deleting ./.tmp directory" << endl; 
   }
-
-  //delete pRootFile;
-  //delete pRootChain;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/NPLib/Core/RootOutput.cxx b/NPLib/Core/RootOutput.cxx
index f2b7e7ed038c75a2485c47f5682d9e9489cb9e5a..f8191733f3ea05e3eacad16ec606e30da1464a60 100644
--- a/NPLib/Core/RootOutput.cxx
+++ b/NPLib/Core/RootOutput.cxx
@@ -71,12 +71,14 @@ RootOutput::RootOutput(TString fileNameBase, TString treeNameBase)
     pRootFile = 0 ;
   }
   
-  pRootTree = new TTree(treeNameBase, "Data created / analyzed with the NPTool package");
+  pRootTree = new TTree(treeNameBase, "Data created / analysed with the NPTool package");
   pRootList = new TList();
   
   // Init TAsciiFile objects
   InitAsciiFiles();
   gDirectory->cd(currentPath->GetPath()); 
+  
+  pRootTree->SetAutoSave(1000000000);
 }
 
 
@@ -167,7 +169,7 @@ RootOutput::~RootOutput()
     }
   
     else {
-      cout << "No histograms and Tree !" << endl;
+      cout << "\033[1;31mNo histograms and Tree !\033[0m" << endl;
     }
 }
 
diff --git a/NPLib/Utility/npanalysis.cxx b/NPLib/Utility/npanalysis.cxx
index eb9d0f783662344cb9fb3722edb8b6110d324bd3..328dd5cf2b42e3e85b4d65b68225901e76657dd0 100644
--- a/NPLib/Utility/npanalysis.cxx
+++ b/NPLib/Utility/npanalysis.cxx
@@ -139,8 +139,8 @@ void ProgressDisplay(clock_t& begin, clock_t& end, unsigned int& treated,unsigne
       printf("\r \033[1;32m ******* Progress: %.1f%% | Rate: %.1fk evt/s | Remain: %s *******\033[0m", percent,event_rate/1000.,timer);
    
     fflush(stdout);
-    begin = clock() ;
     inter=0;
+    begin = clock() ;
   }
  
  treated++;