diff --git a/Tracking/TrkExtrapolation/TrkExInterfaces/TrkExInterfaces/IPropagator.h b/Tracking/TrkExtrapolation/TrkExInterfaces/TrkExInterfaces/IPropagator.h
index a789b51e9fb36b87cf12b9b2819c8e5428a0d1ae..5f003e3b048921accb22172e4de25c8bb89c4bfc 100755
--- a/Tracking/TrkExtrapolation/TrkExInterfaces/TrkExInterfaces/IPropagator.h
+++ b/Tracking/TrkExtrapolation/TrkExInterfaces/TrkExInterfaces/IPropagator.h
@@ -68,7 +68,7 @@ namespace Trk {
                                                   const Surface& sf,
                                                   PropDirection dir,
                                                   BoundaryCheck bcheck,
-						                          bool returnCurv = false) const = 0;
+                                                  bool returnCurv = false) const = 0;
 
        /** N 0) <b>Neutral parameters method </b> 
            - symmetric interface for new Extrapolation engine
@@ -82,12 +82,11 @@ namespace Trk {
                                           ParticleHypothesis,
                                           bool returnCurv,
                                           const TrackingVolume* tVol=0) const
-        { //avoid warning for tVol
+       { //avoid warning for tVol
           return propagate(parameters,sf,dir,bcheck,returnCurv);
           if (tVol) return 0;
         }
 
-
        /** [TrackParameters] --------------------------------------------------------- */
 
        /** Propagation interface:
@@ -100,8 +99,8 @@ namespace Trk {
                                                   BoundaryCheck bcheck,
                                                   const MagneticFieldProperties& mprop,
                                                   ParticleHypothesis particle=pion,
-						                          bool returnCurv = false,
-						                          const TrackingVolume* tVol=0) const = 0;
+                                                  bool returnCurv = false,
+                                                  const TrackingVolume* tVol=0) const = 0;
        
 
        /** Propagation interface:
@@ -117,8 +116,8 @@ namespace Trk {
                                                  std::vector<unsigned int>& solutions,
                                                  double& path,
                                                  bool usePathLim = false,
-						                         bool returnCurv = false,
-						                         const TrackingVolume* tVol=0) const = 0;
+                                                 bool returnCurv = false,
+                                                 const TrackingVolume* tVol=0) const = 0;
        
        /** Propagation interface:
          
@@ -128,7 +127,7 @@ namespace Trk {
        virtual const TrackParameters* propagateT( const TrackParameters& parm,
 						  std::vector<DestSurf>& sfs,
 						  PropDirection dir,
-                          const MagneticFieldProperties& mprop,
+              const MagneticFieldProperties& mprop,
 						  ParticleHypothesis particle,
 						  std::vector<unsigned int>& solutions,
 						  PathLimit& pathLim, TimeLimit& timeLim,
@@ -144,7 +143,7 @@ namespace Trk {
        virtual const TrackParameters* propagateT( const TrackParameters& parm,
 						  TargetSurfaces& sfs,
 						  PropDirection dir,
-                          const MagneticFieldProperties& mprop,
+              const MagneticFieldProperties& mprop,
 						  ParticleHypothesis particle,
 						  TargetSurfaceVector& solutions,
 						  PathLimit& pathLim, TimeLimit& timeLim,
@@ -157,8 +156,8 @@ namespace Trk {
          The propagation method called by the TrkExEngine. All options included.
          */
        virtual Trk::ExtrapolationCode propagate( Trk::ExCellCharged& eCell,
-						 Trk::TargetSurfaces& sfs,
-						 Trk::TargetSurfaceVector& solutions) const;         
+                                                 Trk::TargetSurfaces& sfs,
+                                                 Trk::TargetSurfaceVector& solutions) const;         
        /** Propagation interface:
          
          The propagation method with internal material collection. The propagator
@@ -167,7 +166,7 @@ namespace Trk {
        virtual const TrackParameters* propagateM( const TrackParameters& parm,
 						  std::vector<DestSurf>& sfs,
 						  PropDirection dir,
-                                                  const MagneticFieldProperties& mprop,
+              const MagneticFieldProperties& mprop,
 						  ParticleHypothesis particle,
 						  std::vector<unsigned int>& solutions,
 						  std::vector<const Trk::TrackStateOnSurface*>*& matstates,
@@ -192,8 +191,8 @@ namespace Trk {
                                                       TransportJacobian*&,
                                                       double& pathLength,
                                                       ParticleHypothesis particle=pion,
-						                              bool returnCurv = false,
-						                              const TrackingVolume* tVol=0) const = 0;
+                                                      bool returnCurv = false,
+                                                      const TrackingVolume* tVol=0) const = 0;
        
 
        /** Propagation interface without Covariance matrix propagation
@@ -206,18 +205,18 @@ namespace Trk {
                                                                 BoundaryCheck bcheck,
                                                                 const MagneticFieldProperties& mprop,
                                                                 ParticleHypothesis particle=pion,
-								                                bool returnCurv = false,
-								                                const TrackingVolume* tVol=0) const = 0;
+                                                                bool returnCurv = false,
+                                                                const TrackingVolume* tVol=0) const = 0;
        
        virtual const TrackParameters*      propagateParameters( const TrackParameters& parm,
                                                                 const Surface& sf,
                                                                 PropDirection dir,
                                                                 BoundaryCheck bcheck,
                                                                 const MagneticFieldProperties& mprop,
-								                                TransportJacobian*&,
+                                                                TransportJacobian*&,
                                                                 ParticleHypothesis particle=pion,
-								                                bool returnCurv = false,
-								                                const TrackingVolume* tVol=0) const = 0;
+                                                                bool returnCurv = false,
+                                                                const TrackingVolume* tVol=0) const = 0;
        
 
        /** Intersection interface:
@@ -229,7 +228,7 @@ namespace Trk {
                                                       const Surface& sf,
                                                       const MagneticFieldProperties& mprop,
                                                       ParticleHypothesis particle=pion,
-						      const TrackingVolume* tVol=0) const = 0;
+                                                      const TrackingVolume* tVol=0) const = 0;
 
       /** Intersection and Intersector interface: 
         */
