diff --git a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py
index 2128d558049eb56d569bc8d5333d7f2f76a42237..51d077de157b634b7b52ed856df1424248f3c428 100755
--- a/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py
+++ b/Trigger/TrigAlgorithms/TrigFastTrackFinder/python/TrigFastTrackFinder_Config.py
@@ -409,35 +409,32 @@ class TrigFastTrackFinder_Cosmic_Monitoring(TrigFastTrackFinder_CommonMonitoring
                                              title="Number of Tracks",
                                              xbins = 100, xmin=-0.5, xmax=99.5)]
 
-def remapper(type):
-    #this funcion should not be needed - we don't have to remap in both directions
-    remap  = {
-        "Muon"     : "muon",
-        "MuonCore" : "muonCore",
-        "MuonIso"  : "muonIso",
-        "eGamma"   : "electron",
-        "Tau"      : "tau",
-        "TauCore"  : "tauCore",
-        "TauIso"   : "tauIso",
-        "Jet"      : "bjet",
-        #"Jet"      : "bjetVtx",
-        "FullScan" : "fullScan",
-        "BeamSpot" : "beamSpot",
-        "Bphysics" : "bphysics",
-        "Cosmic"   : "cosmics",
-        "MinBias"  : "minBias400"
-    }
-    if type in remap.keys():
-      return remap[type]
-    else:
-      return type
-
+remap  = {
+    "Muon"     : "muon",
+    "MuonFS"   : "muon",
+    "MuonCore" : "muonCore",
+    "MuonIso"  : "muonIso",
+    "eGamma"   : "electron",
+    "Electron" : "electron",
+    "Tau"      : "tau",
+    "TauCore"  : "tauCore",
+    "TauIso"   : "tauIso",
+    "Jet"      : "bjet",
+    "FS"       : "bjet",
+    #"Jet"      : "bjetVtx",
+    "FullScan" : "fullScan",
+    "BeamSpot" : "beamSpot",
+    "Bphysics" : "bphysics",
+    "Cosmic"   : "cosmics",
+    "MinBias"  : "minBias400"
+}
 
 class TrigFastTrackFinderBase(TrigFastTrackFinder):
     __slots__ = []
     def __init__(self, name, type):
         TrigFastTrackFinder.__init__(self,name)
-        remapped_type = remapper(type)
+        remapped_type = remap[type]
+        assert(remapped_type!=None)
 
         self.retrieveBarCodes = False#Look at truth information for spacepoints from barcodes
         #self.SignalBarCodes = [10001] #single particles
@@ -486,7 +483,7 @@ class TrigFastTrackFinderBase(TrigFastTrackFinder):
           spTool.layerNumberTool = numberingTool
           ToolSvc += spTool
           self.SpacePointProviderTool=spTool
-          self.MinSPs = 5 #Only process RoI with more than 5 spacepoints 
+          self.MinHits = 5 #Only process RoI with more than 5 spacepoints
           
           self.Triplet_MinPtFrac = 1
           self.Triplet_nMaxPhiSlice = 53
@@ -652,3 +649,4 @@ class TrigFastTrackFinder_FTKMon(TrigFastTrackFinderBase):
 class TrigFastTrackFinder_MinBias(TrigFastTrackFinderBase):
   def __init__(self, name = "TrigFastTrackFinder_MinBias"):
     TrigFastTrackFinderBase.__init__(self, "TrigFastTrackFinder_MinBias","MinBias")
