diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 8ae397c5fba281f4455a6042d5d6727a96e94f25..0000000000000000000000000000000000000000
--- a/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-#Ignore build, bin and lib folders
-bin/
-build/
-lib/
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 0433a4f7287f938695a2c0a6912b1270ff8929e9..0000000000000000000000000000000000000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "deps/RTKLIB"]
-	path = deps/RTKLIB
-	url = https://github.com/tomojitakasu/RTKLIB.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7fdfa2d7db4b06b68091b3877a52ca3fdda23502..6ddfb998b6c1640d5fb46d6a57d8a469f5b74b06 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,17 +28,13 @@ CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
 if(COMPILER_SUPPORTS_CXX11)
 		message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++11 support.")
         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
-        #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c99")
 elseif(COMPILER_SUPPORTS_CXX0X)
 		message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has C++0x support.")
         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
-        #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c99")
 else()
         message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
 endif()
 
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive")
-
 ADD_SUBDIRECTORY(src)
 
 FIND_PACKAGE(Doxygen)
diff --git a/Findgnss_utils.cmake b/Findgnss_utils.cmake
index 4c0429fc6831b279bbeb005cdfcb976bf2dc2881..85306e55c56ff0aea7537dcf31d091f2a426d9dc 100644
--- a/Findgnss_utils.cmake
+++ b/Findgnss_utils.cmake
@@ -1,9 +1,9 @@
 #edit the following line to add the librarie's header files
-FIND_PATH(gnss_utils_INCLUDE_DIR observations.h navigation.h /usr/include/iridrivers /usr/local/include)
+FIND_PATH(gnss_utils_INCLUDE_DIR gnss_utils.h obervation.h /usr/include/iridrivers /usr/local/lib)
 
 FIND_LIBRARY(gnss_utils_LIBRARY
     NAMES gnss_utils
-    PATHS /usr/lib /usr/local/lib)
+    PATHS /usr/lib /usr/local/lib /usr/local/lib) 
 
 IF (gnss_utils_INCLUDE_DIR AND gnss_utils_LIBRARY)
    SET(gnss_utils_FOUND TRUE)
@@ -18,3 +18,4 @@ ELSE (gnss_utils_FOUND)
       MESSAGE(FATAL_ERROR "Could not find gnss_utils")
    ENDIF (gnss_utils_FIND_REQUIRED)
 ENDIF (gnss_utils_FOUND)