@@ -264,12 +263,12 @@ namespace Trk {
                                 double step,
                                 Amg::Vector3D& outputPosition, 
                                 Amg::Vector3D& outputMomentum,
-                                const MagneticFieldProperties& mprop);
+                                const MagneticFieldProperties& mprop) const;
 
 
      /** Validation Action:
-          Can be implemented optionally, outside access to internal validation steps */
-       virtual void validationAction() const {}
+       Can be implemented optionally, outside access to internal validation steps */
+     virtual void validationAction() const {}
 
  };
 
@@ -339,7 +338,13 @@ inline const Trk::TrackParameters* Trk::IPropagator::propagateM( const TrackPara
 }
 
 /** a very simple propagation along a given path length */
-inline void Trk::IPropagator::propagateStep(const Amg::Vector3D&, const Amg::Vector3D&, double, double, Amg::Vector3D&, Amg::Vector3D&, const MagneticFieldProperties&) {}
+inline void Trk::IPropagator::propagateStep(const Amg::Vector3D&, 
+                                            const Amg::Vector3D&, 
+                                            double, 
+                                            double, 
+                                            Amg::Vector3D&, 
+                                            Amg::Vector3D&, 
+                                            const MagneticFieldProperties&) const {}
 
 
 #endif // TRKEXINTERFACES_PROPAGATOR_H
