diff --git a/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt b/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt
index f3b6e1be2175f875e38551ab4b15dfa02e292dfb..d4e9e276f07d8312b01eeea8ff0e8c79a394a7a1 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt
+++ b/Trigger/TriggerCommon/TriggerJobOpts/CMakeLists.txt
@@ -12,10 +12,6 @@ atlas_add_test( TriggerConfigFlagsTest
    SCRIPT python -m unittest TriggerJobOpts.TriggerConfigFlags
    POST_EXEC_SCRIPT nopost.sh )
 
-atlas_add_test( TriggerMenuFlagsTest
-   SCRIPT python -m unittest TriggerJobOpts.MenuConfigFlags
-   POST_EXEC_SCRIPT nopost.sh )
-
 atlas_add_test( TriggerConfigTest
    SCRIPT python -m TriggerJobOpts.TriggerConfig
    POST_EXEC_SCRIPT nopost.sh )
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/MenuConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/MenuConfigFlags.py
deleted file mode 100644
index fe2943c5ce5a3764d1f6e9ea9bc9e13d17fb2caa..0000000000000000000000000000000000000000
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/MenuConfigFlags.py
+++ /dev/null
@@ -1,44 +0,0 @@
-
-# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-
-from AthenaConfiguration.AthConfigFlags import AthConfigFlags
-import six
-
-
-def createMenuFlags():
-    # this flags define which chains are in trgger menu
-    # the flags content is not just the name bu contains a few key elements of the chains definition, like the seed, other chain aspects can be added
-    # The DF/CF and hypos are then generated using the menu code
-    # Should the HLT_ and L1_ prefixes are omitted (DRY principle)?
-    # each flag is translated to an independent reconstruction chain
-    flags = AthConfigFlags()
-
-    #flags.addFlag('Trigger.menu.muons', [])
-    flags.addFlag('Trigger.menu.muon', [])
-    flags.addFlag('Trigger.menu.electron', [])
-    flags.addFlag('Trigger.menu.photon', [])
-    flags.addFlag('Trigger.menu.jet', [])
-    flags.addFlag('Trigger.menu.combined', [])
-
-    return flags
-
-
-class MenuUtils(object):
-    @staticmethod
-    def toCTPSeedingDict( flags ):
-        seeding = {} # HLTChain to L1 item mapping
-        for k,v in flags._flagdict.iteritems():
-            if "Trigger.menu." in k:
-                for chain in v.get():
-                    hlt = chain.name                    
-                    l1 = hlt[hlt.index("_L1")+1:].replace("L1","L1_", 1)
-                    seeding[hlt] = l1 # this is the item name
-        return seeding
-
-import unittest
-class __MustHaveMenuInTheName(unittest.TestCase):    
-    def runTest(self):
-        flags = createMenuFlags()
-        for fname,fval in six.iteritems (flags._flagdict):
-            self.assertTrue( fname.startswith('Trigger.menu.') )
-
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
index d46f3d48a559f3b82dc7136d69eb06fbb3bc82f2..0856c480cb1a8de29aaa60e89ae8c655f3181719 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigFlags.py
@@ -281,9 +281,6 @@ def createTriggerFlags():
     from TrigInDetConfig.TrigTrackingCutFlags import createTrigTrackingFlags
     flags.addFlagsCategory( 'Trigger.InDetTracking', createTrigTrackingFlags )
 
-    from TriggerJobOpts.MenuConfigFlags import createMenuFlags
-    flags.join( createMenuFlags() )
-
     return flags
     # for reference, this flags are skipped as never used or never set in fact, or set identical to de default or used in a very old JO:
     # readLVL1Calo, readLVL1Muon, fakeLVL1, useCaloTTL
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone_newJO.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone_newJO.py
index 1dd401b5ed824d3022f42804d1373bdd404dcc76..7170f2fc9cdf43a374a8f403706c86ef3be263b5 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone_newJO.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone_newJO.py
@@ -43,13 +43,6 @@ flags.Scheduler.ShowDataDeps = True
 flags.Scheduler.ShowDataFlow = True
 flags.Scheduler.ShowControlFlow = True
 
-import importlib
-setupMenuPath = "TriggerMenuMT.HLTMenuConfig.Menu."+flags.Trigger.triggerMenuSetup+"_newJO"
-setupMenuModule = importlib.import_module( setupMenuPath )
-assert setupMenuModule is not None, "Could not import module {}".format(setupMenuPath)
-assert setupMenuModule.setupMenu is not None, "Could not import setupMenu from {}".format(setupMenuPath)
-flags.needFlagsCategory('Trigger')
-setupMenuModule.setupMenu(flags)
 flags.Exec.MaxEvents=50
 flags.Input.isMC = False
 flags.Common.isOnline=True
@@ -87,6 +80,7 @@ acc.merge(ByteStreamReadCfg( flags ))
 from TriggerJobOpts.TriggerHistSvcConfig import TriggerHistSvcConfig
 acc.merge(TriggerHistSvcConfig( flags ))
 
+
 from TriggerMenuMT.HLTMenuConfig.Menu.GenerateMenuMT_newJO import generateMenu as generateHLTMenu
 from TriggerJobOpts.TriggerConfig import triggerRunCfg
 acc.merge( triggerRunCfg( flags, seqName = "AthMasterSeq", menu=generateHLTMenu ) )
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py
index 6afa8ae8ff9953fd374a5dcc6cc49bd9acfa5047..1ce863f74f56e8347093529a4d0ed8473d65ed26 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py
@@ -26,8 +26,18 @@ def fillGeneratorsMap( sigMap, signature ):
     sigMap[signature] = gen.generateChains
     log.info( 'Imported generator for %s', signature )
 
