diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
index 9f3f3365f844b0d1a8a3a54ae4f14b5ae1f91c2f..0f06716225e314cbca3049decfe9b1053e196d21 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
+++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
@@ -107,6 +107,7 @@ atlas_install_scripts( scripts/generateMenuMT.py )
 atlas_install_scripts( scripts/generateL1MenuMT.sh )
 atlas_install_scripts( scripts/generateLVL1MenuMT.py )
 atlas_install_scripts( scripts/generateL1TopoMenuMT.py )
+atlas_install_scripts( scripts/test_HLTmenu.sh )
 
 atlas_install_xmls( data/*.dtd data/*.xml )
 
@@ -120,6 +121,10 @@ atlas_add_test( generateMenuMT_newJO SCRIPT python -m TriggerMenuMT.HLTMenuConfi
                 PROPERTIES TIMEOUT 500 
               )
 
+atlas_add_test( generateMenuMT SCRIPT bash test_HLTmenu.sh
+                PROPERTIES TIMEOUT 1000 
+              )
+
 
 
 #file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unitTestRun_generateMenu )
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronDef.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronDef.py
index a5b804e581b4a485d21b34a75c4dfb4ac7b605c2..abaa584fd3f61cf9dace5a40a4013edd02ffcbef 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronDef.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronDef.py
@@ -5,10 +5,41 @@ logging.getLogger().info("Importing %s",__name__)
 log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.Egamma.ElectronDef")
 
 
-from TrigUpgradeTest.electronMenuDefs import fastCaloSequence, electronSequence
-from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import Chain, ChainStep
+
+from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import Chain, ChainStep, RecoFragmentsPool
 from TriggerMenuMT.HLTMenuConfig.Menu.TriggerConfigHLT import TriggerConfigHLT
 
+
+# fragments generating configuration will be functions in New JO, so let's make them functions already now
+def fastCaloSequenceCfg( flags ):
+    from TrigUpgradeTest.electronMenuDefs import fastCaloSequence
+    return fastCaloSequence()
+    
+def electronSequenceCfg( flags ):
+    from TrigUpgradeTest.electronMenuDefs import electronSequence        
+    return electronSequence()
+
+def generateChain(flags, chainDict ): # in New JO  we will add flags here
+    chainDict = type("chainDict", (object,), chainDict)
+    # translation from  chainDict["chainName"] to chainDict.chainName (less typing),
+    # it is not exact as the things like the multiplicity are not converted to int, however they should be made int in the first place
+    #
+
+
+    # this is the cache, we hope we will be able to get rid of it in future
+    fastCalo = RecoFragmentsPool.retrieve( fastCaloSequenceCfg, None ) # the None will be used for flags in future
+    electronReco = RecoFragmentsPool.retrieve( electronSequenceCfg, None )
+    
+    return Chain(name = chainDict.chainName,
+                 Seed = chainDict.L1item, 
+                 ChainSteps = [
+                     ChainStep('ElectronStep1', [fastCalo]),
+                     ChainStep('ElectronStep2', [electronReco])
+                 ])
+    
+    
+
+
 class Chain_electron:
 
     def __init__(self, chainDict):
@@ -37,7 +68,7 @@ class Chain_electron:
 
 
         self.chainSteps = chainSteps
-        myChain = Chain(name = 'HLT_'+self.chainName, 
+        myChain = Chain(name = self.chainName, 
                         Seed = self.chainL1Item, 
                         ChainSteps = self.chainSteps)
         return myChain
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/__init__.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/generateElectronChainDefs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/generateElectronChainDefs.py
index 84bc075d92fd3e27c397d09085fa13fddbe58a1d..19d20153e81a999e4a9edd948df004140215f4fd 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/generateElectronChainDefs.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/generateElectronChainDefs.py
@@ -1,8 +1,10 @@
 # Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 
-from TriggerMenuMT.HLTMenuConfig.Egamma.ElectronDef import Chain_electron as Chain_electron
+from TriggerMenuMT.HLTMenuConfig.Egamma.ElectronDef import generateChain as generateElectronChain
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import Chain
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuUtils import splitChainDict
+#from TriggerMenuMT.HLTMenuConfig.Egamma.ElectronDef import Chain_electron as Chain_electron
+
 
 from AthenaCommon.Logging import logging
 log = logging.getLogger( 'TriggerMenuMT.HLTMenuConfig.Egamma.generateChainConfigs' )
@@ -20,8 +22,10 @@ def generateChainConfigs( chainDict ):
 
     for subChainDict in listOfChainDicts:
         log.debug("IN ELECTRON GENERATION CODE")
-        Electron = Chain_electron(subChainDict).assembleChain()            
-        log.debug('Electron object: type name of class: %s', Electron.__class__.__name__)
+        
+        Electron = generateElectronChain( None, subChainDict )
+        #Electron = Chain_electron(subChainDict).assembleChain() 
+
 
         listOfChainDefs += [Electron]
         log.debug('length of chaindefs %s', len(listOfChainDefs) )
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
index 41581a8626d3a37e90ecb2bf252f26b483ec4693..a12de7eff48b818264fc8054bfe3118117dbd4ab 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
@@ -51,7 +51,7 @@ class GenerateMenuMT:
 
     def setTriggerConfigHLT(self):
         # setting the hlt menu configuration
-        (HLTPrescales) = self.setupMenu()
+        #(HLTPrescales) = self.setupMenu()
         self.triggerConfigHLT = TriggerConfigHLT(TriggerFlags.outputHLTconfigFile())
         self.triggerConfigHLT.menuName = TriggerFlags.triggerMenuSetup()
         log.debug("Working with menu: %s", self.triggerConfigHLT.menuName)
@@ -63,10 +63,9 @@ class GenerateMenuMT:
         """
         if self.doEgammaChains:
             try:
-                import TriggerMenuMT.HLTMenuConfig.Egamma.generateElectronChainDefs 
+                import TriggerMenuMT.HLTMenuConfig.Egamma.generateElectronChainDefs                
             except:
-                log.error('Problems when importing generateElectronChainDefs, disabling egamma chains.')
-                log.info(traceback.print_exc())
+                log.exception('Problems when importing generateElectronChainDefs, disabling egamma chains.')
                 self.doEgammaChains = False
                         
         listOfChainConfigs = []
@@ -84,12 +83,14 @@ class GenerateMenuMT:
             if chainDict["signature"] == "Electron" and self.doEgammaChains:
                 try:
                     log.debug("Try to get chain config")
-                    chainConfigs = TriggerMenuMT.HLTMenuConfig.Egamma.generateElectronChainDefs.generateChainConfigs(chainDict)
+                    chainConfigs = TriggerMenuMT.HLTMenuConfig.Egamma.generateElectronChainDefs.generateChainConfigs(chainDict)                    
                 except:
-                    log.error('Problems creating ChainDef for chain %s ' % (chainDict['chainName']))
-                    log.info(traceback.print_exc())
+                    log.exception( 'Problems creating ChainDef for chain\n %s ' % (chainDict['chainName']) ) 
+
+
                     continue
             else:
+                
                 log.error('Chain %s ignored - either trigger signature is turned off or the corresponding chain dictionary cannot be read.' %(chainDict['chainName']))
                 log.debug('Chain dictionary of failed chain is %s.', chainDict)
             
@@ -102,7 +103,8 @@ class GenerateMenuMT:
 
         if len(listOfChainConfigs) == 0:  
             log.error('No Chain Configuration found ')
-            return False
+            return None
+        
         elif len(listOfChainConfigs)>1:
             if ("mergingStrategy" in chainDicts[0].keys()):
                 log.warning("Need to define merging strategy, returning only first chain part configuration")
@@ -125,9 +127,16 @@ class GenerateMenuMT:
 
         log.debug('Creating one big list of of enabled signatures and chains')
         chains = []
+        # we can already use new set of flags
+        from AthenaConfiguration.AllConfigFlags import ConfigFlags
+        from TriggerMenuMT.HLTMenuConfig.Menu.LS2_v1_newJO import setupMenu as setupMenuFlags
+        setupMenuFlags( ConfigFlags ) 
+        ConfigFlags.lock()
         
-        if (TriggerFlags.CombinedSlice.signatures() or TriggerFlags.EgammaSlice.signatures()) and self.doEgammaChains:
-            chains += TriggerFlags.EgammaSlice.signatures() 
+        #if (TriggerFlags.CombinedSlice.signatures() or TriggerFlags.EgammaSlice.signatures()) and self.doEgammaChains:
+        if ConfigFlags.Trigger.menu.electron and self.doEgammaChains:
+            chains += ConfigFlags.Trigger.menu.electron
+            log.debug("egamma chains "+str(ConfigFlags.Trigger.menu.egamma))
         else:
             self.doEgammaChains   = False
 
@@ -181,8 +190,10 @@ class GenerateMenuMT:
     def setupMenu(self):
         # go over the slices and put together big list of signatures requested
         #(L1Prescales, HLTPrescales, streamConfig) = lumi(self.triggerPythonConfig)
-        (self.L1Prescales, self.HLTPrescales) = lumi(self.triggerConfigHLT)
-        return (self.HLTPrescales)
+        # that does not seem to work
+        #(self.L1Prescales, self.HLTPrescales) = lumi(self.triggerConfigHLT)
+        #return (self.HLTPrescales)
+        pass
 
 
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh b/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh
old mode 100644
new mode 100755
index 53f5e39704237e68106cd72259ebff280268f04b..bba2ef6c262f350f5b3adfffd1fc0dfc818e0441
--- a/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh
+++ b/Trigger/TriggerCommon/TriggerMenuMT/scripts/test_HLTmenu.sh
@@ -1,3 +1,3 @@
 #!bin/sh
 
-athena -l DEBUG --threads=1 --skipEvents=10 --evtMax=20 --filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1" TriggerMenuMT/generateMenuMT.py
+athena -l DEBUG --threads=1 --skipEvents=10 --evtMax=20 --filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data17_13TeV.00327265.physics_EnhancedBias.merge.RAW._lb0100._SFO-1._0001.1" TriggerMenuMT/generateMT.py