diff --git a/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/TrkExRungeKuttaPropagator/RungeKuttaPropagator.h b/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/TrkExRungeKuttaPropagator/RungeKuttaPropagator.h
index 1dd81aec07c856d196b555865de1cacf35b519f9..b5f907c517ba12b0bf106427625e92996aac9553 100755
--- a/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/TrkExRungeKuttaPropagator/RungeKuttaPropagator.h
+++ b/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/TrkExRungeKuttaPropagator/RungeKuttaPropagator.h
@@ -104,7 +104,7 @@ parameters and jacobian of transformation according straight line model
 @author Igor.Gavrilenko@cern.ch     
   */
 
-  class RungeKuttaPropagator : public AthAlgTool, virtual public IPropagator,
+  class RungeKuttaPropagator final: public AthAlgTool, virtual public IPropagator,
   virtual public IPatternParametersPropagator
 {
   /////////////////////////////////////////////////////////////////////////////////
@@ -118,23 +118,23 @@ public:
   virtual ~RungeKuttaPropagator ();
 
   /** AlgTool initailize method.*/
-  StatusCode initialize();
+  virtual StatusCode initialize() override final;
 
   /** AlgTool finalize method */
-  StatusCode finalize();
+  virtual StatusCode finalize() override final;
 
   /** Main propagation mehtod NeutralParameters */
 
-  const NeutralParameters* propagate
+ virtual const NeutralParameters* propagate
     (const NeutralParameters        &,
      const Surface                  &,
      PropDirection                   ,
      BoundaryCheck                   ,
-     bool                            ) const;
+     bool                            ) const override final;
 
   /** Main propagation mehtod without transport jacobian production*/
 
-  const TrackParameters*           propagate
+  virtual const TrackParameters*           propagate
     (const TrackParameters          &,
      const Surface                  &,
      const PropDirection             ,
@@ -142,11 +142,11 @@ public:
      const MagneticFieldProperties  &, 
      ParticleHypothesis              ,
      bool                            ,
-     const TrackingVolume*           ) const;
+     const TrackingVolume*           ) const override final;
 
   /** Main propagation mehtod with transport jacobian production*/
 
-  const TrackParameters*           propagate
+  virtual const TrackParameters*           propagate
     (const TrackParameters          &,
      const Surface                  &,
      const PropDirection             ,
@@ -156,11 +156,11 @@ public:
      double                         &,
      ParticleHypothesis              ,
      bool                            ,
-     const TrackingVolume*            ) const;
+     const TrackingVolume*            ) const override final;
 
   /** The propagation method finds the closest surface */
 
-  const TrackParameters*           propagate
+  virtual const TrackParameters*           propagate
     (const TrackParameters         &,
      std::vector<DestSurf>         &,
      PropDirection                  ,
@@ -170,11 +170,11 @@ public:
      double                        &,
      bool                           ,
      bool                           ,
-     const TrackingVolume*          ) const;
+     const TrackingVolume*          ) const override final;
 
   /** Main propagation mehtod for parameters only without transport jacobian productio*/
 
-  const TrackParameters*           propagateParameters
+  virtual const TrackParameters*           propagateParameters
     (const TrackParameters          &,
      const Surface                  &,
      const PropDirection             ,
@@ -182,12 +182,12 @@ public:
      const MagneticFieldProperties  &, 
      ParticleHypothesis              ,
      bool                            ,
-     const TrackingVolume*          ) const;
+     const TrackingVolume*          ) const override final;
 
 
   /** Main propagation mehtod for parameters only with transport jacobian productio*/
 
-  const TrackParameters*           propagateParameters
+  virtual const TrackParameters*           propagateParameters
     (const TrackParameters          &,
      const Surface                  &,
      const PropDirection             ,
@@ -196,100 +196,93 @@ public:
      TransportJacobian             *&,
      ParticleHypothesis              ,
      bool                            ,
-     const TrackingVolume*           ) const;
+     const TrackingVolume*           ) const override final;
 
   /** Global position together with direction of the trajectory on the surface */
 
