diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h
index 5de1c22ec7e5af6d14e0cf65509916d6c89fc3d1..c09b7d26c495ab6fe0e3b702aa7d3b25970f5e01 100644
--- a/include/gnss_utils/gnss_utils.h
+++ b/include/gnss_utils/gnss_utils.h
@@ -19,7 +19,7 @@ extern "C"
 
 namespace GNSSUtils
 {
-  struct getPosOutput{
+  struct fixPosOutput{
     time_t time;
     double sec;
     Eigen::Vector3d pos;        // position (m)
@@ -37,8 +37,9 @@ namespace GNSSUtils
     Eigen::Vector3d lat_lon;     // latitude_longitude_altitude
   };
 
-  GNSSUtils::getPosOutput getPos(const std::shared_ptr<Observations> & _observations,
-                                const std::shared_ptr<Navigation> & _navigation);
+  GNSSUtils::fixPosOutput computePos(const std::shared_ptr<Observations> & _observations,
+                                    const std::shared_ptr<Navigation> & _navigation,
+                                    const std::shared_ptr<prcopt_t> & _prcopt);
 
   Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef);
 }
diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp
index ed36ae3e1e92c58b0bb2b9f27ed360cd8a4246ac..4025394f7cd6484d8d8288f76edcb109c0009185 100644
--- a/src/gnss_utils.cpp
+++ b/src/gnss_utils.cpp
@@ -2,36 +2,37 @@
 
 namespace GNSSUtils
 {
-  GNSSUtils::getPosOutput getPos(const std::shared_ptr<GNSSUtils::Observations> & _observations,
-                                const std::shared_ptr<GNSSUtils::Navigation> & _navigation)
+  GNSSUtils::fixPosOutput computePos(const std::shared_ptr<GNSSUtils::Observations> & _observations,
+                                    const std::shared_ptr<GNSSUtils::Navigation> & _navigation,
+                                    const std::shared_ptr<prcopt_t> & _prcopt)
   {
     // Remove duplicated satellites
     uniqnav(&(_navigation->getNavigation()));
 
     // Define processing options
-    prcopt_t prcopt = prcopt_default;
-    prcopt.mode = PMODE_SINGLE;
-    prcopt.soltype = 0;
-    prcopt.nf = 1;
-    prcopt.navsys = SYS_GPS;
-    //prcopt.elmin = 1.05;  // 60 degrees = 1.05 rad
-    prcopt.sateph = EPHOPT_BRDC;
-    prcopt.ionoopt = IONOOPT_OFF;
-    prcopt.tropopt = TROPOPT_OFF;
-    prcopt.dynamics = 0;
-    prcopt.tidecorr = 0;
-    prcopt.sbascorr = SBSOPT_FCORR;
+    // prcopt_t prcopt = prcopt_default;
+    // prcopt.mode = PMODE_SINGLE;
+    // prcopt.soltype = 0;
+    // prcopt.nf = 1;
+    // prcopt.navsys = SYS_GPS;
+    // //prcopt.elmin = 1.05;  // 60 degrees = 1.05 rad
+    // prcopt.sateph = EPHOPT_BRDC;
+    // prcopt.ionoopt = IONOOPT_OFF;
+    // prcopt.tropopt = TROPOPT_OFF;
+    // prcopt.dynamics = 0;
+    // prcopt.tidecorr = 0;
+    // prcopt.sbascorr = SBSOPT_FCORR;
 
     // Define error msg
     char msg[128] = "";
 
-    GNSSUtils::getPosOutput output;
+    GNSSUtils::fixPosOutput output;
     sol_t sol;
     sol = {{0}};
 
     output.pos_stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(),
                             &(_navigation->getNavigation()),
-                            &prcopt, &sol, NULL, NULL, msg);
+                            _prcopt.get(), &sol, NULL, NULL, msg);
 
     output.time = sol.time.time;
     output.time = sol.time.sec;