diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/CMakeLists.txt b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/CMakeLists.txt
index 4bf979636196ee86b5cb0a825bb4d4e51771535d..932ed162555eacf93fe5d770b20833ac345a547d 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/CMakeLists.txt
+++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/CMakeLists.txt
@@ -29,6 +29,8 @@ atlas_depends_on_subdirs( PRIVATE
                           MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerInterfaces
                           MuonSpectrometer/MuonReconstruction/MuonSegmentMakers/MuonSegmentMakerUtils
                           MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerUtils
+			  Reconstruction/MuonIdentification/MuidInterfaces
+			  Tracking/TrkFitter/TrkFitterInterfaces
                           Tracking/TrkDetDescr/TrkDetDescrInterfaces
                           Tracking/TrkDetDescr/TrkDetElementBase
                           Tracking/TrkDetDescr/TrkGeometry
@@ -46,7 +48,6 @@ atlas_depends_on_subdirs( PRIVATE
 			  Tracking/TrkEvent/TrkSegment
                           Tracking/TrkEvent/TrkTrackSummary
                           Tracking/TrkExtrapolation/TrkExInterfaces
-                          Tracking/TrkFitter/TrkFitterInterfaces
                           Tracking/TrkTools/TrkToolInterfaces
                           Tracking/TrkUtilityPackages/TrkDriftCircleMath 
 			  MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondData
@@ -63,5 +64,5 @@ atlas_add_component( MuonTrackFinderTools
                      src/*.cxx
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests GeoPrimitives IRegionSelector Identifier RoiDescriptor EventPrimitives GaudiKernel MuonAlignErrorBase MuonReadoutGeometry MuonIdHelpersLib MuonCompetingRIOsOnTrack MuonPrepRawData MuonRIO_OnTrack MuonSegment MuonRecHelperToolsLib MuonRecToolInterfaces MuonStationIntersectSvcLib MuonSegmentMakerUtils TrkDetDescrInterfaces TrkDetElementBase TrkGeometry TrkSurfaces TrkVolumes TrkEventPrimitives TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParameters TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkRoad TrkTrack TrkSegment TrkTrackSummary TrkExInterfaces TrkFitterInterfaces TrkToolInterfaces TrkDriftCircleMath MuonCondData MagFieldElements MagFieldConditions )
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests GeoPrimitives IRegionSelector Identifier RoiDescriptor EventPrimitives GaudiKernel MuonAlignErrorBase MuonReadoutGeometry MuonIdHelpersLib MuonCompetingRIOsOnTrack MuonPrepRawData MuonRIO_OnTrack MuonSegment MuonRecHelperToolsLib MuonRecToolInterfaces MuonStationIntersectSvcLib MuonSegmentMakerUtils MuidInterfaces TrkFitterInterfaces TrkDetDescrInterfaces TrkDetElementBase TrkGeometry TrkSurfaces TrkVolumes TrkEventPrimitives TrkEventUtils TrkMaterialOnTrack TrkMeasurementBase TrkParameters TrkPseudoMeasurementOnTrack TrkRIO_OnTrack TrkRoad TrkTrack TrkSegment TrkTrackSummary TrkExInterfaces TrkToolInterfaces TrkDriftCircleMath MuonCondData MagFieldElements MagFieldConditions )
 
diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx
index ea830fb8022abbfbb6d71eb45ea01e267727b2a6..25e9f71b172813714f55066d6882d3479ce533b4 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx
+++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.cxx
@@ -77,7 +77,14 @@ StatusCode MuonSegmentRegionRecoveryTool::initialize()
 
   ATH_CHECK( m_chamberHoleRecoveryTool.retrieve() );
   ATH_CHECK( m_extrapolator.retrieve() );
-  ATH_CHECK( m_fitter.retrieve() );
+  if(m_onlyEO){
+    ATH_CHECK( m_fitter.retrieve() );
+    m_builder.disable();
+  }
+  else{
+    m_fitter.disable();
+    ATH_CHECK( m_builder.retrieve() );
+  }
   ATH_CHECK( m_idHelperSvc.retrieve() );
   ATH_CHECK( m_hitSummaryTool.retrieve() );
   ATH_CHECK( m_regsel_mdt.retrieve() );
@@ -1062,7 +1069,9 @@ const Trk::Track* MuonSegmentRegionRecoveryTool::addMissingChambers( const Trk::
 
     ATH_MSG_DEBUG("Creating new Track " << newStates.size());
     Trk::Track* newTrack =  new Trk::Track( track.info(), trackStateOnSurfaces, track.fitQuality() ? track.fitQuality()->clone() : 0 );
-    const Trk::Track* refittedTrack = m_fitter->fit(*newTrack, m_useFitterOutlierLogic, Trk::muon);
+    const Trk::Track* refittedTrack;
+    if(m_onlyEO) refittedTrack=m_fitter->fit(*newTrack, m_useFitterOutlierLogic, Trk::muon);
+    else refittedTrack=m_builder->fit(*newTrack, m_useFitterOutlierLogic, Trk::muon);
     delete newTrack;
     if ( refittedTrack ) {
       ATH_MSG_DEBUG("New Track " << m_printer->print(*refittedTrack) << std::endl << m_printer->printStations(*refittedTrack) );
diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.h b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.h
index 01c81aba57843c0ec3e87395b4852dc607f6fca6..5ae1646ca315a1b352b6e335e6a19a8e3047bc2f 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.h
+++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonSegmentRegionRecoveryTool.h
@@ -27,6 +27,7 @@
 #include "TrkToolInterfaces/ITrackHoleSearchTool.h"
 #include "TrkToolInterfaces/IResidualPullCalculator.h"
 #include "TrkFitterInterfaces/ITrackFitter.h"
+#include "MuidInterfaces/ICombinedMuonTrackBuilder.h"
 #include "MuonChamberHoleRecoveryTool.h"
 #include "MuonRecToolInterfaces/IMuonSeededSegmentFinder.h"
 #include "MuonChamberHoleRecoveryTool.h"
@@ -155,8 +156,10 @@ namespace Muon {
       {this, "ChamberHoleRecoveryTool", "Muon::MuonChamberHoleRecoveryTool/MuonChamberHoleRecoveryTool"};            //<! hit-based hole search
     ToolHandle<Trk::IExtrapolator>        m_extrapolator
       {this, "Extrapolator", "Trk::Extrapolator/MuonExtrapolator"};            
+    ToolHandle<Rec::ICombinedMuonTrackBuilder>        m_builder
+      {this, "Builder", "Rec::CombinedMuonTrackBuilder/CombinedMuonTrackBuilder"};
     ToolHandle<Trk::ITrackFitter>        m_fitter
-      {this, "Fitter", "Rec::CombinedMuonTrackBuilder/CombinedMuonTrackBuilder"};            
+      {this, "Fitter", "Trk::GlobalChi2Fitter/MCTBSLFitter"};
     ServiceHandle<MuonStationIntersectSvc>        m_intersectSvc
       {this, "MuonStationIntersectSvc", "MuonStationIntersectSvc"};            
     ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
diff --git a/Reconstruction/MuonIdentification/MuidInterfaces/MuidInterfaces/ICombinedMuonTrackBuilder.h b/Reconstruction/MuonIdentification/MuidInterfaces/MuidInterfaces/ICombinedMuonTrackBuilder.h
index 8929888254cc3089f2183aea7e724bc149250db0..621e06379ee670f295a4a35247e61ee9d41e5da4 100755
--- a/Reconstruction/MuonIdentification/MuidInterfaces/MuidInterfaces/ICombinedMuonTrackBuilder.h
+++ b/Reconstruction/MuonIdentification/MuidInterfaces/MuidInterfaces/ICombinedMuonTrackBuilder.h
@@ -15,9 +15,9 @@
 #define MUIDINTERFACES_ICOMBINEDMUONTRACKBUILDER_H
 
 #include "GaudiKernel/IAlgTool.h"
-#include "TrkFitterInterfaces/ITrackFitter.h"
 #include "TrkFitterUtils/FitterTypes.h"
 #include "TrkParameters/TrackParameters.h"
+#include "TrkEventPrimitives/ParticleHypothesis.h"
 
 namespace Trk
 {
@@ -37,8 +37,7 @@ Base class for CombinedMuonTrackBuilder AlgTool
      
 @author Alan.Poppleton@cern.ch
 */
-    class ICombinedMuonTrackBuilder : virtual public IAlgTool,
-				      virtual public Trk::ITrackFitter
+    class ICombinedMuonTrackBuilder : virtual public IAlgTool
 {
 public:
 
@@ -73,67 +72,9 @@ public:
     virtual Trk::Track*		standaloneRefit	(const Trk::Track&	combinedTrack, 
                                                  float bs_x = 0., float bs_y = 0., float bs_z = 0.) const = 0;
 
-
-     /*
-      * Default implement the ITrackFitter context aware method to just call
-      * the no-context ones
-      */
-      using Trk::ITrackFitter::fit;
-      virtual std::unique_ptr<Trk::Track> fit(
-        const EventContext&,
-        const Trk::Track& track,
-        const Trk::RunOutlierRemoval runOutlier = false,
-        const Trk::ParticleHypothesis matEffects = Trk::nonInteracting) const
-      {
-        return std::unique_ptr<Trk::Track>(fit(track, runOutlier, matEffects));
-      }
-      virtual std::unique_ptr<Trk::Track> fit(
-        const EventContext&,
-        const Trk::Track& track,
-        const Trk::PrepRawDataSet& prepRawSet,
-        const Trk::RunOutlierRemoval runOutlier = false,
-        const Trk::ParticleHypothesis matEffects = Trk::nonInteracting) const
-      {
-        return std::unique_ptr<Trk::Track>(fit(track, prepRawSet, runOutlier, matEffects));
-      }
-      virtual std::unique_ptr<Trk::Track> fit(
-        const EventContext&,
-        const Trk::PrepRawDataSet& prepRawSet,
-        const Trk::TrackParameters& params,
-        const Trk::RunOutlierRemoval runOutlier = false,
-        const Trk::ParticleHypothesis matEffects = Trk::nonInteracting) const
-      {
-        return std::unique_ptr<Trk::Track>(fit(prepRawSet, params, runOutlier, matEffects));
-      }
-      virtual std::unique_ptr<Trk::Track> fit(
-        const EventContext&,
-        const Trk::Track& track,
-        const Trk::MeasurementSet& measSet,
-        const Trk::RunOutlierRemoval runOutlier = false,
-        const Trk::ParticleHypothesis matEffects = Trk::nonInteracting) const
-      {
-         return std::unique_ptr<Trk::Track>(fit(track, measSet, runOutlier, matEffects));
-      }
-      virtual std::unique_ptr<Trk::Track> fit(
-        const EventContext&,
-        const Trk::MeasurementSet& measSet,
-        const Trk::TrackParameters& params,
-        const Trk::RunOutlierRemoval runOutlier = false,
-        const Trk::ParticleHypothesis matEffects = Trk::nonInteracting) const
-      {
-        return std::unique_ptr<Trk::Track>(fit(measSet, params, runOutlier, matEffects));
-      }
-      virtual std::unique_ptr<Trk::Track> fit(
-        const EventContext&,
-        const Trk::Track& track1,
-        const Trk::Track& track2,
-        const Trk::RunOutlierRemoval runOutlier = false,
-        const Trk::ParticleHypothesis matEffects = Trk::nonInteracting) const
-      {
-
-        return std::unique_ptr<Trk::Track>(fit(track1, track2, runOutlier, matEffects));
-      }
-    //End of default implementing of context aware methods 
+    /*refit a track*/
+    virtual Trk::Track* fit(Trk::Track& track, const Trk::RunOutlierRemoval runOutlier = false,
+                    const Trk::ParticleHypothesis particleHypothesis = Trk::muon) const = 0;
 
 
 };
diff --git a/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/CombinedMuonTrackBuilder.h b/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/CombinedMuonTrackBuilder.h
index 92a9f33d4c139265f9ace28b0bdb886157a73585..2d12aad72c002a73ca54badba1c58afa9f67bc4a 100755
--- a/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/CombinedMuonTrackBuilder.h
+++ b/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/CombinedMuonTrackBuilder.h
@@ -7,7 +7,7 @@
 //  AlgTool gathering  material effects along a combined muon track, in
 //  particular the TSOS'es representing the calorimeter energy deposit and
 //  Coulomb scattering.
-//  The resulting track is fitted at the IP using the ITrackFitter interface.
+//  The resulting track is fitted at the IP
 //
 //  (c) ATLAS Combined Muon software
 //////////////////////////////////////////////////////////////////////////////
@@ -39,6 +39,7 @@
 #include "TrkExInterfaces/IExtrapolator.h"
 #include "TrkExInterfaces/IIntersector.h"
 #include "TrkExInterfaces/IPropagator.h"
+#include "TrkFitterInterfaces/ITrackFitter.h"
 #include "TrkGeometry/MagneticFieldProperties.h"
 #include "TrkParameters/TrackParameters.h"
 #include "TrkToolInterfaces/ITrackSummaryTool.h"
@@ -91,53 +92,21 @@ class CombinedMuonTrackBuilder : public AthAlgTool, virtual public ICombinedMuon
         refit a track removing any indet measurements with optional addition of pseudoMeasurements */
     Trk::Track* standaloneRefit(const Trk::Track& combinedTrack, float bs_x, float bs_y, float bs_z) const;
 
-    /** ITrackFitter interface:
-     *    
-     * Bring in default impl with
-     * EventContext for now
-     */
     using ICombinedMuonTrackBuilder::fit;
 
     /*refit a track */
-    Trk::Track* fit(const Trk::Track& track, const Trk::RunOutlierRemoval runOutlier = false,
+    Trk::Track* fit(Trk::Track& track, const Trk::RunOutlierRemoval runOutlier = false,
                     const Trk::ParticleHypothesis particleHypothesis = Trk::muon) const;
 
-    /**ITrackFitter interface:
-    refit a track adding a PrepRawDataSet */
-    Trk::Track* fit(const Trk::Track& /*track*/, const Trk::PrepRawDataSet& /*rawDataSet*/,
-                    const Trk::RunOutlierRemoval /*runOutlier*/,
-                    const Trk::ParticleHypothesis /*particleHypothesis*/) const
-    {
-        return interfaceNotImplemented();
-    };
-
-    /** ITrackFitter interface:
-        fit a set of PrepRawData objects */
-    Trk::Track* fit(const Trk::PrepRawDataSet&, const Trk::TrackParameters& /*perigeeStartValue*/,
-                    const Trk::RunOutlierRemoval /*runOutlier*/,
-                    const Trk::ParticleHypothesis /*particleHypothesis*/) const
-    {
-        return interfaceNotImplemented();
-    };
-
-    /** ITrackFitter interface:
-        refit a track adding a MeasurementSet */
-    Trk::Track* fit(const Trk::Track& /*track*/, const Trk::MeasurementSet& /*measurementSet*/,
-                    const Trk::RunOutlierRemoval /*runOutlier*/,
-                    const Trk::ParticleHypothesis /*particleHypothesis*/) const
-    {
-        return interfaceNotImplemented();
-    };
-
-    /** ITrackFitter interface:
+    /** 
         fit a set of MeasurementBase objects with starting value for perigeeParameters */
     Trk::Track* fit(const Trk::MeasurementSet& /*measurementSet*/, const Trk::TrackParameters& /*perigeeStartValue*/,
                     const Trk::RunOutlierRemoval /*runOutlier*/,
                     const Trk::ParticleHypothesis /*particleHypothesis*/) const;
 
-    /** ITrackFitter interface:
+    /** 
         combined muon fit */
-    Trk::Track* fit(const Trk::Track& indetTrack, const Trk::Track& extrapolatedTrack,
+    Trk::Track* fit(const Trk::Track& indetTrack, Trk::Track& extrapolatedTrack,
                     const Trk::RunOutlierRemoval  runOutlier         = false,
                     const Trk::ParticleHypothesis particleHypothesis = Trk::muon) const;
 
diff --git a/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/OutwardsCombinedMuonTrackBuilder.h b/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/OutwardsCombinedMuonTrackBuilder.h
index e0d64a4a6fda259683ca739594165ce2817bed40..2d9fa769951dc672891ce95f6cc6c2d4c6d1bab3 100644
--- a/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/OutwardsCombinedMuonTrackBuilder.h
+++ b/Reconstruction/MuonIdentification/MuidTrackBuilder/MuidTrackBuilder/OutwardsCombinedMuonTrackBuilder.h
@@ -24,6 +24,7 @@
 #include "MuonRecToolInterfaces/IMuonTrackCleaner.h"
 #include "TrkDetDescrInterfaces/ITrackingVolumesSvc.h"
 #include "TrkParameters/TrackParameters.h"
+#include "TrkFitterInterfaces/ITrackFitter.h"
 #include "TrkToolInterfaces/ITrackSummaryTool.h"
 #include "TrkTrack/TrackInfo.h"
 
@@ -80,27 +81,13 @@ class OutwardsCombinedMuonTrackBuilder : public AthAlgTool, virtual public IComb
         according to original extrapolation */
     Trk::Track* standaloneRefit(const Trk::Track& combinedTrack, float bs_x, float bs_y, float bs_z) const;
     
-    /** ITrackFitter interface:
-     *    
-     * Bring in default impl with
-     * EventContext for now
-     */
-  
     using ICombinedMuonTrackBuilder::fit;
     /** refit a track */
-    Trk::Track* fit(const Trk::Track& track, const Trk::RunOutlierRemoval runOutlier = false,
+    Trk::Track* fit(Trk::Track& track, const Trk::RunOutlierRemoval runOutlier = false,
                     const Trk::ParticleHypothesis particleHypothesis = Trk::muon) const;
 
-    /** ITrackFitter interface:
-        refit a track adding a PrepRawDataSet */
-    Trk::Track* fit(const Trk::Track& /*track*/, const Trk::PrepRawDataSet& /*rawDataSet*/,
-                    const Trk::RunOutlierRemoval /*runOutlier*/,
-                    const Trk::ParticleHypothesis /*particleHypothesis*/) const
-    {
-        return nullptr;
-    };
 
-    /**ITrackFitter interface:
+    /** 
     fit a set of PrepRawData objects */
     Trk::Track* fit(const Trk::PrepRawDataSet&, const Trk::TrackParameters& /*perigeeStartValue*/,
                     const Trk::RunOutlierRemoval /*runOutlier*/,
@@ -109,7 +96,7 @@ class OutwardsCombinedMuonTrackBuilder : public AthAlgTool, virtual public IComb
         return nullptr;
     };
 
-    /** ITrackFitter interface:
+    /** 
         refit a track adding a MeasurementSet */
     Trk::Track* fit(const Trk::Track& /*track*/, const Trk::MeasurementSet& /*measurementSet*/,
                     const Trk::RunOutlierRemoval /*runOutlier*/,
@@ -118,13 +105,13 @@ class OutwardsCombinedMuonTrackBuilder : public AthAlgTool, virtual public IComb
         return nullptr;
     };
 
-    /** ITrackFitter interface:
+    /** 
         fit a set of MeasurementBase objects with starting value for perigeeParameters */
     Trk::Track* fit(const Trk::MeasurementSet& /*measurementSet*/, const Trk::TrackParameters& /*perigeeStartValue*/,
                     const Trk::RunOutlierRemoval /*runOutlier*/,
                     const Trk::ParticleHypothesis /*particleHypothesis*/) const;
 
-    /** ITrackFitter interface:
+    /** 
         combined muon fit */
     Trk::Track* fit(const Trk::Track& indetTrack, const Trk::Track& extrapolatedTrack,
                     const Trk::RunOutlierRemoval  runOutlier         = false,
diff --git a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx
index bf8204a11ef21e6d31e30c5ba8a707356c7c0a99..6b05614defd116d398e2e214293a2d51328cc728 100755
--- a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx
+++ b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx
@@ -7,7 +7,7 @@
 //  AlgTool gathering  material effects along a combined muon track, in
 //  particular the TSOS'es representing the calorimeter energy deposit and
 //  Coulomb scattering.
-//  The resulting track is fitted at the IP using the ITrackFitter interface.
+//  The resulting track is fitted at the IP
 //
 //  (c) ATLAS Combined Muon software
 //////////////////////////////////////////////////////////////////////////////
@@ -132,7 +132,6 @@ CombinedMuonTrackBuilder::CombinedMuonTrackBuilder(const std::string& type, cons
     m_messageHelper = new MessageHelper(*this);
 
     declareInterface<ICombinedMuonTrackBuilder>(this);
-    declareInterface<Trk::ITrackFitter>(this);
     declareProperty("CaloEnergyParam", m_caloEnergyParam);
     declareProperty("CaloTSOS", m_caloTSOS);
     declareProperty("Cleaner", m_cleaner);
@@ -975,6 +974,7 @@ Trk::Track*
 CombinedMuonTrackBuilder::standaloneFit(const Trk::Track& inputSpectrometerTrack, const Trk::Vertex* inputVertex,
                                         float bs_x, float bs_y, float bs_z) const
 {
+
     MagField::AtlasFieldCache    fieldCache;
     // Get field cache object
     EventContext ctx = Gaudi::Hive::currentContext();
@@ -1623,7 +1623,7 @@ CombinedMuonTrackBuilder::standaloneFit(const Trk::Track& inputSpectrometerTrack
         ATH_MSG_VERBOSE("Refining Calorimeter TSOS in StandAlone Fit ...");
         std::unique_ptr<Trk::Track> oldTrack = std::make_unique<Trk::Track>(Trk::Track(*track));
 
-        m_materialUpdator->updateCaloTSOS(const_cast<Trk::Track&>(*track));
+        m_materialUpdator->updateCaloTSOS(*track);
 
         Trk::Track* refinedTrack = fit(*track, false, Trk::muon);
         if (refinedTrack) {
@@ -2254,9 +2254,9 @@ CombinedMuonTrackBuilder::standaloneRefit(const Trk::Track& combinedTrack, float
     return refittedTrack;
 }
 
-/** ITrackFitter interface: refit a track */
+/** refit a track */
 Trk::Track*
-CombinedMuonTrackBuilder::fit(const Trk::Track& track, const Trk::RunOutlierRemoval runOutlier,
+CombinedMuonTrackBuilder::fit(Trk::Track& track, const Trk::RunOutlierRemoval runOutlier,
                               const Trk::ParticleHypothesis particleHypothesis) const
 {
 
@@ -2311,7 +2311,7 @@ CombinedMuonTrackBuilder::fit(const Trk::Track& track, const Trk::RunOutlierRemo
         // run-2 schema, update default eloss with parametrised value
         if (m_useCaloTG) {
             ATH_MSG_VERBOSE("Updating Calorimeter TSOS in Muon Combined (re)Fit ...");
-            m_materialUpdator->updateCaloTSOS(const_cast<Trk::Track&>(track));
+            m_materialUpdator->updateCaloTSOS(track);
             caloAssociated = true;
         }
 
@@ -2366,7 +2366,7 @@ CombinedMuonTrackBuilder::fit(const Trk::Track& track, const Trk::RunOutlierRemo
         // Updates the calo TSOS with the ones from TG+corrections
         if (m_updateWithCaloTG && !m_useCaloTG && particleHypothesis == Trk::muon) {
             ATH_MSG_VERBOSE("Updating Calorimeter TSOS in Muon Standalone Fit ...");
-            m_materialUpdator->updateCaloTSOS(const_cast<Trk::Track&>(track));
+            m_materialUpdator->updateCaloTSOS(track);
         }
 
         // FIT
@@ -2452,7 +2452,7 @@ CombinedMuonTrackBuilder::fit(const Trk::Track& track, const Trk::RunOutlierRemo
     return fittedTrack;
 }
 
-/** ITrackFitter interface:
+/** 
     fit a set of MeasurementBase objects with starting value for perigeeParameters */
 Trk::Track*
 CombinedMuonTrackBuilder::fit(const Trk::MeasurementSet& measurementSet, const Trk::TrackParameters& perigeeStartValue,
@@ -2586,9 +2586,9 @@ CombinedMuonTrackBuilder::fit(const Trk::MeasurementSet& measurementSet, const T
 }
 
 
-/**ITrackFitter interface:  combined muon fit */
+/**combined muon fit */
 Trk::Track*
-CombinedMuonTrackBuilder::fit(const Trk::Track& indetTrack, const Trk::Track& extrapolatedTrack,
+CombinedMuonTrackBuilder::fit(const Trk::Track& indetTrack, Trk::Track& extrapolatedTrack,
                               const Trk::RunOutlierRemoval  runOutlier,
                               const Trk::ParticleHypothesis particleHypothesis) const
 {
@@ -2632,7 +2632,7 @@ CombinedMuonTrackBuilder::fit(const Trk::Track& indetTrack, const Trk::Track& ex
     // Updates the calo TSOS with the ones from TG+corrections
     if (m_updateWithCaloTG && !m_useCaloTG && particleHypothesis == Trk::muon) {
         ATH_MSG_VERBOSE("Updating Calorimeter TSOS in Muon Combined Fit ...");
-        m_materialUpdator->updateCaloTSOS(indetTrack, const_cast<Trk::Track&>(extrapolatedTrack));
+        m_materialUpdator->updateCaloTSOS(indetTrack, extrapolatedTrack);
     }
 
     // FIT
diff --git a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/OutwardsCombinedMuonTrackBuilder.cxx b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/OutwardsCombinedMuonTrackBuilder.cxx
index 5601441f387b03e62cd83f7f0e470ca18d7c4138..ee5260697a83b281de418d4850c13f2242af5946 100755
--- a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/OutwardsCombinedMuonTrackBuilder.cxx
+++ b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/OutwardsCombinedMuonTrackBuilder.cxx
@@ -53,7 +53,6 @@ OutwardsCombinedMuonTrackBuilder::OutwardsCombinedMuonTrackBuilder(const std::st
       m_addIDMSerrors(true)
 {
     declareInterface<ICombinedMuonTrackBuilder>(this);
-    declareInterface<Trk::ITrackFitter>(this);
     declareProperty("AllowCleanerVeto", m_allowCleanerVeto);
     declareProperty("CleanCombined", m_cleanCombined);
     declareProperty("RecoverCombined", m_recoverCombined);
@@ -363,9 +362,9 @@ OutwardsCombinedMuonTrackBuilder::standaloneRefit(const Trk::Track& combinedTrac
 }
 
 
-/** ITrackFitter interface: refit a track */
+/** refit a track */
 Trk::Track*
-OutwardsCombinedMuonTrackBuilder::fit(const Trk::Track& track, const Trk::RunOutlierRemoval runOutlier,
+OutwardsCombinedMuonTrackBuilder::fit(Trk::Track& track, const Trk::RunOutlierRemoval runOutlier,
                                       const Trk::ParticleHypothesis particleHypothesis) const
 {
     // check valid particleHypothesis
diff --git a/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py b/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py
index 4dbcbe7129d0904d81074bd236d60b8edb59c346..4789539dc431d571ebcc20c689a6eff6c4131897 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py
+++ b/Reconstruction/MuonIdentification/MuonCombinedConfig/python/MuonCombinedRecToolsConfig.py
@@ -500,7 +500,7 @@ def MuonTrackQueryCfg(flags, name="MuonTrackQuery", **kwargs ):
 
 def MuidSegmentRegionRecoveryToolCfg(flags, name ='MuidSegmentRegionRecoveryTool', **kwargs ):
     result = CombinedMuonTrackBuilderFitCfg(flags)
-    kwargs.setdefault("Fitter",  result.popPrivateTools() )
+    kwargs.setdefault("Builder",  result.popPrivateTools() )
     tool = CompFactory.Muon.MuonSegmentRegionRecoveryTool(name,**kwargs)
     result.setPrivateTools(tool)
     return result
diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedFitTools.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedFitTools.py
index 784b26b802571f3c6035e78f759f1d20630e0600..3f49316625f8f16a3f4c3332d15d5b457d081308 100644
--- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedFitTools.py
+++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedFitTools.py
@@ -181,7 +181,7 @@ def MuonTrackQuery( name="MuonTrackQuery", **kwargs ):
      return CfgMgr.Rec__MuonTrackQuery(name,**kwargs)
 
 def MuidSegmentRegionRecoveryTool( name ='MuidSegmentRegionRecoveryTool', **kwargs ):
-    kwargs.setdefault("Fitter",  getPublicTool("CombinedMuonTrackBuilderFit") )
+    kwargs.setdefault("Builder",  getPublicTool("CombinedMuonTrackBuilderFit") )
     import MuonCombinedRecExample.CombinedMuonTrackSummary
     from AthenaCommon.AppMgr import ToolSvc
     kwargs.setdefault("TrackSummaryTool", ToolSvc.CombinedMuonTrackSummary)