-  const IntersectionSolution*      intersect
+  virtual const IntersectionSolution*      intersect
     (const TrackParameters          &,
      const Surface                  &,
      const MagneticFieldProperties  &, 
      ParticleHypothesis particle=pion, 
-     const TrackingVolume*   tvol=0  ) const;
+     const TrackingVolume*   tvol=0  ) const override final;
 
   /** GlobalPositions list interface:*/
 
-  void globalPositions
+  virtual void globalPositions
     (std::list<Amg::Vector3D>       &,
      const TrackParameters          &,
      const MagneticFieldProperties  &,
      const CylinderBounds&           ,
      double                          ,
      ParticleHypothesis particle=pion,
-     const TrackingVolume* tvol=0    ) const;
+     const TrackingVolume* tvol=0    ) const override final;
 
-  /** Test quality Jacobian calculation */
-
-  void JacobianTest
-    (const TrackParameters        &,
-     const Surface                &,
-     const MagneticFieldProperties&) const;
-
-  /////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////////
   // Public methods for Trk::PatternTrackParameters (from IPattern'Propagator)
   /////////////////////////////////////////////////////////////////////////////////
 
   /** Main propagation method */
 
   using IPropagator::propagate;
-  bool propagate
+  virtual bool propagate
     (PatternTrackParameters         &,
      const Surface                  &,
      PatternTrackParameters         &,
      PropDirection                   ,
      const MagneticFieldProperties  &, 
-     ParticleHypothesis particle=pion) const;
+     ParticleHypothesis particle=pion) const  override final;
 
   /** Main propagation mehtod with step to surface calculation*/
 
-  bool propagate
+  virtual bool propagate
     (PatternTrackParameters         &,
      const Surface                  &,
      PatternTrackParameters         &,
      PropDirection                   ,
      const MagneticFieldProperties  &,
      double                         &,
-     ParticleHypothesis particle=pion) const;
+     ParticleHypothesis particle=pion) const  override final;
 
   /** Main propagation mehtod for parameters only */
 
-  bool propagateParameters
+  virtual bool propagateParameters
     (PatternTrackParameters         &,
      const Surface                  &,
      PatternTrackParameters         &,
      PropDirection                   ,
      const MagneticFieldProperties  &,
-     ParticleHypothesis particle=pion) const;
+     ParticleHypothesis particle=pion) const  override final;
 
   /** Main propagation mehtod for parameters only with step to surface calculation*/
 
-  bool propagateParameters
+  virtual bool propagateParameters
     (PatternTrackParameters         &,
      const Surface                  &,
      PatternTrackParameters         &,
      PropDirection                   ,
      const MagneticFieldProperties  &,
      double                         &,
-     ParticleHypothesis particle=pion) const;
+     ParticleHypothesis particle=pion) const  override final;
 
   /** GlobalPositions list interface:*/
 
-  void globalPositions
+  virtual void globalPositions
     (std::list<Amg::Vector3D>       &,
      const PatternTrackParameters   &,
      const MagneticFieldProperties  &,
      const CylinderBounds           &,
      double                          ,
-     ParticleHypothesis particle=pion) const;
+     ParticleHypothesis particle=pion) const  override final;
 
   /** GlobalPostions and steps for set surfaces */
 
-  void globalPositions
+  virtual void globalPositions
     (const PatternTrackParameters                 &,
      std::list<const Surface*>                    &,
      std::list< std::pair<Amg::Vector3D,double> > &,
      const MagneticFieldProperties                &,
-     ParticleHypothesis particle=pion              ) const;
+     ParticleHypothesis particle=pion              ) const  override final;
 
   /** a very simple propagation along a given path length */
 
@@ -299,7 +292,7 @@ public:
                              double step,
                              Amg::Vector3D& outputPosition, 
                              Amg::Vector3D& outputMomentum,
-                             const MagneticFieldProperties& mprop);
+                             const MagneticFieldProperties& mprop) const override final;
 
 private:
 
