diff --git a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigSvc.h b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigSvc.h
index 0cbfece7a3b8181e6994677744510ba582b88a3a..5617d05bda7c17e070b60c46273eb134bcf4a399 100644
--- a/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfInterfaces/TrigConfInterfaces/ITrigConfigSvc.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: ITrigConfigSvc.h 706340 2015-11-06 10:35:33Z krasznaa $
 #ifndef TRIGCONFINTERFACES_ITRIGCONFIGSVC_H
 #define TRIGCONFINTERFACES_ITRIGCONFIGSVC_H
 
@@ -25,13 +24,10 @@ namespace TrigConf {
     *
     * Note that this is used in particular to retrieve config info in an
     * offline analysis.
-    *
-    * $Revision: 706340 $
-    * $Date: 2015-11-06 11:35:33 +0100 (Fri, 06 Nov 2015) $
     */
-   class ITrigConfigSvc : public extend_interfaces3< IL1TopoConfigSvc,
-                                                     ILVL1ConfigSvc,
-                                                     IHLTConfigSvc > {
+   class ITrigConfigSvc : public extend_interfaces< IL1TopoConfigSvc,
+                                                    ILVL1ConfigSvc,
+                                                    IHLTConfigSvc > {
 
    public:
       /**@brief destructor*/
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/CMakeLists.txt b/Trigger/TrigConfiguration/TrigConfigSvc/CMakeLists.txt
index 98a0508256375f3a03c99b2f96e1fa8bbe1eaf49..f9f0162f37916533f6f1a077161b8a3659e33436 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/CMakeLists.txt
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
 # Declare the package name:
 atlas_subdir( TrigConfigSvc )
@@ -6,14 +6,13 @@ atlas_subdir( TrigConfigSvc )
 # External dependencies:
 find_package( Boost )
 find_package( COOL COMPONENTS CoolKernel )
-find_package( ROOT COMPONENTS Hist )
 find_package( cx_Oracle )
 find_package( nlohmann_json )
 
 atlas_add_component( TrigConfigSvc
                      src/*.cxx src/components/*.cxx
-                     INCLUDE_DIRS ${COOL_INCLUDE_DIRS}
-                     LINK_LIBRARIES AthAnalysisBaseCompsLib AthenaBaseComps TrigConfIO TrigConfData TrigConfStorage TrigConfL1Data L1TopoConfig EventInfo AthenaMonitoringLib PathResolver nlohmann_json::nlohmann_json )
+                     INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${COOL_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS}
+                     LINK_LIBRARIES ${Boost_LIBRARIES} ${COOL_LIBRARIES} ${TBB_LIBRARIES} AthAnalysisBaseCompsLib AthenaBaseComps AthenaKernel AthenaPoolUtilities EventInfo GaudiKernel L1TopoConfig PathResolver StoreGateLib TrigConfBase TrigConfData TrigConfHLTData TrigConfIO TrigConfInterfaces TrigConfL1Data TrigConfStorage nlohmann_json::nlohmann_json )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} )
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.cxx b/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.cxx
index 9751211bdbe7a2c33a7a03fa020a4fdd49c016c6..8074521e6ee7cc3574ecfeadee29dc1a93c28470 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.cxx
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.cxx
@@ -31,7 +31,6 @@
 #include "TrigConfHLTData/HLTChainList.h"
 #include "TrigConfHLTData/HLTSequenceList.h"
 #include "TrigConfHLTData/HLTPrescaleSet.h"
-#include "TrigConfHLTData/HLTStreamTag.h"
 
 #include "TrigConfStorage/StorageMgr.h"
 #include "TrigConfStorage/TrigConfCoolFolderSpec.h"
@@ -40,7 +39,7 @@
 #include "TrigConfStorage/DBLoader.h"
 
 // Local include(s):
-#include "./DSConfigSvc.h"
+#include "DSConfigSvc.h"
 
 #include "boost/lexical_cast.hpp"
 
@@ -91,10 +90,6 @@ TrigConf::DSConfigSvc::DSConfigSvc( const std::string& name,
 }
 
 
-TrigConf::DSConfigSvc::~DSConfigSvc()
-{}
-
-
 StatusCode
 TrigConf::DSConfigSvc::initialize() {
 
@@ -137,29 +132,6 @@ TrigConf::DSConfigSvc::initialize() {
 }
 
 
-StatusCode
-TrigConf::DSConfigSvc::queryInterface( const InterfaceID& riid,
-                                       void** ppvIF ) {
-
-   if( riid == ITrigConfigSvc::interfaceID() ) {
-      *ppvIF = static_cast< ITrigConfigSvc* >( this );
-   } else if( riid == IProperty::interfaceID() ) {
-      *ppvIF = static_cast< IProperty* >( this );
-   } else if ( riid == IL1TopoConfigSvc::interfaceID() )  {
-      *ppvIF = static_cast< IL1TopoConfigSvc* >(this);
-   } else if( riid == ILVL1ConfigSvc::interfaceID() )  {
-      *ppvIF = static_cast< ILVL1ConfigSvc* >( this );
-   } else if( riid == IHLTConfigSvc::interfaceID() )  {
-      *ppvIF = static_cast< IHLTConfigSvc* >( this );
-   } else {
-      return AthService::queryInterface( riid, ppvIF );
-   }
-
-   addRef();
-   return StatusCode::SUCCESS;
-}
-
-
 StatusCode
 TrigConf::DSConfigSvc::registerCallbackForFolder( const std::string& foldername,
                                                   bool multichannel ) {
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.h b/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.h
index 493933e82cbeb42eae4175b4c41ef8dca361a48e..c7f361020446fe0935b654aa9590ab5ca827d71b 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/DSConfigSvc.h
@@ -5,31 +5,26 @@
 #ifndef TrigConfig_DSConfigSvc
 #define TrigConfig_DSConfigSvc
 
-#include <stdint.h>
+#include "ConfigSvcBase.h"
+#include "TrigConfInterfaces/ITrigConfigSvc.h"
+
+#include "GaudiKernel/ServiceHandle.h"
+#include "AthenaKernel/IIOVSvc.h"
+#include "StoreGate/StoreGateSvc.h"
 
 #include "TrigConfL1Data/CTPConfig.h"
 #include "TrigConfHLTData/HLTFrame.h"
-
+#include "L1TopoConfig/L1TopoMenu.h"
 #include "TrigConfData/L1Menu.h"
 #include "TrigConfData/L1PrescalesSet.h"
 #include "TrigConfData/L1BunchGroupSet.h"
 #include "TrigConfData/HLTMenu.h"
 #include "TrigConfData/HLTPrescalesSet.h"
 
-#include "GaudiKernel/ServiceHandle.h"
-#include "./ConfigSvcBase.h"
-#include "AthenaKernel/IIOVSvc.h"
-#include "StoreGate/StoreGateSvc.h"
-
-#include "TrigConfInterfaces/ITrigConfigSvc.h"
-
+#include <stdint.h>
 #include <memory>
 #include <set>
 
-namespace TXC {
-   class L1TopoMenu;
-}
-
 class EventContext;
 
 /**
@@ -49,7 +44,7 @@ namespace TrigConf {
     *        on what is provided by HLTConfigSvc and LVL1ConfigSvc
     *
     */
-   class DSConfigSvc : public extends1<ConfigSvcBase, ITrigConfigSvc>
+   class DSConfigSvc : public extends<ConfigSvcBase, ITrigConfigSvc>
    {
 
    public:
@@ -57,20 +52,9 @@ namespace TrigConf {
       // Standard Gaudi Service constructor
       DSConfigSvc( const std::string& name, ISvcLocator* pSvcLocator );
 
-      // Destructor
-      virtual ~DSConfigSvc();
-
       // @brief initialize the service
       virtual StatusCode initialize() override;
 
-      // @brief finalize the service
-      virtual StatusCode finalize() override {
-         return StatusCode::SUCCESS;
-      }
-
-      // @brief set the master key of the configuration to be requested
-      virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvIF ) override;
-
       // @brief L1 topo configuration menu
       virtual const TXC::L1TopoMenu* menu() const override {
          return m_topoMenu.get();
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.cxx b/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.cxx
index b07ab8990dc7eeed5002290d528284dfbc0911ce..3d9b14e134437e55ca01e7c3bb217dddc3e3a150 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.cxx
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.cxx
@@ -3,25 +3,18 @@
 */
 
 // class declaration
-#include "./HLTConfigSvc.h"
+#include "HLTConfigSvc.h"
 
 #include <exception>
 #include <vector>
 
 // Athena/Gaudi includes:
-#include "PathResolver/PathResolver.h"
 #include "EventInfo/EventInfo.h"
 #include "EventInfo/EventID.h"
 
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/IIncidentSvc.h"
 #include "GaudiKernel/Incident.h"
-#include "GaudiKernel/ITHistSvc.h"
-#include "GaudiKernel/Timing.h"
-
-// Root incluces:
-#include "TH1F.h"
-#include "TH2I.h"
 
 // Local includes:
 #include "TrigConfIO/JsonFileLoader.h"
@@ -30,9 +23,6 @@
 #include "TrigConfBase/TrigDBConnectionConfig.h"
 #include "TrigConfStorage/StorageMgr.h"
 #include "TrigConfStorage/IStorageMgr.h"
-#include "TrigConfStorage/XMLStorageMgr.h"
-#include "TrigConfStorage/IHLTPrescaleSetLoader.h"
-#include "TrigConfStorage/IHLTPrescaleSetCollectionLoader.h"
 #include "TrigConfL1Data/HelperFunctions.h"
 #include "TrigConfL1Data/CTPConfig.h" 
 #include "TrigConfHLTData/HLTFrame.h"
@@ -40,12 +30,10 @@
 #include "TrigConfHLTData/HLTSequenceList.h"
 #include "TrigConfHLTData/HLTPrescaleSet.h"
 #include "TrigConfHLTData/HLTPrescaleSetCollection.h"
-#include "AthenaMonitoringKernel/OHLockedHist.h"
 
 #include "TrigConfInterfaces/IJobOptionsSvc.h"
 
 #include "boost/algorithm/string/case_conv.hpp"
-#include "boost/lexical_cast.hpp"
 
 using namespace std;
 using namespace TrigConf;
@@ -65,9 +53,6 @@ HLTConfigSvc::HLTConfigSvc( const string& name, ISvcLocator* pSvcLocator ) :
                     "Enable monitoring (mostly for online)");
 }
 
-HLTConfigSvc::~HLTConfigSvc()
-{}
-
 
 StatusCode
 HLTConfigSvc::writeConfigToDetectorStore() {
@@ -310,42 +295,6 @@ TrigConf::HLTConfigSvc::applyPrescaleSet(const TrigConf::HLTPrescaleSet& pss) {
 
 }
 
-
-StatusCode
-TrigConf::HLTConfigSvc::finalize() {
-   ATH_MSG_DEBUG("Finalizing");
-   CHECK(AthService::finalize());
-   return StatusCode::SUCCESS;
-}
-
-
-StatusCode
-TrigConf::HLTConfigSvc::queryInterface( const InterfaceID& riid, void** ppvIF ) {
-   StatusCode sc = StatusCode::FAILURE;
-
-   if (ppvIF) {
-      *ppvIF = 0;
-
-      if (riid == IHLTConfigSvc::interfaceID()) {
-         try {
-            *ppvIF = dynamic_cast<IHLTConfigSvc*>( this );
-         }
-         catch( const std::bad_cast& ) {
-            return StatusCode::FAILURE;
-         }
-         sc = StatusCode::SUCCESS;
-      }
-      else {
-         sc = Service::queryInterface( riid, ppvIF );
-      }
-
-   }
-
-   if ( sc.isSuccess() ) addRef();
-   return sc;
-
-}
-
 uint32_t
 TrigConf::HLTConfigSvc::masterKey() const {
    return m_HLTFrame.smk();
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.h b/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.h
index 4d7b63057a2baabfe53a432da622ed61751cb6f0..fa100aefd1b25effa621b29be0c378f748935328 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/HLTConfigSvc.h
@@ -10,7 +10,6 @@
 #include <string>
 #include <vector>
 
-#include "GaudiKernel/HistoProperty.h"
 #include "StoreGate/StoreGateSvc.h"
 
 #include "TrigConfInterfaces/IHLTConfigSvc.h"
@@ -37,7 +36,7 @@ namespace TrigConf {
     *
     * This service should be accessed, to read the configuration lists
     */
-   class HLTConfigSvc : public extends1<ConfigSvcBase, IHLTConfigSvc>
+   class HLTConfigSvc : public extends<ConfigSvcBase, IHLTConfigSvc>
    {
    public:
 
@@ -61,14 +60,10 @@ namespace TrigConf {
 
       /*@brief constructor*/
       HLTConfigSvc( const std::string& name, ISvcLocator* pSvcLocator );
-      virtual ~HLTConfigSvc();
 
       virtual StatusCode initialize() override;
-      virtual StatusCode finalize() override;
       virtual StatusCode start() override;
 
-      virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvIF ) override;
-
       // Access functions described by IHLTConfigSvc:
       const HLTFrame*        hltFrame() const { return &m_HLTFrame; }
       virtual uint32_t               masterKey() const override;
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx b/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx
index afa9ab469d864d253b7ea3afc8af4db08a2bb170..e4d4f926e512262edfbf3cf5c166b0fc3a0e2cff 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.cxx
@@ -1,44 +1,30 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
-#include "./LVL1ConfigSvc.h"
-#include "./Verifyer.h"
-
+#include "LVL1ConfigSvc.h"
+#include "Verifyer.h"
 
 // Athena/Gaudi includes:
 #include "GaudiKernel/ServiceHandle.h"
 #include "GaudiKernel/IIncidentSvc.h"
 #include "GaudiKernel/Incident.h"
-
 #include "StoreGate/StoreGateSvc.h"
 
-
 // Trigger database interface includes:
 #include "TrigConfIO/JsonFileLoader.h"
 #include "TrigConfIO/TrigDBMenuLoader.h"
 #include "TrigConfIO/TrigDBL1BunchGroupSetLoader.h"
 #include "TrigConfData/L1Menu.h"
 #include "TrigConfData/L1BunchGroupSet.h"
-
-#include "TrigConfL1Data/DeadTime.h"
 #include "TrigConfL1Data/CTPConfig.h"
 #include "TrigConfL1Data/Menu.h"
 #include "TrigConfL1Data/ThresholdConfig.h"
 #include "TrigConfL1Data/Muctpi.h"
-#include "TrigConfL1Data/PrescaledClock.h"
-#include "TrigConfL1Data/Random.h"
 #include "TrigConfStorage/StorageMgr.h"
 #include "TrigConfStorage/XMLStorageMgr.h"
-#include "TrigConfL1Data/TriggerThreshold.h"
-#include "TrigConfL1Data/TriggerThresholdValue.h"
-#include "TrigConfL1Data/ClusterThresholdValue.h"
-#include "TrigConfL1Data/EtThresholdValue.h"
-#include "TrigConfL1Data/JetThresholdValue.h"
 #include "TrigConfL1Data/L1DataDef.h"
-
 #include "TrigConfBase/TrigDBConnectionConfig.h"
-
 #include "TrigConfInterfaces/IJobOptionsSvc.h"
 
 #include "boost/algorithm/string.hpp"
@@ -55,8 +41,6 @@ TrigConf::LVL1ConfigSvc::LVL1ConfigSvc( const std::string& name, ISvcLocator* pS
    base_class::declareCommonProperties();
 }
 
-TrigConf::LVL1ConfigSvc::~LVL1ConfigSvc()
-{}
 
 const TrigConf::ThresholdConfig*
 TrigConf::LVL1ConfigSvc::thresholdConfig() const { return m_ctpConfig ? &m_ctpConfig->menu().thresholdConfig() : nullptr; }
@@ -272,9 +256,6 @@ TrigConf::LVL1ConfigSvc::loadRun2StyleMenu() {
 StatusCode
 TrigConf::LVL1ConfigSvc::initialize() {
 
-   CHECK(AthService::initialize());
-
-   /// Handle to JobOptionsSvc used to retrieve the DataFlowConfig property
    ATH_MSG_INFO("=================================");
    ATH_MSG_INFO("Initializing " << name() << " service");
    ATH_MSG_INFO("=================================");
@@ -312,37 +293,10 @@ TrigConf::LVL1ConfigSvc::finalize() {
    delete m_ctpConfig;
    delete m_muctpi;
 
-   CHECK(AthService::finalize());
-
    return StatusCode::SUCCESS;
 
 }
 
-StatusCode
-TrigConf::LVL1ConfigSvc::queryInterface( const InterfaceID& riid, void** ppvIF ) {
-
-   StatusCode sc = StatusCode::FAILURE;
-
-   if( ppvIF ) {
-      *ppvIF = 0;
-
-      if( riid == ILVL1ConfigSvc::interfaceID() ) {
-         try {
-            *ppvIF = dynamic_cast<ILVL1ConfigSvc*>( this );
-         } catch( const bad_cast& ) {
-            return StatusCode::FAILURE;
-         }
-         sc = StatusCode::SUCCESS;
-      } else {
-         sc = Service::queryInterface( riid, ppvIF );
-      }
-
-   }
-
-   return sc;
-
-}
-
 
 const TrigConf::BunchGroupSet*
 TrigConf::LVL1ConfigSvc::bunchGroupSet() const { 
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.h b/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.h
index a17ed70bd2512aa1df207fdeb64505e35de9580a..3be7be071b925b674b61ec90cdca616ecd05fec8 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/LVL1ConfigSvc.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "./ConfigSvcBase.h"
+#include "ConfigSvcBase.h"
 
 #include "TrigConfInterfaces/ILVL1ConfigSvc.h"
 
@@ -24,24 +24,19 @@ namespace TrigConf {
    class L1Menu;
 
    /**
-    *  $Date: 2009-02-04 09:12:03 $
-    *   @short Service providing the LVL1 trigger configuration
+    *  @brief Service providing the LVL1 trigger configuration
     *
     *  @author $Author: stelzer $
-    *  @version $Revision: 1.8 $
     *
     */
-   class LVL1ConfigSvc : public extends1<ConfigSvcBase, ILVL1ConfigSvc> {
+   class LVL1ConfigSvc : public extends<ConfigSvcBase, ILVL1ConfigSvc> {
    public:
 
       LVL1ConfigSvc( const std::string& name, ISvcLocator* pSvcLocator );
-      virtual ~LVL1ConfigSvc();
-      
+
       virtual StatusCode initialize() override;
       virtual StatusCode finalize() override;
 
-      virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvIF ) override;
-
       // Access functions described by ILVL1ConfigSvc:
       virtual const Muctpi* muctpiConfig() const override { return m_muctpi; }
       virtual const CTPConfig* ctpConfig() const override { return m_ctpConfig; }
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.cxx b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.cxx
index 46715d651278e1258e11e34f778c790a5dd74211..6e18872c36121b33a04eb034b01f2fa0542cc737 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.cxx
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.cxx
@@ -6,12 +6,11 @@
 
 #include "AthAnalysisBaseComps/AthAnalysisHelper.h" // for AAH::setProperty. Header only, not linked
 
-#include "./TrigConfigSvc.h"
-#include "./HLTConfigSvc.h"
+#include "TrigConfigSvc.h"
+#include "HLTConfigSvc.h"
 #include "TrigConfHLTData/HLTChainList.h"
 #include "TrigConfL1Data/BunchGroupSet.h"
 
-#include "boost/foreach.hpp"
 #include "boost/algorithm/string.hpp"
 
 #include <algorithm>
@@ -20,7 +19,7 @@ using namespace std;
 using namespace TrigConf;
 
 TrigConfigSvc::TrigConfigSvc(const std::string &name,
-                             ISvcLocator *pSvcLocator) : AthService(name, pSvcLocator),
+                             ISvcLocator *pSvcLocator) : base_class(name, pSvcLocator),
                                                          m_l1topoSvc("TrigConf::L1TopoConfigSvc/L1TopoConfigSvc", name),
                                                          m_lvl1Svc("TrigConf::LVL1ConfigSvc/LVL1ConfigSvc", name),
                                                          m_hltSvc("TrigConf::HLTConfigSvc/HLTConfigSvc", name),
@@ -38,7 +37,6 @@ TrigConfigSvc::TrigConfigSvc(const std::string &name,
 StatusCode
 TrigConfigSvc::initialize() {
 
-   CHECK(AthService::initialize());
    if (m_useNewConfig)
    {
       ATH_MSG_INFO("Called with UseNewConfig=True. Will only initialize LVL1ConfigSvc and HLTConfigSvc which write L1 bunchgroups, L1 menu and HLT menu to DetStore.");
@@ -136,31 +134,6 @@ TrigConfigSvc::initialize() {
 }
 
 
-
-StatusCode
-TrigConfigSvc::queryInterface( const InterfaceID& riid,
-                               void** ppvIF )
-{
-
-   if ( riid == ITrigConfigSvc::interfaceID() )  {
-      *ppvIF = static_cast< ITrigConfigSvc* >(this);
-   } else if ( riid == IProperty::interfaceID() ) {
-      *ppvIF = static_cast< IProperty* >(this);
-   } else if ( riid == IL1TopoConfigSvc::interfaceID() )  {
-      *ppvIF = static_cast< IL1TopoConfigSvc* >(this);
-   } else if ( riid == ILVL1ConfigSvc::interfaceID() )  {
-      *ppvIF = static_cast< ILVL1ConfigSvc* >(this);
-   } else if ( riid == IHLTConfigSvc::interfaceID() )  {
-      *ppvIF = static_cast< IHLTConfigSvc* >(this);
-   } else   {
-      return AthService::queryInterface( riid, ppvIF );
-   }
-
-   addRef();
-   return StatusCode::SUCCESS;
-}
-
-
 const TXC::L1TopoMenu*
 TrigConfigSvc::menu() const {
    if(m_l1toposervice)
diff --git a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.h b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.h
index d91af5a8a0113c94691d8c3eafb6bc29798a5d7d..14e8cc57b2373038c8d0db7ad7e5f853dcfb149c 100644
--- a/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfigSvc/src/TrigConfigSvc.h
@@ -37,18 +37,14 @@ namespace TrigConf {
 
    enum TrigConfSrc {DS = 0, XML, XMLL1, XMLHLT };
 
-   class TrigConfigSvc : public AthService, 
-                         virtual public ITrigConfigSvc
+   class TrigConfigSvc : public extends<AthService, ITrigConfigSvc>
    {
    public:
 
       TrigConfigSvc( const std::string& name, ISvcLocator* pSvcLocator );
 
-      virtual ~TrigConfigSvc(){}
-
       virtual StatusCode initialize() override;
 
-      virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvIF ) override;
       static const InterfaceID& interfaceID() { return ITrigConfigSvc::interfaceID(); }
 
       // L1Topo menu
diff --git a/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.cxx b/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.cxx
index 771e46f03c1f66cea4dd25f84ef03084c08f2dfd..98c26d6f0deb67da41e0fcf0b4972c08cbda5a6c 100644
--- a/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.cxx
+++ b/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.cxx
@@ -25,7 +25,7 @@
 namespace TrigConf {
 
    xAODConfigSvc::xAODConfigSvc( const std::string& name, ISvcLocator* svcLoc )
-      : AthService( name, svcLoc ),
+      : base_class( name, svcLoc ),
         m_stopOnFailure( true ), m_isInFailure( false ),
         m_tmcAux( nullptr ), m_tmc( nullptr ), m_menu(),
         m_ctpConfig(), m_chainList(), m_sequenceList(), m_bgSet(),
@@ -288,44 +288,6 @@ namespace TrigConf {
       return *(m_currentBg.get(ctx));
    }
 
-   StatusCode xAODConfigSvc::queryInterface( const InterfaceID& riid,
-                                             void** ppvIf ) {
-
-      // Check if the user asked for the ITrigConfigSvc interface:
-      if( riid == ITrigConfigSvc::interfaceID() ) {
-         *ppvIf = static_cast< ITrigConfigSvc* >( this );
-         addRef();
-         return StatusCode::SUCCESS;
-      }
-      // Check if it's the ILVL1ConfigSvc interface we need:
-      else if( riid == ILVL1ConfigSvc::interfaceID() ) {
-         *ppvIf = static_cast< ILVL1ConfigSvc* >( this );
-         addRef();
-         return StatusCode::SUCCESS;
-      }
-      // Check if it's the IHLTConfigSvc interface we need:
-      else if( riid == IHLTConfigSvc::interfaceID() ) {
-         *ppvIf = static_cast< IHLTConfigSvc* >( this );
-         addRef();
-         return StatusCode::SUCCESS;
-      }
-      // Check if it's the IL1TopoConfigSvc interface we need:
-      else if( riid == IL1TopoConfigSvc::interfaceID() ) {
-         *ppvIf = static_cast< IL1TopoConfigSvc* >( this );
-         addRef();
-         return StatusCode::SUCCESS;
-      }
-      // Finally check if the user asked for the IIncidentListener interface:
-      else if( riid == IIncidentListener::interfaceID() ) {
-         *ppvIf = static_cast< IIncidentListener* >( this );
-         addRef();
-         return StatusCode::SUCCESS;
-      }
-
-      // Leave it to the base class to deal with the rest:
-      return AthService::queryInterface( riid, ppvIf );
-   }
-
    void xAODConfigSvc::handle( const Incident& inc ) {
 
       // Tell the user what we're doing:
diff --git a/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.h b/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.h
index 979bca5ea5e66b2848989b893c38df8e33647f06..ed03cbf3d1dc699e5340ccd19177e11d06fc01ae 100644
--- a/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.h
+++ b/Trigger/TrigConfiguration/TrigConfxAOD/src/xAODConfigSvc.h
@@ -69,13 +69,8 @@ namespace TrigConf {
     *         configuration for the current event.
     *
     * @author Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch>
-    *
-    * $Revision: 631651 $
-    * $Date: 2014-11-27 19:33:16 +0100 (Thu, 27 Nov 2014) $
     */
-   class xAODConfigSvc : public AthService,
-                         public virtual ITrigConfigSvc,
-                         public virtual IIncidentListener {
+   class xAODConfigSvc : public extends<AthService, ITrigConfigSvc, IIncidentListener> {
 
    public:
       /// Standard service constructor
@@ -162,10 +157,6 @@ namespace TrigConf {
 
       /// @}
 
-      /// Function describing to Gaudi the interface(s) implemented
-      virtual StatusCode queryInterface( const InterfaceID& riid,
-                                         void** ppvIf ) override;
-
       /// Function handling the incoming incidents
       virtual void handle( const Incident& inc ) override;