diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py
index 1c825a2e14edccf195c570c24a826002dd216f74..913e9d4f2c575018ec3b34d49d6b76d14def9370 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT_newJO.py
@@ -8,14 +8,16 @@ def fillGeneratorsMap( sigMap, signature ):
     """ Fill the mapping from the flag container name to the function responsible for generating the Chain objects
     
     Here the files naming convention is employed: the chains mentioned in Trigger.menu.XYZ are served by the function in HLTMenuConfig.XYZ.generateChains"""
-    importString = "TriggerMenuMT.HLTMenuConfig."+signature.capitalize()+".generate"+signature.capitalize() #+ " import "
+
+    capitalizedSignature = signature.capitalize()
+    importString = 'TriggerMenuMT.HLTMenuConfig.{}.generate{}'.format(capitalizedSignature, capitalizedSignature)
 
     try:
-        gen = __import__(importString, globals(), locals(), ["generateChains"])
+        gen = __import__(importString, globals(), locals(), ['generateChains'])
         sigMap[signature] = gen.generateChains
-        _log.info( "imported generator for %s" % signature )
+        _log.info( 'Imported generator for %s' % signature )
     except Exception as ex:
-        _log.warning(  "Cant import "+ signature + " "+ str(ex) )
+        _log.warning( 'Cant import {} {}'.format(signature, ex) )
 
     
 
@@ -24,41 +26,85 @@ def generateMenu( flags ):
     Using flags generate appropriate Control Flow Graph wiht all HLT algorithms
     """
 
-    # join flags
-    menuFlags = [f.get() for name, f in flags._flagdict.iteritems() if "Trigger.menu." in name ] 
-    flatMenu = reduce( lambda x,y: x+y, menuFlags, [] )
-    
-    
     # convert to chainDefs
     from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName
     toChainDictTranslator = DictFromChainName()
-    flatChainDicts = [ toChainDictTranslator.getChainDict( chain ) for chain in flatMenu ]
 
-    for counter, d in enumerate( flatChainDicts, 1 ) :
-        d["chainCounter"] = counter
-        # todo topo threshold        
-
-    _log.info("Translated menu flags to chainDicts")
-    
-    # import signature fragments and fill the map[signature, generating function]
+    flatChainDicts = []
+    counter = 0
     signatureToGenerator = {}
-    signatures = [ name.split('.')[-1]  for name in flags._flagdict.iterkeys() if "Trigger.menu." in name ]
-    for s in signatures:
-        fillGeneratorsMap( signatureToGenerator, s )
-    _log.info("Retrieved generators")
-        
-    # for each chain call generating function and pass to CF builder
     menuChains = []
-    for chain in flatChainDicts:
-        if chain["signature"] in signatureToGenerator:
-            menuChains.append(  signatureToGenerator[ chain["signature"] ]( flags, chain ) )
-        else:
-            _log.warning( "Missing generator for the chain " + chain["chainName"] )
-    
-    _log.info( "Obtained Menu Chain objects" )
+
+    for name, cfgFlag in flags._flagdict.iteritems():
+        if not 'Trigger.menu.' in name:
+            continue
+
+        # fill the map[signature, generating function]
+        variableName = name.split('.')[-1]
+        fillGeneratorsMap( signatureToGenerator, variableName )
+
+        print(cfgFlag.get())
+
+        for chain in cfgFlag.get():
+
+            chainDict = toChainDictTranslator.getChainDict( chain )
+
+            counter += 1
+            chainDict['chainCounter'] = counter
+            # todo topo threshold
+
+            flatChainDicts.append( chainDict )
+
+            # call generating function and pass to CF builder
+            if variableName in signatureToGenerator:
+                menuChains.append( signatureToGenerator[variableName](flags, chainDict) )
+            else:
+                _log.warning('Missing generator for the chain {}'.format(chainDict['chainName']))
+
+    _log.info('Obtained Menu Chain objects')
+
     # pass all menuChain to CF builder
 
-    _log.info( "CF is built" )
+    _log.info('CF is built')
+
+###########################################################################################################
+    # # join flags
+    # menuFlags = [f.get() for name, f in flags._flagdict.iteritems() if "Trigger.menu." in name ]
+    # flatMenu = reduce( lambda x,y: x+y, menuFlags, [] )
+    #
+    # # convert to chainDefs
+    # from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import DictFromChainName
+    # toChainDictTranslator = DictFromChainName()
+    # flatChainDicts = [ toChainDictTranslator.getChainDict( chain ) for chain in flatMenu ]
+    #
+    # for counter, d in enumerate( flatChainDicts, 1 ) :
+    #     d["chainCounter"] = counter
+    #     # todo topo threshold
+
+    # _log.info("Translated menu flags to chainDicts")
+###########################################################################################################
+
+
+
+    # # import signature fragments and fill the map[signature, generating function]
+    # signatureToGenerator = {}
+    # signatures = [ name.split('.')[-1]  for name in flags._flagdict.iterkeys() if 'Trigger.menu.' in name ]
+    # for s in signatures:
+    #     fillGeneratorsMap( signatureToGenerator, s )
+    # _log.info('Retrieved generators')
+        
+    # # for each chain call generating function and pass to CF builder
+    # menuChains = []
+    # for chain in flatChainDicts:
+    #     if chain['sourceVariableName'] in signatureToGenerator:
+    #         menuChains.append(  signatureToGenerator[ chain['sourceVariableName'] ]( flags, chain ) )
+    #     else:
+    #         _log.warning( 'Missing generator for the chain ' + chain['chainName'] )
+    
+    # _log.info( 'Obtained Menu Chain objects' )
+    # # pass all menuChain to CF builder
+    #
+    # _log.info( 'CF is built' )
             
     return None # will return once the CF build is realy invoked
 
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 bedea49a677918d0a662a5dc83756f67f7a40594..59cb2d37984875ab85bed01f1f0334f79012c84e 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
@@ -41,8 +41,8 @@ def setupMenu(flags):
 
 
 if __name__ == "__main__":
-    print "Hello"
-    from AthenaConfiguration.AllConfigFlags import ConfigFlags    
+
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags
     setupMenu(ConfigFlags)
     ConfigFlags.lock()
     ConfigFlags.dump()