@@ -319,6 +312,14 @@ private:
   // Private methods:
   /////////////////////////////////////////////////////////////////////////////////
 
+  /** Test quality Jacobian calculation */
+
+  void JacobianTest
+    (const TrackParameters        &,
+     const Surface                &,
+     const MagneticFieldProperties&) const;
+
+ 
   /** Internal RungeKutta propagation method for charge track parameters*/   
 
   const TrackParameters*      propagateRungeKutta
diff --git a/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/src/RungeKuttaPropagator.cxx b/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/src/RungeKuttaPropagator.cxx
index e489d75ffd0b0364679255d46858360ec370c0c6..f60f3f6680c6fe6cca2ed91eaea2ed32904dd306 100755
--- a/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/src/RungeKuttaPropagator.cxx
+++ b/Tracking/TrkExtrapolation/TrkExRungeKuttaPropagator/src/RungeKuttaPropagator.cxx
@@ -1837,11 +1837,10 @@ double Trk::RungeKuttaPropagator::stepReduction(const double* E) const
 // Ro and Po - output  coordinate and momentum after propagation
 /////////////////////////////////////////////////////////////////////////////////
 
-void Trk::RungeKuttaPropagator::propagateStep
-( const Amg::Vector3D& Ri,const  Amg::Vector3D& Pi,
- double Charge,double Step,
- Amg::Vector3D& Ro, Amg::Vector3D& Po, 
- const MagneticFieldProperties& Mag)
+void Trk::RungeKuttaPropagator::propagateStep( const Amg::Vector3D& Ri,const  Amg::Vector3D& Pi,
+                                               double Charge,double Step,
+                                               Amg::Vector3D& Ro, Amg::Vector3D& Po, 
+                                               const MagneticFieldProperties& Mag) const
 {
 
   Cache cache{};
diff --git a/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/TrkExSTEP_Propagator/STEP_Propagator.h b/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/TrkExSTEP_Propagator/STEP_Propagator.h
index 4fb864b62beac5c8ebb039e0d973e9f2795369d9..e014e0b1481eb4d44fd11765f8a98be30979869a 100755
--- a/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/TrkExSTEP_Propagator/STEP_Propagator.h
+++ b/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/TrkExSTEP_Propagator/STEP_Propagator.h
@@ -128,7 +128,7 @@ namespace Trk {
      @author esben.lund@fys.uio.no
   **/
 
-  class STEP_Propagator : public AthAlgTool, virtual public IPropagator
+  class STEP_Propagator final : public AthAlgTool, virtual public IPropagator
   {
     /////////////////////////////////////////////////////////////////////////////////
     // Public methods:
@@ -144,11 +144,11 @@ namespace Trk {
 
 
     /** AlgTool initailize method.*/
-    virtual StatusCode initialize() override;
+    virtual StatusCode initialize() override final;
 
 
     /** AlgTool finalize method */
-    virtual StatusCode finalize() override;
+    virtual StatusCode finalize() override final;
 
 
     /** Main propagation method for ParametersBase. Use StraightLinePropagator for neutrals */
@@ -170,7 +170,7 @@ namespace Trk {
                  const Trk::Surface&,
                  Trk::PropDirection,
                  Trk::BoundaryCheck,
-                 bool rC=false) const override;
+                 bool rC=false) const override final;
 
 
     /** Propagate parameters and covariance without returning the Jacobian */
@@ -182,7 +182,7 @@ namespace Trk {
                  const      MagneticFieldProperties& magneticFieldProperties,
                  ParticleHypothesis            particle,
                  bool                          returnCurv = false,
-                 const Trk::TrackingVolume*          tVol = 0) const override;
+                 const Trk::TrackingVolume*          tVol = 0) const override final;
 
     /** Propagate parameters and covariance with search of closest surface */
     virtual const Trk::TrackParameters*    
@@ -195,7 +195,7 @@ namespace Trk {
                   double&                            path,
                   bool                               usePathLimit = false,
                   bool                               returnCurv = false,
-                  const Trk::TrackingVolume*          tVol = 0) const override;       
+                  const Trk::TrackingVolume*          tVol = 0) const override final;       
 
     /** Propagate parameters and covariance with search of closest surface */
     virtual const Trk::TrackParameters*    
@@ -209,7 +209,7 @@ namespace Trk {
                    Trk::TimeLimit&                    time,
                    bool                               returnCurv,
                    const Trk::TrackingVolume*         tVol,
-                   std::vector<Trk::HitInfo>*& hitVector) const override;
+                   std::vector<Trk::HitInfo>*& hitVector) const override final;
 
     /** Propagate parameters and covariance with search of closest surface and material collection */
     virtual const Trk::TrackParameters*    