+
diff --git a/cmake_modules/FindRTKLIB.cmake b/cmake_modules/FindRTKLIB.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..41289eba5411914f02094b1541e01d573682cd93
--- /dev/null
+++ b/cmake_modules/FindRTKLIB.cmake
@@ -0,0 +1,18 @@
+#edit the following line to add the librarie's header files
+
+FIND_PATH(RTKLIB_INCLUDE_DIR rtklib.h /usr/include /usr/local/include ~/RTKLIB/src)
+GET_FILENAME_COMPONENT(RTK_LIB_PATH ${RTKLIB_INCLUDE_DIR} DIRECTORY)
+
+IF (RTKLIB_INCLUDE_DIR)
+   SET(RTKLIB_FOUND TRUE)
+ENDIF (RTKLIB_INCLUDE_DIR)
+
+IF (RTKLIB_FOUND)
+  IF (NOT RTKLIB_FOUND_QUIETLY)
+    MESSAGE(STATUS "Found RTKLIB: ${RTKLIB_INCLUDE_DIR}")
+  ENDIF (NOT RTKLIB_FOUND_QUIETLY)
+ELSE (RTKLIB_FOUND)
+  IF (RTKLIB_FIND_REQUIRED)
+    MESSAGE(FATAL_ERROR "Could not find RTKLIB")
+  ENDIF (RTKLIB_FIND_REQUIRED)
+ENDIF (RTKLIB_FOUND)
diff --git a/deps/RTKLIB b/deps/RTKLIB
deleted file mode 160000
index 71db0ffa0d9735697c6adfd06fdf766d0e5ce807..0000000000000000000000000000000000000000
--- a/deps/RTKLIB
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 71db0ffa0d9735697c6adfd06fdf766d0e5ce807
diff --git a/include/gnss_utils.h b/include/gnss_utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..0c5b6ed4320ee047358ce6f0c56592714b069f7d
--- /dev/null
+++ b/include/gnss_utils.h
@@ -0,0 +1,87 @@
+#ifndef GNSS_UTILS_H
+#define GNSS_UTILS_H
+
+#include <vector>
+#include <iostream>
+#include <memory>
+
+#include "observation.h"
+
+extern "C"
+{
+    #include "/home/jlaplaza/RTKLIB/src/rtklib.h"
+}
+
+namespace GNSSUtils
+{
+  class Receiver
+  {
+    public:
+      // Constructor & Destructor
+      Receiver();
+      ~Receiver();
+
+      // Public objects
+
+      // Public methods
+
+
+      /* - Observations -  */
+
+      void clearObservations();
+
+      void pushObservation(obsd_t obs);
+    
+      std::vector<obsd_t> getObservations();
+
+
+      /* - Navigation - */
+
+      void clearNavigation();
+      
+      void pushNavigation(nav_t nav);
+
+      std::vector<nav_t> getNavigation();
+      
+
+      /* - Processing Options - */
+
+      void clearOptions();
+      
+      void pushOption(prcopt_t opt);
+
+      std::vector<prcopt_t> getOptions();
+
+
+      /* - Solution - */
+
+
+      /* - Satellite status - */
+
+      /* - Compute Fix - */
+
+      int computeSPP(double *azel, char *msg);
+    
+    private:
+      // rtklib-like attribute to represent the different observation msgs for a given epoch
+      std::vector<obsd_t> _obsVector;
+  
+      // rtklib-like attribute to represent the different navigation msgs for a given epoch
+      std::vector<nav_t> _navVector;
+
+      // rtklib-like attribute to represent the different options for a given epoch
+      std::vector<prcopt_t> _opt;
+
+      // rtklib-like attribute to represent the solution for a given epoch
+      std::Vector<sol_t> _sol;
+
+      // rtklib-like attribute to represent the satellite status for a given epoch
+      std::vector<ssat_t> _ssat;
+
+      
+
+      
+
+  };
+}
+#endif
diff --git a/include/gnss_utils/gnss_utils.h b/include/gnss_utils/gnss_utils.h
deleted file mode 100644
index f77bf48f3c1fa5ce540ea6d83904c8d684aa8dfd..0000000000000000000000000000000000000000
--- a/include/gnss_utils/gnss_utils.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef GNSS_UTILS_H
-#define GNSS_UTILS_H
-
-#include <vector>
-#include <iostream>
-#include <memory>
-
-#include <eigen3/Eigen/Dense>
-#include <eigen3/Eigen/Geometry>
-#include <eigen3/Eigen/Sparse>
-
-#include "observations.h"
-#include "navigation.h"
-
-extern "C"
-{
-    #include "../deps/RTKLIB/src/rtklib.h"
-}
-
-namespace GNSSUtils
-{
-  struct getPosOutput{
-    time_t time;
-    double sec;
-    Eigen::Vector3d pos;        // position (m)
-    Eigen::Vector3d vel;        // velocity (m/s)
-    Eigen::Matrix3d pos_covar;  // position covariance (m^2)
-                                // {c_xx,c_yy,c_zz,c_xy,c_yz,c_zx}
-    Eigen::VectorXd rcv_bias;   // receiver clock bias to time systems (s)
-    int type;                   // type (0:xyz-ecef,1:enu-baseline)
-    int stat;                   // solution status (SOLQ_???)
-    int ns;                     // number of valid satellites
-    double age;                 // age of differential (s)
-    double ratio;               // AR ratio factor for valiation
-
-    int pos_stat;               // return from pntpos
-    Eigen::Vector3d lat_lon;     // latitude_longitude_altitude
-  };
-
-  GNSSUtils::getPosOutput getPos(const std::shared_ptr<Observations> & _observations,
-                                const std::shared_ptr<Navigation> & _navigation);
-
-  Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef);
-}
-#endif
diff --git a/include/gnss_utils/navigation.h b/include/gnss_utils/navigation.h
deleted file mode 100644
index a58c834e807cf31950b5b3a9ea705e30ca685f1a..0000000000000000000000000000000000000000
--- a/include/gnss_utils/navigation.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef NAVIGATION_H
-#define NAVIGATION_H
-
-#include <vector>
-#include <iostream>
-#include <memory>
-
-
-extern "C"
-{
-    #include "../deps/RTKLIB/src/rtklib.h"
-}
-
-namespace GNSSUtils
-{
-  class Navigation
-  {
-    public:
-      // Constructor & Destructor
-      Navigation();
-      ~Navigation();
-
-      // Public objects
-
-      // Public methods
-
-      void clearNavigation();
-
-      void setNavigation(nav_t nav);
-
-      const nav_t & getNavigation() const;
-      nav_t & getNavigation();
-
-
-      /****************** Array memory management ******************/
-
-
-      // Ephemeris
-      void allocateEphemeris(int n_sat = MAXSAT);
-      void deleteEphemeris();
-
-      void allocateGLONASSEphemeris(int n_sat = NSATGLO);
-      void deleteGLONASSEphemeris();
-
-      void allocateSBASEphemeris(int n_sat = NSATSBS*2); //SBAS
-      void deleteSBASEphemeris();
-
-      void allocateAlmanac(int n_sat = MAXSAT);
-      void deleteAlmanac();
-
-    private:
-
-      // rtklib-like attribute to represent the different navigation msgs for a given epoch
-      nav_t nav_;
-
-      // Private methods
-
-
-  };
-}
-#endif
diff --git a/include/gnss_utils/observations.h b/include/gnss_utils/observations.h
deleted file mode 100644
index 4293b07ba6d2f1a8c39d364ef2c9253ff41e96c4..0000000000000000000000000000000000000000
--- a/include/gnss_utils/observations.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef OBSEVATIONS_H
-#define OBSERVATIONS_H
-
-#include <vector>
-#include <iostream>
-#include <memory>
-
-
-
-extern "C"
-{
-    #include "../deps/RTKLIB/src/rtklib.h"
-}
-
-namespace GNSSUtils
-{
-  class Observations
-  {
-    public:
-      // Constructor & Destructor
-      Observations();
-      ~Observations();
-
-      // Public objects
-
-      // Public methods
-
-
-      /* - Observations -  */
-
-      void clearObservations();
-
-      void pushObservation(obsd_t obs);
-
-      std::vector<obsd_t> getObservations();
-
-
-
-    private:
-      // Private objects
-      // rtklib-like attribute to represent the different observation msgs for a given epoch
-      std::vector<obsd_t> obs_vector_;
-
-
-      // Private methods
-
-
-  };
-}
-#endif
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 407da06c9b0e07578e289988563c99090156825d..cc0421b22732bbc4d4f41d7d6415b8bdb0175d6f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,33 +1,11 @@
-# rtklib path
-SET(RTKLIB_DIR ../deps/RTKLIB)
-SET(RTKLIB_SRC_DIR ${RTKLIB_DIR}/src)
-
 # driver source files
-SET(SOURCES
-    gnss_utils.cpp
-    observations.cpp
-    navigation.cpp)
-
-SET(RTKLIB_SRC
-    ${RTKLIB_SRC_DIR}/pntpos.c
-    ${RTKLIB_SRC_DIR}/rtkcmn.c
-    ${RTKLIB_SRC_DIR}/sbas.c
-    ${RTKLIB_SRC_DIR}/ephemeris.c
-    ${RTKLIB_SRC_DIR}/preceph.c
-    ${RTKLIB_SRC_DIR}/qzslex.c
-    ${RTKLIB_SRC_DIR}/rtcm.c
-    ${RTKLIB_SRC_DIR}/rtcm2.c
-    ${RTKLIB_SRC_DIR}/rtcm3.c
-    ${RTKLIB_SRC_DIR}/rtcm3e.c
-    ${RTKLIB_SRC_DIR}/ionex.c
-    ${RTKLIB_SRC_DIR}/rinex.c)
-
+SET(sources gnss_utils.cpp observation.cpp)
 
 # application header files
-SET(HEADERS
-    ../include/gnss_utils/gnss_utils.h
-    ../include/gnss_utils/observations.h
-    ../include/gnss_utils/navigation.h)
+SET(headers ../include/gnss_utils.h ../include/observation.h)
+
+# RTKLIB
+INCLUDE (${PROJECT_SOURCE_DIR}/cmake_modules/FindRTKLIB.cmake)
 
 # Eigen #######
 FIND_PACKAGE(Eigen3 REQUIRED)
@@ -42,10 +20,10 @@ FIND_PACKAGE(Boost REQUIRED)
 link_directories(/usr/lib/x86_64-linux-gnu/)
 
 # Adding include directories