+def obtainChainsOfMenu(flags):
+    import importlib
+    setupMenuPath = "TriggerMenuMT.HLTMenuConfig.Menu."+flags.Trigger.triggerMenuSetup+"_newJO"
+    setupMenuModule = importlib.import_module( setupMenuPath )
+    assert setupMenuModule is not None, "Could not import module {}".format(setupMenuPath)
+    assert setupMenuModule.setupMenu is not None, "Could not import setupMenu from {}".format(setupMenuPath)
+    return setupMenuModule.setupMenu(flags)
 
-def generateMenu( flags ):
+
+
+
+def generateMenu(flags):
     """
     Using flags generate appropriate Control Flow Graph wiht all HLT algorithms
     """
@@ -42,22 +52,18 @@ def generateMenu( flags ):
 
     menuAcc = ComponentAccumulator()
     mainSequenceName = 'HLTAllSteps'
-    menuAcc.addSequence( seqAND(mainSequenceName) )
+    menuAcc.addSequence(seqAND(mainSequenceName))
 
+    chainsInMenu = obtainChainsOfMenu(flags)
 
-    for name, cfgFlag in list(flags._flagdict.items()):
-        if 'Trigger.menu.' not in name:
-            continue
-        value = flags._get(name)
-        if len(value) == 0:
+    for signatureName, chains  in chainsInMenu.items():
+        if len(chains) == 0:
             continue
 
-        signatureName = name.split('.')[-1]
         signatures = []
-
         # fill the map[signature, generating function]
         if signatureName== 'combined':
-            for chain in cfgFlag.get():
+            for chain in chains:
                 signatures += dictFromChainName(chain)['signatures']
         else:
             signatures = [signatureName]
@@ -66,7 +72,7 @@ def generateMenu( flags ):
             fillGeneratorsMap( signatureToGenerator, sig.lower() )
 
         # call generating function and pass to CF builder
-        for chain in cfgFlag.get():
+        for chain in chains:
             # TODO topo threshold
             mainChainDict = dictFromChainName( chain )
             
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
index 0e814f98b5bdf83c7775875cd43a9083ee3107b7..a1e849a78ade23e947b0a9c230ebdf4d635417d4 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
@@ -18,6 +18,7 @@ def setupMenu(flags):
     """ 
     Assign chains for LS2_v1 to menu flags
     """
+    chains = {}
 
     #---------------------------------------------------------------------
     # INPUT FORMAT FOR CHAINS:
@@ -37,7 +38,7 @@ def setupMenu(flags):
     SingleJetGroup = ['RATE:SingleJet', 'BW:Jet']
     CombinedGroup = ['RATE:Combined', 'BW:Combined']
 
-    flags.Trigger.menu.muon = [        
+    chains["muon"] = [        
         ChainProp(name='HLT_mu20_L1MU20', groups=SingleMuonGroup),
         ChainProp(name='HLT_mu10_L1MU10', groups=SingleMuonGroup),
         ChainProp(name='HLT_mu8_L1MU6',   groups=SingleMuonGroup),
@@ -47,7 +48,7 @@ def setupMenu(flags):
         ChainProp(name='HLT_mu8_msonly_L1MU6',   groups=SingleMuonGroup)
     ]
 
-    flags.Trigger.menu.electron = [
+    chains["electron"] = [
         ChainProp(name='HLT_e3_etcut_L1EM3', groups=SingleElectronGroup),
         ChainProp(name='HLT_2e3_etcut_L12EM3', groups=MultiElectronGroup),
 # this chain does not work yet        
@@ -56,21 +57,22 @@ def setupMenu(flags):
         ChainProp(name='HLT_e7_etcut_L1EM7', groups=SingleElectronGroup)
     ]
 
-    flags.Trigger.menu.photon = [
+    chains["photon"] = [
        ChainProp(name='HLT_g10_etcut_L1EM7',  groups=SinglePhotonGroup),
        ChainProp(name='HLT_g11_etcut_L1EM7', groups=SinglePhotonGroup),
     ]
 
-    flags.Trigger.menu.jet = [
+    chains["jet"] = [
        ChainProp(name='HLT_j45_L1J20',  groups=SingleJetGroup),
        ChainProp(name='HLT_j85_L1J20',  groups=SingleJetGroup),
        ChainProp(name='HLT_2j35_L1J20', groups=SingleJetGroup)
     ]
 
-    flags.Trigger.menu.combined = [
+    chains["combined"] = [
         ChainProp(name='HLT_e7_etcut_mu10_L1EM7_MU10', mergingStrategy='parallel', groups=CombinedGroup),
         ChainProp(name='HLT_e7_etcut_mu10_msonly_L1EM7_MU10', mergingStrategy='parallel', groups=CombinedGroup)
     ]
+    return chains
 
 if __name__ == "__main__":
     from AthenaCommon.Configurable import Configurable
@@ -89,16 +91,15 @@ if __name__ == "__main__":
 
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
     ConfigFlags.Trigger.generateMenuDiagnostics = True
-    setupMenu(ConfigFlags)
-
+    
     from AthenaConfiguration.TestDefaults import defaultTestFiles
     ConfigFlags.Input.Files = defaultTestFiles.RAW
-
+    ConfigFlags.Trigger.triggerMenuSetup="LS2_v1"
     ConfigFlags.lock()
     ConfigFlags.dump()
     
     from TriggerMenuMT.HLTMenuConfig.Menu.GenerateMenuMT_newJO import generateMenu    
-    menu = generateMenu( ConfigFlags )
+    menu = generateMenu( ConfigFlags)
 
     acc.merge(menu)