diff --git a/Reconstruction/tauRec/python/TauRecConfigured.py b/Reconstruction/tauRec/python/TauRecConfigured.py
index 97190f34fd3809e0b7bb0f05f8f94f689dee5ef8..0223e9b48becf0fcf3933f529e299082c1edb472 100644
--- a/Reconstruction/tauRec/python/TauRecConfigured.py
+++ b/Reconstruction/tauRec/python/TauRecConfigured.py
@@ -46,7 +46,6 @@ class TauRecConfigured ( Configured ) :
                                                         #MaxEta = 2.5,                                                                         
                                                         MaxEta = tauFlags.tauRecSeedMaxEta(),
                                                         MinPt = 10.*GeV,
-                                                        doCreateTauContainers = True,
                                                         CellMakerTool = TauCellContainerFinalizer)
 
         Configured.__init__(self, ignoreExistingDataObject=ignoreExistingDataObject)
diff --git a/Reconstruction/tauRec/src/TauProcessorAlg.cxx b/Reconstruction/tauRec/src/TauProcessorAlg.cxx
index 8c71bd17e784ddd016a8f22ad1585f75c4788aeb..d3651b3ab2d0440ddb8a67c5c2de897068a57a02 100644
--- a/Reconstruction/tauRec/src/TauProcessorAlg.cxx
+++ b/Reconstruction/tauRec/src/TauProcessorAlg.cxx
@@ -32,14 +32,12 @@ AthAlgorithm(name, pSvcLocator),
 m_tools(this), //make tools private
 m_maxEta(2.5),
 m_minPt(10000),
-m_doCreateTauContainers(false),
 m_data(),
 m_cellMakerTool("",this)
 {
   declareProperty("Tools", m_tools);
   declareProperty("MaxEta", m_maxEta);
   declareProperty("MinPt", m_minPt);
-  declareProperty("doCreateTauContainers", m_doCreateTauContainers);
   declareProperty("CellMakerTool", m_cellMakerTool);
 }
 