@@ -225,7 +225,7 @@ namespace Trk {
                    bool                               usePathLimit = false,
                    bool                               returnCurv = false,
                    const Trk::TrackingVolume*         tVol = nullptr,
-                   Trk::ExtrapolationCache*           = nullptr) const override;       
+                   Trk::ExtrapolationCache*           = nullptr) const override final;       
 
     /** Propagate parameters and covariance, and return the Jacobian. WARNING: Multiple Scattering is not included in the Jacobian! */
     virtual const Trk::TrackParameters*
@@ -238,7 +238,7 @@ namespace Trk {
                  double&                             pathLimit,
                  ParticleHypothesis                  particle,
                  bool                                returnCurv=false,
-                 const Trk::TrackingVolume*          tVol = nullptr) const override;       
+                 const Trk::TrackingVolume*          tVol = nullptr) const override final;       
 
 
     /** Propagate parameters only */
@@ -250,7 +250,7 @@ namespace Trk {
                            const MagneticFieldProperties&      magneticFieldProperties,
                            ParticleHypothesis                  particle,
                            bool                                returnCurv = false,
-                           const Trk::TrackingVolume*          tVol = nullptr) const override;       
+                           const Trk::TrackingVolume*          tVol = nullptr) const override final;       
 
 
     /** Propagate parameters and return Jacobian. WARNING: Multiple Scattering is not included in the Jacobian! */
@@ -263,7 +263,7 @@ namespace Trk {
                            Trk::TransportJacobian*&            jacobian,
                            ParticleHypothesis                  particle,
                            bool                                returnCurv = false,
-                           const Trk::TrackingVolume*          tVol = 0) const override;       
+                           const Trk::TrackingVolume*          tVol = 0) const override final;       
 
 
     /** Propagate parameters and return path (Similar to propagateParameters */
@@ -272,7 +272,7 @@ namespace Trk {
                  const Trk::Surface&                 targetSurface,
                  const Trk::MagneticFieldProperties& magneticFieldProperties,
                  ParticleHypothesis                  particle,
-                 const Trk::TrackingVolume*          tVol = 0) const override;       
+                 const Trk::TrackingVolume*          tVol = 0) const override final;       
 
     /** Intersection and propagation:
      */
@@ -281,7 +281,7 @@ namespace Trk {
                                                              const TrackSurfaceIntersection*    trackIntersection,
                                                              const double               qOverP,
                                                              const MagneticFieldProperties& mft,
-                                                             ParticleHypothesis       particle) const override; 
+                                                             ParticleHypothesis       particle) const override final; 
 
     /** Return a list of positions along the track */
     virtual void
@@ -291,7 +291,7 @@ namespace Trk {
                        const CylinderBounds&            cylinderBounds,
                        double                           maxStepSize,
                        ParticleHypothesis               particle,
-                       const Trk::TrackingVolume*       tVol = 0) const override;       
+                       const Trk::TrackingVolume*       tVol = 0) const override final;       
 
 
     /////////////////////////////////////////////////////////////////////////////////