diff --git a/include/tracker.h b/include/tracker.h
index bac83d6e0dd1aa16c1b5847ecfabb373bcee1e39..1b53288747c5dec366347e1846656e02c5c8a67d 100644
--- a/include/tracker.h
+++ b/include/tracker.h
@@ -91,6 +91,10 @@ public:
     const TrackPoint &operator=(const Vec2F &v);
     const TrackPoint &operator+=(const Vec2F &v);
     const TrackPoint  operator+(const Vec2F &v) const;
+
+    static constexpr int minDetectionQual  = 80;
+    static constexpr int bestDetectionQual = 100;
+    [[nodiscard]] bool   isDetection() const;
 };
 
 
diff --git a/src/tracker.cpp b/src/tracker.cpp
index e668f2ed5f4143343f4a5e5c055897b15a798706..4eb1ff784b03ca87f7285878c3b9b8cd58665fe7 100644
--- a/src/tracker.cpp
+++ b/src/tracker.cpp
@@ -78,6 +78,11 @@ const TrackPoint TrackPoint::operator+(const Vec2F &v) const
     return TrackPoint(*this) += v; // Vec2F(mX + v.mX, mY + v.mY);
 }
 
+bool TrackPoint::isDetection() const
+{
+    return mQual > minDetectionQual;
+}
+
 //--------------------------------------------------------------------------
 
 // the list index is the frame number plus mFirstFrame 0..mLastFrame-mFirstFrame
@@ -342,11 +347,11 @@ double TrackPerson::getNearestZ(int i, int *extrapolated) const
  */
 bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr, bool extrapolate)
 {
-    int        i;
     Vec2F      tmp; // ua. zur linearen Interpolation
     TrackPoint tp;  // default: 0 = ist schlechteste qualitaet
     double     distance;
 
+
     if(frame > mLastFrame)
     {
         // lineare interpolation, wenn frames uebersprungen wurden
@@ -356,7 +361,7 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
             tmp.setY((point.y() - last().y()) / (frame - mLastFrame));
             tp = last();
             tp.setQual(0);
-            for(i = 0; i < frame - mLastFrame - 1; ++i)
+            for(int i = 0; i < frame - mLastFrame - 1; ++i)
             {
                 tp += tmp;
                 append(tp);
@@ -414,7 +419,7 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
             tmp.setY((point.y() - first().y()) / (mFirstFrame - frame));
             tp = first();
             tp.setQual(0);
-            for(i = 0; i < mFirstFrame - frame - 1; ++i)
+            for(int i = 0; i < mFirstFrame - frame - 1; ++i)
             {
                 tp += tmp;
                 prepend(tp);
@@ -468,7 +473,8 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
         // draufgesetzt wird!!!
 
         tp = point;
-        if(point.qual() < 100 && point.qual() > 80) // erkannte Person aber ohne strukturmarker
+        if(point.qual() < TrackPoint::bestDetectionQual &&
+           point.isDetection()) // erkannte Person aber ohne strukturmarker
         {
             // wenn in angrenzenden Frames qual groesse 90 (100 oder durch vorheriges verschieben entstanden), dann
             // verschieben
@@ -514,21 +520,23 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
                        << persNr + 1 << " in frame " << frame << "!" << std::endl;
                 // qualitaet anpassen, da der weg zum pkt nicht der richtige gewesen sein kann
                 // zurueck
-                for(anz = 1; trackPointExist(frame - anz) && (trackPointAt(frame - anz).qual() < 100); ++anz)
+                anz = 1;
+                while(trackPointExist(frame - anz) && !trackPointAt(frame - anz).isDetection())
                 {
-                    ;
+                    ++anz;
                 }
-                for(i = 1; i < (anz - 1);
+                for(int i = 1; i < (anz - 1);
                     ++i) // anz ist einer zu viel; zudem nur boie anz-1 , da sonst eh nur mit 1 multipliziert wuerde
                 {
                     (*this)[frame - mFirstFrame - i].setQual((i * trackPointAt(frame - i).qual()) / anz);
                 }
                 // vor
-                for(anz = 1; trackPointExist(frame + anz) && (trackPointAt(frame + anz).qual() < 100); ++anz)
+                anz = 1;
+                while(trackPointExist(frame + anz) && !trackPointAt(frame + anz).isDetection())
                 {
-                    ;
+                    ++anz;
                 }
-                for(i = 1; i < (anz - 1);
+                for(int i = 1; i < (anz - 1);
                     ++i) // anz ist einer zu viel; zudem nur boie anz-1 , da sonst eh nur mit 1 multipliziert wuerde
                 {
                     (*this)[frame - mFirstFrame + i].setQual((i * trackPointAt(frame + i).qual()) / anz);
@@ -537,9 +545,9 @@ bool TrackPerson::insertAtFrame(int frame, const TrackPoint &point, int persNr,
 
             replace(frame - mFirstFrame, tp);
 
-            if(tp.qual() > 100) // manual add // after inserting, because point ist const
+            if(tp.qual() > TrackPoint::bestDetectionQual) // manual add // after inserting, because point ist const
             {
-                (*this)[frame - mFirstFrame].setQual(100); // so moving of a point is possible
+                (*this)[frame - mFirstFrame].setQual(TrackPoint::bestDetectionQual); // so moving of a point is possible
             }
         }
         else