diff --git a/include/vision/factor/factor_ahp.h b/include/vision/factor/factor_ahp.h
index ad23d04da1690759bb034f0235bd3be701aa1d52..0bbb5332c4c9e094d877f2b47fdc0f4b6ef66786 100644
--- a/include/vision/factor/factor_ahp.h
+++ b/include/vision/factor/factor_ahp.h
@@ -33,11 +33,6 @@ class FactorAhp : public FactorAutodiff<FactorAhp, 2, 3, 4, 3, 4, 4>
 
         ~FactorAhp() override = default;
 
-        std::string getTopology() const override
-        {
-            return std::string("LMK");
-        }
-
         template<typename T>
         void expectation(const T* const _current_frame_p,
                          const T* const _current_frame_o,
@@ -63,6 +58,7 @@ inline FactorAhp::FactorAhp(const FeatureBasePtr&   _ftr_ptr,
                             bool             _apply_loss_function,
                             FactorStatus _status) :
         FactorAutodiff<FactorAhp, 2, 3, 4, 3, 4, 4>("AHP",
+                                                    TOP_LMK,
                                                     _ftr_ptr,
                                                     _landmark_ptr->getAnchorFrame(),
                                                     nullptr,
diff --git a/include/vision/factor/factor_epipolar.h b/include/vision/factor/factor_epipolar.h
index 01bd843cec516297ccec73990d7a95d3f175c46a..f848cca79b32e092b7964cc4e570cda1b536ae9d 100644
--- a/include/vision/factor/factor_epipolar.h
+++ b/include/vision/factor/factor_epipolar.h
@@ -21,11 +21,6 @@ class FactorEpipolar : public FactorAutodiff<FactorEpipolar, 1, 3, 4, 3, 4, 3, 4
 
         ~FactorEpipolar() override = default;
 
-        std::string getTopology() const override
-        {
-            return std::string("GEOM");
-        }
-
         template<typename T>
         bool operator ()(const T* const _frame_own_p,
                          const T* const _frame_own_o,
@@ -47,6 +42,7 @@ inline FactorEpipolar::FactorEpipolar(const FeatureBasePtr& _feature_ptr,
                                       bool _apply_loss_function,
                                       FactorStatus _status) :
         FactorAutodiff<FactorEpipolar, 1, 3, 4, 3, 4, 3, 4>("FEATURE EPIPOLAR",
+                                                            TOP_GEOM,
                                                             _feature_ptr,
                                                             nullptr,
                                                             nullptr,
diff --git a/include/vision/factor/factor_pixel_hp.h b/include/vision/factor/factor_pixel_hp.h
index f56bd818594d6cec1e29da238500c761674d2ab1..ce65ce2aaa0671a95b2233c82a234019f36461db 100644
--- a/include/vision/factor/factor_pixel_hp.h
+++ b/include/vision/factor/factor_pixel_hp.h
@@ -32,11 +32,6 @@ class FactorPixelHp : public FactorAutodiff<FactorPixelHp, 2, 3, 4, 3, 4, 4>
 
         ~FactorPixelHp() override = default;
 
-        std::string getTopology() const override
-        {
-            return std::string("LMK");
-        }
-
         template<typename T>
         void expectation(const T* const _frame_p,
                          const T* const _frame_o,
@@ -62,6 +57,7 @@ inline FactorPixelHp::FactorPixelHp(const FeatureBasePtr&   _ftr_ptr,
                                     bool             _apply_loss_function,
                                     FactorStatus _status) :
         FactorAutodiff<FactorPixelHp, 2, 3, 4, 3, 4, 4>("PIXELHP",
+                                                        TOP_LMK,
                                                         _ftr_ptr,
                                                         nullptr,
                                                         nullptr,
diff --git a/include/vision/factor/factor_trifocal.h b/include/vision/factor/factor_trifocal.h
index e7d698cf5ae25065c9af2082fdf8149991143999..9a441bd1203af3a5cff44f2ea809964cff4af2e4 100644
--- a/include/vision/factor/factor_trifocal.h
+++ b/include/vision/factor/factor_trifocal.h
@@ -33,11 +33,6 @@ class FactorTrifocal : public FactorAutodiff<FactorTrifocal, 3, 3, 4, 3, 4, 3, 4
          */
         ~FactorTrifocal() override;
 
-        std::string getTopology() const override
-        {
-            return std::string("GEOM");
-        }
-
         FeatureBasePtr getFeaturePrev();
 
         const Vector3d& getPixelCanonical3() const
@@ -151,6 +146,7 @@ FactorTrifocal::FactorTrifocal(const FeatureBasePtr& _feature_1_ptr,
                                bool _apply_loss_function,
                                FactorStatus _status) :
         FactorAutodiff( "TRIFOCAL PLP",
+                        TOP_GEOM,
                         _feature_own_ptr,
                         nullptr,
                         nullptr,