@@ -140,41 +138,21 @@ StatusCode TauProcessorAlg::execute() {
   const EventContext& ctx = Gaudi::Hive::currentContext();
   StatusCode sc;
 
-  
-    // Declare containers  
-    xAOD::TauJetContainer * pContainer = 0;
-    xAOD::TauJetAuxContainer* pAuxContainer = 0;
-    xAOD::TauTrackContainer* pTauTrackCont = 0;
-    xAOD::TauTrackAuxContainer* pTauTrackAuxCont = 0;
+    //-------------------------------------------------------------------------                         
+    // Create and Record containers
+    //-------------------------------------------------------------------------                 
+    auto pContainer = std::make_unique<xAOD::TauJetContainer>();
+    auto pAuxContainer = std::make_unique<xAOD::TauJetAuxContainer>();
+    pContainer->setStore( pAuxContainer.get() );
+    
+    auto pTauTrackCont = std::make_unique<xAOD::TauTrackContainer>();
+    auto pTauTrackAuxCont = std::make_unique<xAOD::TauTrackAuxContainer>();
+    pTauTrackCont->setStore( pTauTrackAuxCont.get() );
 
     // Declare write handles
     SG::WriteHandle<xAOD::TauJetContainer> tauHandle( m_tauOutputContainer, ctx );
     SG::WriteHandle<xAOD::TauTrackContainer> tauTrackHandle( m_tauTrackOutputContainer, ctx );
 
-    if (m_doCreateTauContainers) {
-      //-------------------------------------------------------------------------                         
-      // Create and Record containers
-      //-------------------------------------------------------------------------                 
-      pContainer = new xAOD::TauJetContainer();
-      pAuxContainer = new xAOD::TauJetAuxContainer();
-      pContainer->setStore( pAuxContainer );
-
-      pTauTrackCont = new xAOD::TauTrackContainer();
-      pTauTrackAuxCont = new xAOD::TauTrackAuxContainer();
-      pTauTrackCont->setStore( pTauTrackAuxCont );
-
-    } else {
-      //-------------------------------------------------------------------------                                             
-      // retrieve Tau Containers from StoreGate                                                                                     
-      //-------------------------------------------------------------------------                                    
-      // replace with read handles
-      sc = evtStore()->retrieve(pContainer, "TauJets");
-      if (sc.isFailure()) {
-	ATH_MSG_FATAL("Failed to retrieve " << "TauJets");
-	return StatusCode::FAILURE;
-      }
-    }
-
     //-------------------------------------------------------------------------                        
     // Initialize tools for this event
     //-------------------------------------------------------------------------                                                      
@@ -249,7 +227,7 @@ StatusCode TauProcessorAlg::execute() {
       pTau->setJet(pSeedContainer, pSeed);
 
       // This sets one track and link. Need to have at least 1 track linked to retrieve track container
-      setEmptyTauTrack(pTau, pTauTrackCont);
+      setEmptyTauTrack(pTau, pTauTrackCont.get());
       
       //-----------------------------------------------------------------
       // Loop stops when Failure indicated by one of the tools
@@ -323,16 +301,16 @@ StatusCode TauProcessorAlg::execute() {
   
   // Write the completed tau and track containers
   ATH_MSG_DEBUG("  write: " << tauHandle.key() << " = " << "..." );
-  ATH_CHECK(tauHandle.record(std::unique_ptr<xAOD::TauJetContainer>{pContainer}, std::unique_ptr<xAOD::TauJetAuxContainer>{pAuxContainer}));
+  ATH_CHECK(tauHandle.record( std::move(pContainer), std::move(pAuxContainer) ));
   ATH_MSG_DEBUG("  write: " << tauTrackHandle.key() << " = " << "..." );  
-  ATH_CHECK(tauTrackHandle.record(std::unique_ptr<xAOD::TauTrackContainer>{pTauTrackCont}, std::unique_ptr<xAOD::TauTrackAuxContainer>{pTauTrackAuxCont}));
+  ATH_CHECK(tauTrackHandle.record( std::move(pTauTrackCont), std::move(pTauTrackAuxCont) ));
 
   return StatusCode::SUCCESS;
 }
 
 
 void TauProcessorAlg::setEmptyTauTrack(xAOD::TauJet* &pTau, 
-				       xAOD::TauTrackContainer* &tauTrackContainer)
+				       xAOD::TauTrackContainer* tauTrackContainer)
 {  
   // Make a new tau track, add to container
   xAOD::TauTrack* pTrack = new xAOD::TauTrack();
diff --git a/Reconstruction/tauRec/tauRec/TauProcessorAlg.h b/Reconstruction/tauRec/tauRec/TauProcessorAlg.h
index d5860147fe2eb48ae67b4f74daf314dc5bfb1f86..aaeb69918d471a010529667e7690311004a7271a 100644
--- a/Reconstruction/tauRec/tauRec/TauProcessorAlg.h
+++ b/Reconstruction/tauRec/tauRec/TauProcessorAlg.h
@@ -49,16 +49,13 @@ class TauProcessorAlg: public AthAlgorithm
     private:
        
 	void setEmptyTauTrack( xAOD::TauJet* &tauJet,
-			       xAOD::TauTrackContainer* &tauTrackCont);				 
+			       xAOD::TauTrackContainer* tauTrackCont);				 
 
 	ToolHandleArray<ITauToolBase>  m_tools {this, "TauProcessorTools", {}, "Tools processing taus"};
 
 	double m_maxEta; //!< only build taus with eta_seed < m_maxeta
 	double m_minPt;  //!< only build taus with pt_seed > m_minpt
 
-	bool m_doCreateTauContainers;
-
-        //ToolHandleArray<ITauToolExecBase>  m_tools;
 	TauEventData m_data;
 
 	/** @brief tool handles */