+
diff --git a/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx b/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx
index d217d6e0fb5c5f6987239325326158ba73027fba..555374b8c78842911fb781ea29e7542e4b463883 100644
--- a/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx
+++ b/Trigger/TrigAlgorithms/TrigFastTrackFinder/src/TrigFastTrackFinder.cxx
@@ -162,6 +162,7 @@ TrigFastTrackFinder::TrigFastTrackFinder(const std::string& name, ISvcLocator* p
   declareProperty( "initialTrackMaker", m_trackMaker);
   declareProperty( "trigInDetTrackFitter",   m_trigInDetTrackFitter );
   declareProperty( "trigZFinder",   m_trigZFinder );
+  declareProperty( "TrigL2ResidualCalculator",   m_trigZFinder );
 
   declareProperty("TrackSummaryTool", m_trackSummaryTool);
   declareProperty( "TrigL2SpacePointTruthTool", m_TrigL2SpacePointTruthTool);
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
index 4535d8334f5caaf282ae705807cd52f2db925f8a..5335a4ae6202a4dd9ab55d83c1324bf35c29a6bd 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
@@ -55,13 +55,6 @@ def bJetStep1Sequence():
 #            TrackParticlesName = viewAlg.TrackParticlesName # why we need this?
             TrackCollection = viewAlg.TrackName
 
-    from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_Jet    
-    theFTF_Jet = TrigFastTrackFinder_Jet()
-    theFTF_Jet.isRoI_Seeded = True
-    theFTF_Jet.RoIs = RoIs
-    theFTF_Jet.TracksName=TrackCollection
-    viewAlgs.append( theFTF_Jet )
-
     # Primary Vertex 
     from TrigT2HistoPrmVtx.TrigT2HistoPrmVtxAllTEMTConfig import EFHistoPrmVtxAllTEMT_Jet
     prmVtx = EFHistoPrmVtxAllTEMT_Jet( "EFHistoPrmVtxAllTEMT_Jet" ) 
@@ -125,13 +118,6 @@ def bJetStep1SequenceALLTE():
 #            TrackParticlesName = viewAlg.TrackParticlesName # why we need this?
             TrackCollection = viewAlg.TrackName
 
-    from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_Jet    
-    theFTF_Jet = TrigFastTrackFinder_Jet()
-    theFTF_Jet.isRoI_Seeded = True
-    theFTF_Jet.RoIs = RoIs
-    theFTF_Jet.TracksName=TrackCollection
-    viewAlgs.append( theFTF_Jet )
-
     # Primary Vertex 
     from TrigT2HistoPrmVtx.TrigT2HistoPrmVtxAllTEMTConfig import EFHistoPrmVtxAllTEMT_Jet
     prmVtx = EFHistoPrmVtxAllTEMT_Jet( "EFHistoPrmVtxAllTEMT_Jet" )
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/InDetSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/InDetSetup.py
index 076e1b1c9153ef7fc72f736d0ba33007bdab9f0e..86dfd9da10ad56e50344d738142f495956b2d15b 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/InDetSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/CommonSequences/InDetSetup.py
@@ -260,6 +260,13 @@ def makeInDetAlgs( whichSignature='', separateTrackParticleCreator='' ):
       from SiSpacePointFormation.SiSpacePointFormationConf import InDet__SiElementPropertiesTableCondAlg
       condSeq += InDet__SiElementPropertiesTableCondAlg(name = "InDetSiElementPropertiesTableCondAlg")
 
+  from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinderBase
+  theFTF = TrigFastTrackFinderBase("TrigFastTrackFinder_" + whichSignature, whichSignature)
+  theFTF.TracksName = "TrigFastTrackFinder_Tracks" + separateTrackParticleCreator
+  viewAlgs.append(theFTF)
+
+
+
   from TrigInDetConf.TrigInDetPostTools import  InDetTrigParticleCreatorToolFTF
   from TrigEDMConfig.TriggerEDMRun3 import recordable
   from InDetTrigParticleCreation.InDetTrigParticleCreationConf import InDet__TrigTrackingxAODCnvMT
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py
index e78adeea2450c14bc008d04334aac001332a6eee..6fcc428fc3819827018d1bd3449fc9106ef9d3e4 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Egamma/ElectronSequenceSetup.py
@@ -15,12 +15,7 @@ def fastElectronSequence(ConfigFlags):
     """ second step:  tracking....."""
     
     from TriggerMenuMT.HLTMenuConfig.CommonSequences.InDetSetup import makeInDetAlgs
-    (viewAlgs, eventAlgs) = makeInDetAlgs( separateTrackParticleCreator="_Electron")
-    from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_eGamma
-
-    theFTF = TrigFastTrackFinder_eGamma()
-    theFTF.isRoI_Seeded = True
-    viewAlgs.append(theFTF)
+    (viewAlgs, eventAlgs) = makeInDetAlgs(whichSignature = "Electron", separateTrackParticleCreator="_Electron")
 
 
     # A simple algorithm to confirm that data has been inherited from parent view
@@ -35,8 +30,6 @@ def fastElectronSequence(ConfigFlags):
         if "InDetTrigTrackParticleCreatorAlg" in viewAlg.name():
             TrackParticlesName = viewAlg.TrackParticlesName
             TrackCollection = viewAlg.TrackName
-
-    theFTF.TracksName=TrackCollection
       
     from TrigEgammaHypo.TrigL2ElectronFexMTConfig import L2ElectronFex_1
     theElectronFex= L2ElectronFex_1()
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
index 10e2ce12366c5ed98727815247748ad4b7cb758f..9c7c3651587c5376b66d5891d2c9743ab4d9c928 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py
@@ -365,12 +365,6 @@ def muonIDFastTrackingSequence( RoIs ):
   from TriggerMenuMT.HLTMenuConfig.CommonSequences.InDetSetup import makeInDetAlgs
   (viewAlgs, eventAlgs) = makeInDetAlgs("Muon")
 
-
-  from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_Muon
-  theFTF_Muon = TrigFastTrackFinder_Muon()
-  theFTF_Muon.isRoI_Seeded = True
-  viewAlgs.append(theFTF_Muon)
-
   ### A simple algorithm to confirm that data has been inherited from parent view ###
   ### Required to satisfy data dependencies                                       ###
   ViewVerify = CfgMgr.AthViews__ViewDataVerifier("muFastViewDataVerifier")
@@ -388,10 +382,10 @@ def muonIDFastTrackingSequence( RoIs ):
       if "InDetTrigTrackParticleCreatorAlg" in  viewAlg.name():
           TrackParticlesName = viewAlg.TrackParticlesName
           TrackCollection = viewAlg.TrackName
+      if "TrigFastTrackFinder" in  viewAlg.name():
+          theFTF_name = viewAlg.getName()
 
-  theFTF_Muon.TracksName=TrackCollection
-
-  return muonIDFastTrackingSequence, eventAlgs, TrackParticlesName, theFTF_Muon.getName()
+  return muonIDFastTrackingSequence, eventAlgs, TrackParticlesName, theFTF_name
 
 def muCombRecoSequence( RoIs ):
 
@@ -614,11 +608,6 @@ def muEFCBRecoSequence( RoIs, name ):
     from TriggerMenuMT.HLTMenuConfig.CommonSequences.InDetSetup import makeInDetAlgs
     (viewAlgs, eventAlgs) = makeInDetAlgs("MuonFS") 
 
-    from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_MuonFS
-    theFTF_Muon = TrigFastTrackFinder_MuonFS()
-    theFTF_Muon.isRoI_Seeded = True
-    viewAlgs.append(theFTF_Muon)
-
      #TrackParticlesName = ""
     for viewAlg in viewAlgs:
       muEFCBRecoSequence += viewAlg
@@ -630,7 +619,6 @@ def muEFCBRecoSequence( RoIs, name ):
         TrackParticlesName = viewAlg.TrackParticlesName  # noqa: F841
         TrackCollection = viewAlg.TrackName
 
-    theFTF_Muon.TracksName=TrackCollection
   else:
     TrackCollection="TrigFastTrackFinder_Tracks_Muon" # this is hacking, please FIX IT
     ViewVerifyTrk = CfgMgr.AthViews__ViewDataVerifier("muonCBIDViewDataVerifier")
@@ -852,11 +840,6 @@ def efmuisoRecoSequence( RoIs, Muons ):
   from TriggerMenuMT.HLTMenuConfig.CommonSequences.InDetSetup import makeInDetAlgs
   (viewAlgs, eventAlgs) = makeInDetAlgs("MuonIso")
 
-  from TrigFastTrackFinder.TrigFastTrackFinder_Config import TrigFastTrackFinder_MuonIso
-  theFTF_Muon = TrigFastTrackFinder_MuonIso()
-  theFTF_Muon.isRoI_Seeded = True
-  viewAlgs.append(theFTF_Muon)
-
   #TrackParticlesName = ""
   for viewAlg in viewAlgs:
     efmuisoRecoSequence += viewAlg
@@ -868,8 +851,6 @@ def efmuisoRecoSequence( RoIs, Muons ):
         TrackParticlesName = viewAlg.TrackParticlesName  # noqa: F841
         TrackCollection = viewAlg.TrackName
 
-  theFTF_Muon.TracksName=TrackCollection
-  
   #Precision Tracking
   PTAlgs = [] #List of precision tracking algs
   PTTracks = [] #List of TrackCollectionKeys