-INCLUDE_DIRECTORIES(../include/ ${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${RTK_LIB_PATH})
+INCLUDE_DIRECTORIES(. ${EIGEN3_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${RTK_LIB_PATH})
 
 # create the shared library
-ADD_LIBRARY(gnss_utils SHARED ${SOURCES} ${RTKLIB_SRC})
+ADD_LIBRARY(gnss_utils SHARED ${sources})
 TARGET_LINK_LIBRARIES(gnss_utils ${Boost_LIBRARIES})
 
 # Installing
@@ -53,7 +31,7 @@ INSTALL(TARGETS gnss_utils
         RUNTIME DESTINATION bin
         LIBRARY DESTINATION /usr/local/lib
         ARCHIVE DESTINATION lib)
-INSTALL(FILES ${HEADERS} DESTINATION include/gnss_utils)
+INSTALL(FILES ${headers} DESTINATION include/gnss_utils)
 # INSTALL(FILES ../gnss_utils.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
 INSTALL(FILES ../Findgnss_utils.cmake DESTINATION ${CMAKE_ROOT}/Modules/)
 ADD_SUBDIRECTORY(examples)
diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt
index 12d787d210f74ab3fa8ddfe041661bd77684b075..ece32987fb14d662a1e2bef7d9f0d848dbb7f2f0 100644
--- a/src/examples/CMakeLists.txt
+++ b/src/examples/CMakeLists.txt
@@ -1,8 +1,4 @@
-# include headers
-INCLUDE_DIRECTORIES(../../include)
-
 # create an example application
 ADD_EXECUTABLE(gnss_utils_test gnss_utils_test.cpp)
-
 # link necessary libraries
 TARGET_LINK_LIBRARIES(gnss_utils_test gnss_utils)
diff --git a/src/examples/gnss_utils_test.cpp b/src/examples/gnss_utils_test.cpp
index 569d1448d6cf5b8451f2b8acae56108cf24e825f..8fd4243b068ee72957dfd3bf6a81682e9b367b6a 100644
--- a/src/examples/gnss_utils_test.cpp
+++ b/src/examples/gnss_utils_test.cpp
@@ -1,213 +1,40 @@
-#include "gnss_utils/observations.h"
-#include "gnss_utils/navigation.h"
-
-#include <typeinfo>
-
-#include <boost/typeof/typeof.hpp>
-
+#include "../../include/gnss_utils.h"
+#include "../../include/observation.h"
 #include <iostream>
 
-extern "C"
-{
-  #include "../deps/RTKLIB/src/rinex.c"
-}
-
 using namespace GNSSUtils;
 
-
-int createObsAndNav(Observations* observations, char* obs_path,  Navigation* navigation, char* nav_path)
-{
-  // Time
-  double ts_d[] = {2018, 5, 17, 14, 1, 2};
-  gtime_t ts = epoch2time(ts_d);
-
-  double te_d[] = {2018, 5, 17, 14, 42, 8};
-  gtime_t te = epoch2time(te_d);
-
-  double tint = 0.1;
-
-  // Create options container
-  char* opt = "-SYS=G";
-
-  // Create receiver identifier
-  int rcv = 1;
-
-  // Create object types
-  rnxopt_t rnx_opt;
-
-  // Create obsd_t object to hold the observations
-  obs_t obs;
-  obs.data = (obsd_t *) malloc(sizeof(obsd_t)*MAXSAT);
-
-  /* header */
-  std::cout << "------------" << std::endl;
-  std::cout << "Observations" << std::endl;
-  std::cout << "------------" << std::endl;
-
-  if (readrnx(obs_path, rcv, opt, &obs, NULL, NULL))
-  {
-    sortobs(&obs);
-    obs.data[0].P[0] = 21597659.275;
-    obs.data[1].P[0] = 22348322.550;
-    obs.data[2].P[0] = 20873167.574;
-    obs.data[3].P[0] = 20920707.830;
-
-    std::cout << "Obs number: " << obs.n << std::endl;
-
-
-  }
-
-
-  else
-  {
-    std::cout << "Couldn't load provided observation file" << std::endl;
-    return 0;
-  }
-
-
-
-  for (int i=0; i < obs.n; i++)
-  {
-    std::cout << "time: " << time_str(obs.data[i].time, 3) <<  " | sat: " << int(obs.data[i].sat) << " | rcv: " << obs.data[i].rcv <<
-               " | SNR: " << obs.data[i].SNR[0] << " | LLI: " << obs.data[i].LLI[0] << " | code: " << obs.data[i].code[0] <<
-                 " | L: " << obs.data[i].L[0] <<  " | P: " << obs.data[i].P[0] << " | D: " << obs.data[i].D[0] << std::endl;
-    observations->pushObservation(obs.data[i]);
-  }
-
-  free(obs.data);
-
-  /* header */
-  std::cout << "----------" << std::endl;
-  std::cout << "Navigation" << std::endl;
-  std::cout << "----------" << std::endl;
-
-  /* Load _nav attribute into nav variable */
-  nav_t nav = navigation->getNavigation();
-
-
-  if (readrnx(nav_path, rcv, opt, NULL, &nav, NULL))
-  {
-    std::cout << "Navigation file loaded." << std::endl;
-    std::cout << "GPS satellites in navigation file: " << nav.n << std::endl;
-    std::cout << "GLONASS satellites in navigation file: " << nav.ng << std::endl;
-    std::cout << "SBAS satellites in navigation file: " << nav.ns << std::endl;
-    std::cout << "Almanac satellites in navigation file: " << nav.na << std::endl;
-    uniqnav(&nav);
-  }
-
-
-  else
-  {
-    std::cout << "Couldn't load provided navigation file" << std::endl;
-    return 0;
-  }
-
-
-  /* Print Constellation Satellites ids */
-  for (int i=0;i<nav.n;i++)
-  {
-    std::cout <<  i << " GPS Sat Id: " << nav.eph[i].sat << std::endl;
-  }
-
-  for (int i=0;i<nav.ng;i++)
-  {
-    std::cout <<  i << " GLONASS Sat Id: " << nav.geph[i].sat << std::endl;
-  }
-
-  for (int i=0;i<nav.ns;i++)
-  {
-    std::cout <<  i << " SBAS Sat Id: " << nav.seph[i].sat << std::endl;
-  }
-
-
-  /* Load nav into Navigation object*/
-  navigation->setNavigation(nav);
-
-  std::cout << "Navigation message loaded to Navigation class." << std::endl;
-
-  return 1;
-}
-
-
-
-
-
 int main(int argc, char *argv[])
 {
-  /* header */
+  // header
   std::cout << "--------------------------" << std::endl;
   std::cout << "GNSS Utils Library Example" << std::endl;
   std::cout << "--------------------------" << std::endl;
-
-
-  // create Observations object
-  Observations observations;
-
-  // create Navigation object
-  Navigation navigation;
-
-  createObsAndNav(&observations, "../src/examples/raw_201805171357.obs", &navigation, "../src/examples/raw_201805171357.nav");
-
-  nav_t nav = navigation.getNavigation();
-
-  std::cout << "Navigation eph number " << nav.n << std::endl;
-
-  /* Set processing options */
-
-  /* header */
-  std::cout << "------------------" << std::endl;
-  std::cout << "Processing options" << std::endl;
-  std::cout << "------------------" << std::endl;
-
-  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.ru[0] = 4789374.0336;
-  prcopt.ru[1] = 177048.3292;
-  prcopt.ru[2] = 4194542.6444;
-
-  std::cout << "Processing options defined" << std::endl;
-
-
-  //Compute spp
-
-  /* header */
-  std::cout << "-----------" << std::endl;
-  std::cout << "pntpos call" << std::endl;
-  std::cout << "-----------" << std::endl;
-
-  int stat;
-
-  sol_t solb={{0}};
-
-  char msg[128]="";
-
-  std::vector<obsd_t> obs = observations.getObservations();
-
-  for (int i=0; i < obs.size(); i++)
-  {
-    std::cout << "time: " << time_str(obs[i].time, 3) <<  " | sat: " << int(obs[i].sat) << " | rcv: " << obs[i].rcv <<
-               " | SNR: " << obs[i].SNR[0] << " | LLI: " << obs[i].LLI[0] << " | code: " << obs[i].code[0] <<
-                 " | L: " << obs[i].L[0] <<  " | P: " << obs[i].P[0] << " | D: " << obs[i].D[0] << std::endl;
-  }
-
-  std::cout << "obs.size(): " << obs.size() << std::endl;
-
-  stat = pntpos(&obs[0], obs.size(), &nav, &prcopt, &solb, NULL, NULL, msg);
-
-  std::cout << "msg: " << msg << std::endl;
-
-  std::cout << "sol.stat: " << solb.stat << std::endl;
-
-  std::cout << "Position: " << solb.rr[0] << ", " << solb.rr[1] << ", " << solb.rr[2] << std::endl;
-
+  // create a Receiver object
+  GNSSUtils::Receiver test_rcv;
+
+  // create a Observation object
+  gtime_t ts={0};
+  unsigned char q=1, w=2, e=3;
+  std::vector<unsigned char> vu({q, w, e});
+  std::vector<double> vd({1., 2., 3.});
+  std::vector<float> vf({1., 2., 3.});
+  Observation test_obs(ts, 1, 1, vu, vu, vu, vd, vd, vf);
+
+  // Display current Observation
+  std::cout << "Current observation (sat): " << "(" << test_obs.getSat() << ")" << std::endl;
+  std::cout << "Current observation (SNR): " << "(" ;
+
+ 
+
+  for (unsigned char i=0; i < 3; ++i)
+    std::cout << test_obs.getSNR()[i] << ", ";
+  std::cout << ")" << std::endl;
+
+  
+  obsd_t obs = test_obs.convert2rtk();
+  std::cout << "Observation SNR in RTKLIB format: " << "(";
+  for (unsigned char i=0; i < 3; ++i)
+    std::cout << obs.SNR[i] << ", ";
+  std::cout << ")" << std::endl;
 }
diff --git a/src/examples/raw_201805171357.nav b/src/examples/raw_201805171357.nav
deleted file mode 100644
index fcd505727f62595cdcb7d6609f229eba3d34bcea..0000000000000000000000000000000000000000
--- a/src/examples/raw_201805171357.nav
+++ /dev/null
@@ -1,241 +0,0 @@
-     3.03           N: GNSS NAV DATA    M: Mixed            RINEX VERSION / TYPE
-RTKCONV-QT 2.4.3 Eml                    20180518 083005 UTC PGM / RUN BY / DATE 
-log: /home/fherrero/Desktop/rtk_data/may17_street/rover/ra  COMMENT             
-format: u-blox                                              COMMENT             
-                                                            END OF HEADER       
-G21 2018  5 17 16  0  0 -.393872614950E-03  .488853402203E-11  .000000000000E+00
-      .180000000000E+02 -.716562500000E+02  .427089218552E-08  .277512804670E+01
-     -.366568565369E-05  .243949498981E-01  .127293169498E-04  .515371633720E+04
-      .403200000000E+06  .251457095146E-06 -.255327447920E+01 -.633299350739E-07
-      .943966348285E+00  .117093750000E+03 -.155820813323E+01 -.742388066300E-08
-      .232509684962E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00 -.102445483208E-07  .180000000000E+02
-      .396066000000E+06  .400000000000E+01
-S23 2018  5 17 14  0  0  .000000000000E+00  .000000000000E+00  .396084000000E+06
-      .359446000000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .220441400000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-R11 2018  5 17 14 15  0 -.290172174573E-04 -.909494701773E-12  .396060000000E+06
-      .236135693359E+05  .480520248413E+00  .465661287308E-08  .000000000000E+00
-      .897833935547E+04  .531091690063E-01 -.279396772385E-08  .000000000000E+00
-      .336017822266E+04 -.353190040588E+01  .279396772385E-08  .000000000000E+00
-G 4 2018  5 17 16  0  0  .617303885520E-04  .318323145621E-11  .000000000000E+00
-      .490000000000E+02  .813125000000E+02  .586095841816E-08  .168147704406E+01
-      .409968197346E-05  .984852679539E-02  .142678618431E-05  .515369743729E+04
-      .403200000000E+06 -.257045030594E-06  .171283210665E+01 -.856816768646E-07
-      .978868924311E+00  .363875000000E+03  .925765003885E+00 -.844285167866E-08
-      .201794119821E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .280000000000E+01  .630000000000E+02 -.195577740669E-07  .490000000000E+02
-      .396096000000E+06  .400000000000E+01
-S36 2018  5 17 14  1 52  .000000000000E+00  .000000000000E+00  .396121000000E+06
-      .420036880000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .367484696000E+04  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-G25 2018  5 17 16  0  0 -.586538109928E-03 -.591171556152E-11  .000000000000E+00
-      .960000000000E+02  .790625000000E+02  .450768776329E-08  .282650655180E+01
-      .393204391003E-05  .748547178227E-02  .985339283943E-06  .515364713287E+04
-      .403200000000E+06  .167638063431E-07  .168792924864E+01 -.130385160446E-06
-      .974054297066E+00  .366156250000E+03  .859234222371E+00 -.824998650220E-08
-      .172507185617E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00  .605359673500E-08  .960000000000E+02
-      .396126000000E+06  .400000000000E+01
-S23 2018  5 17 14  2 40  .000000000000E+00  .000000000000E+00  .396165000000E+06
-      .359446000000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .220441400000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-G29 2018  5 17 16  0  0  .448422506452E-03 -.636646291241E-11  .000000000000E+00
-      .100000000000E+02 -.134218750000E+03  .398873757550E-08  .151837862906E+01
-     -.712089240551E-05  .758121139370E-03  .585615634918E-05  .515369779968E+04
-      .403200000000E+06 -.782310962677E-07  .279259841043E+01  .931322574615E-08
-      .984149274453E+00  .279031250000E+03  .109062292313E+01 -.796068873750E-08
-     -.435375277985E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00 -.102445483208E-07  .100000000000E+02
-      .396156000000E+06  .400000000000E+01
-G31 2018  5 17 16  0  0  .121017917991E-03 -.261479726760E-11  .000000000000E+00
-      .130000000000E+02  .135562500000E+03  .417624538595E-08 -.258010292801E+01
-      .694207847118E-05  .874089112040E-02  .114534050226E-04  .515367195892E+04
-      .403200000000E+06 -.199303030968E-06  .667414181645E+00 -.428408384323E-07
-      .963670683015E+00  .163718750000E+03 -.129508508058E+00 -.771246411223E-08
-     -.253581991279E-10  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00 -.135041773319E-07  .130000000000E+02
-      .396156000000E+06  .400000000000E+01
-G26 2018  5 17 16  0  0 -.146218109876E-03  .127329258248E-10  .000000000000E+00
-      .190000000000E+02  .955937500000E+02  .508271171534E-08  .229150417812E+01
-      .499933958054E-05  .278105866164E-02  .127218663692E-05  .515365811539E+04
-      .403200000000E+06 -.745058059692E-07  .166613425329E+01  .353902578354E-07
-      .955604430680E+00  .354000000000E+03  .123824483227E+00 -.863714548606E-08
-      .240367155114E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00  .745058059692E-08  .190000000000E+02
-      .396156000000E+06  .400000000000E+01
-G20 2018  5 17 16  0  0  .508385710418E-03  .909494701773E-12  .000000000000E+00
-      .550000000000E+02  .305312500000E+02  .550415784170E-08 -.143910495771E+01
-      .176578760147E-05  .424874294549E-02  .653788447380E-05  .515483108330E+04
-      .403200000000E+06 -.428408384323E-07 -.156561886368E+01  .819563865662E-07
-      .927860664755E+00  .238250000000E+03  .194382841914E+01 -.851535469870E-08
-      .584667210879E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00 -.838190317154E-08  .550000000000E+02
-      .396156000000E+06  .400000000000E+01
-R22 2018  5 17 14 15  0 -.436417758465E-04 -.363797880709E-11  .396150000000E+06
-      .174836372070E+05 -.213147068024E+01  .558793544769E-08  .000000000000E+00
-     -.223983789062E+04  .135918807983E+01 -.931322574615E-09 -.300000000000E+01
-      .183794223633E+05  .220586490631E+01  .000000000000E+00  .000000000000E+00
-R12 2018  5 17 14 15  0 -.314591452479E-04  .000000000000E+00  .396150000000E+06
-      .187842797852E+05  .221794128418E+01  .651925802231E-08  .000000000000E+00
-     -.611366699219E+03  .832158088684E+00 -.931322574615E-09 -.100000000000E+01
-      .172705292969E+05 -.237456703186E+01  .000000000000E+00  .000000000000E+00
-R21 2018  5 17 14 15  0  .161034986377E-04 -.181898940355E-11  .396150000000E+06
-      .268202294922E+04 -.252502918243E+01  .186264514923E-08  .000000000000E+00
-      .109598642578E+05  .185894107819E+01 -.186264514923E-08  .400000000000E+01
-      .228750024414E+05 -.595973968506E+00 -.186264514923E-08  .000000000000E+00
-R23 2018  5 17 14 15  0  .154180452228E-03  .181898940355E-11  .396150000000E+06
-      .210692055664E+05 -.285812377930E+00  .558793544769E-08  .000000000000E+00
-     -.143027485352E+05 -.724935531616E-01  .000000000000E+00  .300000000000E+01
-      .137911767578E+04  .359415912628E+01  .279396772385E-08  .000000000000E+00
-E24 2018  5 17 13 50  0  .670211907709E-02 -.201794136956E-10  .000000000000E+00
-      .190000000000E+02  .242875000000E+03  .291512142651E-08  .109551416340E+01
-      .112410634756E-04  .485833035782E-03  .496208667755E-05  .544061313057E+04
-      .395400000000E+06  .372529029846E-08  .126283855082E+01 -.372529029846E-08
-      .990511584178E+00  .248343750000E+03  .110117432072E+01 -.567559355411E-08
-      .396445084958E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .312000000000E+01  .000000000000E+00  .440049916506E-07  .493600964546E-07
-      .396169000000E+06  .000000000000E+00
-G16 2018  5 17 16  0  0  .245096161962E-04 -.125055521494E-11  .000000000000E+00
-      .790000000000E+02  .737187500000E+02  .444411368660E-08  .140168875341E+01
-      .403448939323E-05  .100266055670E-01  .130012631416E-05  .515363121033E+04
-      .403200000000E+06 -.502914190292E-07  .176651804026E+01  .137835741043E-06
-      .986822970829E+00  .370343750000E+03  .514283072240E+00 -.844606609827E-08
-      .700029159024E-10  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00 -.107102096081E-07  .790000000000E+02
-      .396186000000E+06  .400000000000E+01
-G 5 2018  5 17 15 59 44 -.777514651418E-05  .682121026330E-12  .000000000000E+00
-      .170000000000E+02  .269375000000E+02  .513057085173E-08  .129549284559E+01
-      .147894024849E-05  .535089964978E-02  .625289976597E-05  .515369559669E+04
-      .403184000000E+06 -.745058059692E-07 -.147810732801E+01  .372529029846E-07
-      .947400843985E+00  .253656250000E+03  .608252324768E+00 -.836320550394E-08
-      .368229623956E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00 -.111758708954E-07  .170000000000E+02
-      .396186000000E+06  .400000000000E+01
-G14 2018  5 17 16  0  0 -.969334505498E-04 -.227373675443E-12  .000000000000E+00
-      .510000000000E+02 -.840625000000E+01  .468733810359E-08  .989432442176E-01
-     -.545755028725E-06  .978497182950E-02  .894069671631E-05  .515375780869E+04
-      .403200000000E+06 -.108033418655E-06 -.332595167021E+00  .987201929092E-07
-      .961268653452E+00  .210375000000E+03 -.195648402689E+01 -.810640909305E-08
-     -.559309011751E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .200000000000E+01  .000000000000E+00 -.977888703346E-08  .510000000000E+02
-      .396186000000E+06  .400000000000E+01
-E14 2018  5 17 12 40  0  .658168265363E-02 -.619593265583E-11  .000000000000E+00
-      .120000000000E+02 -.468750000000E+02  .613489840029E-08 -.827456973327E+00
-     -.192783772945E-05  .165251873434E+00  .759772956371E-05  .528934380722E+04
-      .391200000000E+06 -.192970037460E-05  .279632045438E+01  .322423875332E-05
-      .881842556282E+00  .208812500000E+03  .131753832323E+01 -.104768649749E-07
-     -.677171064036E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .312000000000E+01  .455000000000E+03  .346917659044E-07  .386498868465E-07
-      .396199000000E+06  .000000000000E+00
-S20 2018  5 17 14  2 40  .000000000000E+00  .000000000000E+00  .396242000000E+06
-      .406367200000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-     -.112459160000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S36 2018  5 17 14  4 32  .000000000000E+00  .000000000000E+00  .396282000000E+06
-      .420036880000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .367484696000E+04  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S20 2018  5 17 14  5 20  .000000000000E+00  .000000000000E+00  .396322000000E+06
-      .406367200000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-     -.112459160000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S23 2018  5 17 14  5 20  .000000000000E+00  .000000000000E+00  .396324000000E+06
-      .359446000000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .220441400000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-E14 2018  5 17 13 50  0  .658165744971E-02 -.616751094640E-11  .000000000000E+00
-      .190000000000E+02 -.665625000000E+02  .678813989613E-08 -.260792610990E+00
-     -.358372926712E-05  .165245657437E+00  .691227614880E-05  .528932658958E+04
-      .395400000000E+06 -.215321779251E-05  .279627172604E+01  .100582838058E-05
-      .881839133054E+00  .222968750000E+03  .131754849636E+01 -.116819151701E-07
-     -.657884546389E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .312000000000E+01  .455000000000E+03  .346917659044E-07  .386498868465E-07
-      .396409000000E+06  .000000000000E+00
-S36 2018  5 17 14  7 12  .000000000000E+00  .000000000000E+00  .396442000000E+06
-      .420036880000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .367484696000E+04  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S20 2018  5 17 14  8  0  .000000000000E+00  .000000000000E+00  .396482000000E+06
-      .406367200000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-     -.112459160000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S23 2018  5 17 14  8  0  .000000000000E+00  .000000000000E+00  .396484000000E+06
-      .359446000000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .220441400000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-E12 2018  5 17 13 50  0  .417666573776E-02  .843130010253E-10  .000000000000E+00
-      .190000000000E+02 -.192437500000E+03  .233795452805E-08  .115788182092E+01
-     -.890344381332E-05  .501386122778E-03  .132191926241E-04  .544061606026E+04
-      .395400000000E+06 -.353902578354E-07 -.293672768750E+01  .763684511185E-07
-      .979283181750E+00  .628437500000E+02 -.264081628266E+00 -.521593155020E-08
-     -.657170230921E-10  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .312000000000E+01  .000000000000E+00 -.144354999065E-07 -.146683305502E-07
-      .396499000000E+06  .000000000000E+00
-S36 2018  5 17 14  9 52  .000000000000E+00  .000000000000E+00  .396603000000E+06
-      .420036880000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .367484696000E+04  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S20 2018  5 17 14 10 40  .000000000000E+00  .000000000000E+00  .396642000000E+06
-      .406367200000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-     -.112459160000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S23 2018  5 17 14 10 40  .000000000000E+00  .000000000000E+00  .396645000000E+06
-      .359446000000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .220441400000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-E12 2018  5 17 14  0  0  .417671643663E-02  .843272118800E-10  .000000000000E+00
-      .200000000000E+02 -.191718750000E+03  .233259716203E-08  .123187689323E+01
-     -.886805355549E-05  .501382863149E-03  .132862478495E-04  .544061645317E+04
-      .396000000000E+06 -.447034835815E-07 -.293673076987E+01  .670552253723E-07
-      .979283174435E+00  .615000000000E+02 -.263691855687E+00 -.521307428833E-08
-     -.742888087128E-10  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .312000000000E+01  .000000000000E+00 -.144354999065E-07 -.146683305502E-07
-      .396679000000E+06  .000000000000E+00
-E14 2018  5 17 14  0  0  .658165384084E-02 -.616751094640E-11  .000000000000E+00
-      .200000000000E+02 -.666250000000E+02  .681171230659E-08 -.179837825870E+00
-     -.358745455742E-05  .165245189099E+00  .697560608387E-05  .528932536125E+04
-      .396000000000E+06 -.233761966228E-05  .279626537259E+01  .836327672005E-06
-      .881839071611E+00  .225500000000E+03  .131754730408E+01 -.115954829984E-07
-     -.851821196058E-09  .100000000000E+01  .200100000000E+04  .000000000000E+00
-      .312000000000E+01  .455000000000E+03  .346917659044E-07  .386498868465E-07
-      .396679000000E+06  .000000000000E+00
-S36 2018  5 17 14 12 32  .000000000000E+00  .000000000000E+00  .396764000000E+06
-      .420036880000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .367484696000E+04  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S20 2018  5 17 14 13 20  .000000000000E+00  .000000000000E+00  .396802000000E+06
-      .406367200000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-     -.112459160000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S23 2018  5 17 14 13 20  .000000000000E+00  .000000000000E+00  .396804000000E+06
-      .359446000000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .220441400000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S36 2018  5 17 14 15 12  .000000000000E+00  .000000000000E+00  .396924000000E+06
-      .420036880000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .367484696000E+04  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S20 2018  5 17 14 16  0  .000000000000E+00  .000000000000E+00  .396962000000E+06
-      .406367200000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-     -.112459160000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S23 2018  5 17 14 16  0  .000000000000E+00  .000000000000E+00  .396964000000E+06
-      .359446000000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .220441400000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S36 2018  5 17 14 17 52  .000000000000E+00  .000000000000E+00  .397085000000E+06
-      .420036880000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-      .367484696000E+04  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-S20 2018  5 17 14 18 40  .000000000000E+00  .000000000000E+00  .397122000000E+06
-      .406367200000E+05  .000000000000E+00  .000000000000E+00  .100000000000E+01
-     -.112459160000E+05  .000000000000E+00  .000000000000E+00  .819200000000E+04
-      .000000000000E+00  .000000000000E+00  .000000000000E+00  .000000000000E+00
-R13 2018  5 17 14 15  0 -.105034559965E-04  .000000000000E+00  .397290000000E+06
-      .663370605469E+03  .285760593414E+01  .372529029846E-08  .000000000000E+00
-     -.113617504883E+05  .127725887299E+01  .000000000000E+00 -.200000000000E+01
-      .228060634766E+05  .551796913147E+00 -.186264514923E-08  .000000000000E+00
diff --git a/src/examples/raw_201805171357.obs b/src/examples/raw_201805171357.obs
deleted file mode 100644
index cf18d78b9c11bf8ca48f2fea2bb01bb2db3e344a..0000000000000000000000000000000000000000
--- a/src/examples/raw_201805171357.obs
+++ /dev/null
@@ -1,36 +0,0 @@
-     3.03           OBSERVATION DATA    M: Mixed            RINEX VERSION / TYPE
-RTKCONV-QT 2.4.3 Eml                    20180518 083005 UTC PGM / RUN BY / DATE 
-log: /home/fherrero/Desktop/rtk_data/may17_street/rover/ra  COMMENT             
-format: u-blox                                              COMMENT             
-                                                            MARKER NAME         
-                                                            MARKER NUMBER       
-                                                            MARKER TYPE         
-                                                            OBSERVER / AGENCY   
-                                                            REC # / TYPE / VERS 
-                                                            ANT # / TYPE        
-  4789374.0336   177048.3292  4194542.6444                  APPROX POSITION XYZ 
-        0.0000        0.0000        0.0000                  ANTENNA: DELTA H/E/N
-G    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES 
-R    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES 
-E    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES 
-J    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES 
-S    4 C1C L1C D1C S1C                                      SYS / # / OBS TYPES 
-C    4 C1I L1I D1I S1I                                      SYS / # / OBS TYPES 
-  2018     5    17    14     1    2.0020000     GPS         TIME OF FIRST OBS   
-  2018     5    17    14    42    8.6010000     GPS         TIME OF LAST OBS    
-G                                                           SYS / PHASE SHIFT   
-R                                                           SYS / PHASE SHIFT   
-E                                                           SYS / PHASE SHIFT   
-J                                                           SYS / PHASE SHIFT   
-S                                                           SYS / PHASE SHIFT   
-C                                                           SYS / PHASE SHIFT   
-  0                                                         GLONASS SLOT / FRQ #
- C1C    0.000 C1P    0.000 C2C    0.000 C2P    0.000        GLONASS COD/PHS/BIS 
-                                                            END OF HEADER       
-> 2018  5 17 14  1  2.0020000  0  5                     
-G25  22348322.550 2 117441226.71621     -3039.055          45.000  
-G29  20873167.574 9                     -2449.652          23.000  
-R11  20330782.856 9 108641485.22725     -3329.648          32.000  
-G31  20920707.830 8 109939061.00922     -1587.315          39.000  
-G21  21597659.275 8 113496465.14223      1343.465          37.000  
-
diff --git a/src/examples/raw_201805171357.pos b/src/examples/raw_201805171357.pos
deleted file mode 100644
index 7030b0bf011cd2c18784093eceb12137873521f9..0000000000000000000000000000000000000000
--- a/src/examples/raw_201805171357.pos
+++ /dev/null
@@ -1,12 +0,0 @@
-% program   : RTKPOST-QT ver.2.4.3 Emlid b28
-% inp file  : /home/fherrero/Desktop/rtk_data/may17_street/rover/raw_201805171357.obs
-% inp file  : /home/fherrero/Desktop/rtk_data/may17_street/base/raw_201805171405.obs
-% inp file  : /home/fherrero/Desktop/rtk_data/may17_street/rover/raw_201805171357.nav
-% obs start : 2018/05/17 14:01:02.0 GPST (week2001 396062.0s)
-% obs end   : 2018/05/17 14:42:08.6 GPST (week2001 398528.6s)
-% ref pos   : 41.383326247    2.117100983   105.6453
-%
-% (lat/lon/height=WGS84/ellipsoidal,Q=1:fix,2:float,3:sbas,4:dgps,5:single,6:ppp,ns=# of satellites)
-%  GPST                  latitude(deg) longitude(deg)  height(m)   Q  ns   sdn(m)   sde(m)   sdu(m)  sdne(m)  sdeu(m)  sdun(m) age(s)  ratio
-2018/05/17 14:01:02.002   41.383293114    2.116101115   -91.6641   5   5  11.9771  18.8489  79.2352 -14.4364  38.1163 -29.5030 -330.00    0.0
-
diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp
index ed36ae3e1e92c58b0bb2b9f27ed360cd8a4246ac..16f173b9ee18f2a690af3dbd67574c852d222b89 100644
--- a/src/gnss_utils.cpp
+++ b/src/gnss_utils.cpp
@@ -1,69 +1,71 @@
-#include "gnss_utils/gnss_utils.h"
+#include "../include/gnss_utils.h"
 
-namespace GNSSUtils
+using namespace GNSSUtils;
+
+/******************************* RECEIVER CLASS *******************************************/
+
+Receiver::Receiver()
+{
+
+}
+
+Receiver::~Receiver()
+{
+
+}
+
+
+/* - Observation - */
+
+void Receiver::clearObservations()
+{
+  _obsVector.clear();
+}
+
+void Receiver::pushObservation(obsd_t obs)
+{
+  _obsVector.push_back(obs);
+}
+
+std::vector<obsd_t> Receiver::getObservations()
+{
+  return this->_obsVector;
+}
+
+
+/* - Navigation - */
+
+void Receiver::clearNavigation()
 {
-  GNSSUtils::getPosOutput getPos(const std::shared_ptr<GNSSUtils::Observations> & _observations,
-                                const std::shared_ptr<GNSSUtils::Navigation> & _navigation)
-  {
-    // 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;
-
-    // Define error msg
-    char msg[128] = "";
-
-    GNSSUtils::getPosOutput output;
-    sol_t sol;
-    sol = {{0}};
-
-    output.pos_stat = pntpos(&(_observations->getObservations()[0]), _observations->getObservations().size(),
-                            &(_navigation->getNavigation()),
-                            &prcopt, &sol, NULL, NULL, msg);
-
-    output.time = sol.time.time;
-    output.time = sol.time.sec;
-    output.pos  = Eigen::Map<Eigen::Vector3d>(sol.rr);
-    output.vel  = Eigen::Map<Eigen::Vector3d>(&sol.rr[3]);
-    output.pos_covar << sol.qr[0], sol.qr[3], sol.qr[5],
-                        sol.qr[3], sol.qr[1], sol.qr[4],
-                        sol.qr[5], sol.qr[3], sol.qr[2];
-
-    // XXX: segmentation fault here.
-    // if (sol.dtr != NULL)
-    // {
-    //   output.rcv_bias << sol.dtr[0], sol.dtr[1], sol.dtr[2], sol.dtr[3], sol.dtr[4], sol.dtr[5];
-    // }
-
-    output.type  = sol.type;
-    output.stat  = sol.stat;
-    output.ns    = sol.ns;
-    output.age   = sol.age;
-    output.ratio = sol.ratio;
-    output.lat_lon = ecefToLatLon(output.pos);
-
-    return output;
-  }
-
-  Eigen::Vector3d ecefToLatLon(const Eigen::Vector3d & _ecef)
-  {
-    double pos[3];
-    ecef2pos(&_ecef(0), pos);
-
-    return Eigen::Map<Eigen::Vector3d>(pos);
-  }
+  _navVector.clear();
+}
 
+void Receiver::pushNavigation(nav_t nav)
+{
+  _navVector.push_back(nav);
+}
 
+std::vector<nav_t> Receiver::getNavigation()
+{
+  return this->_navVector;
 }
+
+
+
+
+
+
+
+int Receiver::getSPP(double *azel, char *msg)
+{
+  obsd_t *obs = &this->_obsVector[0];
+  int n = this->_obsVector.size();
+  
+  return int pntpos(*obs, n, nav_t *nav, *opt, *sol, *azel, *ssat, *msg)
+}
+
+
+
+
+
+
diff --git a/src/navigation.cpp b/src/navigation.cpp
deleted file mode 100644
index 0bdf9edee36de392231cbee5b9fbaf127a340725..0000000000000000000000000000000000000000
--- a/src/navigation.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-#include "gnss_utils/navigation.h"
-
-
-using namespace GNSSUtils;
-
-
-Navigation::Navigation()
-{}
-
-Navigation::~Navigation()
-{
-  clearNavigation();
-  //free(_nav);
-}
-
-void Navigation::clearNavigation()
-{
-  deleteEphemeris();
-  deleteGLONASSEphemeris();
-  deleteSBASEphemeris();
-  deleteAlmanac();
-}
-
-void Navigation::setNavigation(nav_t _nav)
-{
-  nav_ = _nav;
-}
-
-const nav_t & Navigation::getNavigation() const
-{
-  return nav_;
-}
-
-nav_t & Navigation::getNavigation()
-{
-  return nav_;
-}
-
-
-/****************** Array memory management ******************/
-void Navigation::allocateEphemeris(int n_sat)
-{
-
-  eph_t eph0 ={0,-1,-1};
-  int i;
-  nav_.eph = (eph_t *) malloc(sizeof(eph_t)*n_sat);
-  for (i=0;i<n_sat;i++) nav_.eph[i] = eph0;
-  /*
-  if (this->_nav->eph)
-  {
-    //_nav->eph = (eph_t *)realloc(_nav->eph, 2 * MAXSAT * sizeof(eph_t));
-  }
-
-  else
-  {
-    this->_nav->eph = (eph_t *) malloc(2 * MAXSAT * sizeof(eph_t));
-  }
-  */
-}
-void Navigation::deleteEphemeris()
-{
-  free(nav_.eph);
-}
-
-void Navigation::allocateGLONASSEphemeris(int n_sat)
-{
-  geph_t geph0={0,-1};
-  int i;
-  nav_.geph = (geph_t *)malloc(sizeof(geph_t)*n_sat);
-  /*
-  for (i=0;i<NSATGLO   ;i++) _nav.geph[i] = geph0;
-
-  if (this->_nav->geph)
-  {
-    //_nav->geph = (geph_t *)realloc(_nav->geph, NSATGLO * sizeof(geph_t));
-  }
-
-  else
-  {
-    this->_nav->geph = (geph_t *) malloc(2 * NSATGLO * sizeof(geph_t));
-  }
-  */
-
-}
-void Navigation::deleteGLONASSEphemeris()
-{
-  free(nav_.geph);
-  // if (_nav->geph)
-  // {
-  //   free(_nav->geph);
-  // }
-  //
-  // else
-  // {
-  //   // Do nothing
-  // }
-  //
-}
-
-void Navigation::allocateSBASEphemeris(int n_sat)
-{
-  seph_t seph0={0};
-  int i;
-
-  nav_.seph = (seph_t *)malloc(sizeof(seph_t)*n_sat);
-  for (i=0; i<n_sat; i++) nav_.seph[i] = seph0;
-  /*
-  if (this->_nav->seph)
-  {
-    //_nav->seph = (seph_t *)realloc(_nav->seph, NSATSBS * sizeof(seph_t));
-  }
-
-  else
-  {
-    this->_nav->seph = (seph_t *) malloc(2 * NSATSBS * sizeof(seph_t));
-  }
-  */
-}
-void Navigation::deleteSBASEphemeris()
-{
-  free(nav_.seph);
-  // if (_nav->seph)
-  // {
-  //   free(_nav->seph);
-  // }
-  //
-  // else
-  // {
-  //   // Do nothing
-  // }
-}
-
-void Navigation::allocateAlmanac(int n_sat)
-{
-  alm_t  alm0 ={0,-1};
-  int i;
-
-  nav_.alm = (alm_t *)malloc(sizeof(alm_t)*n_sat);
-  for (i=0; i<n_sat; i++) nav_.alm[i] = alm0;
-  /*
-  if (this->_nav->alm)
-  {
-    //_nav->alm = (alm_t *)realloc(_nav->alm, MAXSAT * sizeof(alm_t));
-  }
-
-  else
-  {
-    this->_nav->alm = (alm_t *) malloc(2 * MAXSAT * sizeof(alm_t));
-  }
-  */
-}
-void Navigation::deleteAlmanac()
-{
-  free(nav_.alm);
-
-  // if (_nav->alm)
-  // {
-  //   free(_nav->alm);
-  // }
-  //
-  // else
-  // {
-  //   // Do nothing
-  // }
-}
diff --git a/src/observations.cpp b/src/observations.cpp
deleted file mode 100644
index db7529d4d7ad37a518f141057b7e120322bb7952..0000000000000000000000000000000000000000
--- a/src/observations.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "gnss_utils/observations.h"
-
-using namespace GNSSUtils;
-
-
-Observations::Observations()
-{
-
-}
-
-Observations::~Observations()
-{
-  this->obs_vector_.erase(obs_vector_.begin(), obs_vector_.end());
-}
-
-void Observations::clearObservations()
-{
-  this->obs_vector_.clear();
-}
-
-void Observations::pushObservation(obsd_t obs)
-{
-  this->obs_vector_.push_back(obs);
-}
-
-std::vector<obsd_t> Observations::getObservations()
-{
-  return this->obs_vector_;
-}