diff --git a/CMakeLists.txt b/CMakeLists.txt
index a459fa15dc1983a336dc48c78e939a921de07574..f68f9b09de8b7a3bf4b8651cee43710f64ca93e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,10 +137,10 @@ include_directories(
 # add_library(${PROJECT_NAME}
 #   src/${PROJECT_NAME}/wolf_ros.cpp
 # )
-add_library(wolf_subscriber_gnss src/wolf_subscriber_gnss.cpp)
-add_library(wolf_subscriber_gnss_fix src/wolf_subscriber_gnss_fix.cpp)
-add_library(wolf_subscriber_gnss_TDCP src/wolf_subscriber_gnss_TDCP.cpp)
-add_library(wolf_subscriber_gnss_ublox src/wolf_subscriber_gnss_ublox.cpp)
+add_library(subscriber_gnss src/subscriber_gnss.cpp)
+add_library(subscriber_gnss_fix src/subscriber_gnss_fix.cpp)
+add_library(subscriber_gnss_Tdcp src/subscriber_gnss_Tdcp.cpp)
+add_library(subscriber_gnss_ublox src/subscriber_gnss_ublox.cpp)
 
 ## Add cmake target dependencies of the library
 ## as an example, code may need to be generated before libraries
@@ -164,22 +164,22 @@ add_library(wolf_subscriber_gnss_ublox src/wolf_subscriber_gnss_ublox.cpp)
 #add_dependencies(${PROJECT_NAME}_visualizer ${PROJECT_NAME}_gencfg)
 
 ## Specify libraries to link a library or executable target against
-target_link_libraries(wolf_subscriber_gnss 
+target_link_libraries(subscriber_gnss
 					  ${wolf_LIBRARIES} 
 					  ${wolfgnss_LIBRARIES} 
 					  ${iri_gnss_msgs_LIBRARIES}
 					  )
-target_link_libraries(wolf_subscriber_gnss_fix 
+target_link_libraries(subscriber_gnss_fix
 					  ${wolf_LIBRARIES} 
 					  ${wolfgnss_LIBRARIES} 
 					  ${iri_gnss_msgs_LIBRARIES}
 					  )
-target_link_libraries(wolf_subscriber_gnss_TDCP 
+target_link_libraries(subscriber_gnss_Tdcp
 					  ${wolf_LIBRARIES} 
 					  ${wolfgnss_LIBRARIES} 
 					  ${iri_gnss_msgs_LIBRARIES}
             		  )
-target_link_libraries(wolf_subscriber_gnss_ublox 
+target_link_libraries(subscriber_gnss_ublox
 					  ${wolf_LIBRARIES} 
 					  ${wolfgnss_LIBRARIES} 
 					  ${iri_gnss_msgs_LIBRARIES}
diff --git a/include/wolf_subscriber_gnss.h b/include/subscriber_gnss.h
similarity index 81%
rename from include/wolf_subscriber_gnss.h
rename to include/subscriber_gnss.h
index de3a920f77e81b74b13c98f42d56874c01e9c430..abe58749cf110a1bc103996a090a238bcb2ccd79 100644
--- a/include/wolf_subscriber_gnss.h
+++ b/include/subscriber_gnss.h
@@ -26,13 +26,13 @@
 /**************************
  *    WOLF-ROS includes   *
  **************************/
-#include "wolf_subscriber.h"
+#include "subscriber.h"
 #include "subscriber_factory.h"
 #include "gnss_utils/gnss_utils.h"
 
 using namespace wolf;
 
-class WolfSubscriberGnss : public WolfSubscriber
+class SubscriberGnss : public Subscriber
 {
     protected:
 
@@ -47,7 +47,7 @@ class WolfSubscriberGnss : public WolfSubscriber
 
     public:
         // Constructor
-        WolfSubscriberGnss(const SensorBasePtr& sensor_ptr);
+        SubscriberGnss(const SensorBasePtr& sensor_ptr);
 
         virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic);
 
@@ -55,6 +55,6 @@ class WolfSubscriberGnss : public WolfSubscriber
 
         void callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg);
 
-        static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
+        static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
 };
-WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnss)
+WOLF_REGISTER_SUBSCRIBER(SubscriberGnss)
diff --git a/include/wolf_subscriber_gnss_TDCP.h b/include/subscriber_gnss_Tdcp.h
similarity index 79%
rename from include/wolf_subscriber_gnss_TDCP.h
rename to include/subscriber_gnss_Tdcp.h
index 145a48b289961271c0d5c40ec0cd058772b50951..be74dbb3047aada1ae1a4af443cc53950b352334 100644
--- a/include/wolf_subscriber_gnss_TDCP.h
+++ b/include/subscriber_gnss_Tdcp.h
@@ -26,13 +26,13 @@
 /**************************
  *    WOLF-ROS includes   *
  **************************/
-#include "wolf_subscriber.h"
+#include "subscriber.h"
 #include "subscriber_factory.h"
 #include "gnss_utils/gnss_utils.h"
 
 using namespace wolf;
 
-class WolfSubscriberGnssTDCP : public WolfSubscriber
+class SubscriberGnssTdcp : public Subscriber
 {
     protected:
 
@@ -44,7 +44,7 @@ class WolfSubscriberGnssTDCP : public WolfSubscriber
 
     public:
         // Constructor
-        WolfSubscriberGnssTDCP(const SensorBasePtr& sensor_ptr);
+        SubscriberGnssTdcp(const SensorBasePtr& sensor_ptr);
 
         virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic);
 
@@ -52,6 +52,6 @@ class WolfSubscriberGnssTDCP : public WolfSubscriber
 
         void callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg);
 
-        static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
+        static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
 };
-WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssTDCP)
+WOLF_REGISTER_SUBSCRIBER(SubscriberGnssTdcp)
diff --git a/include/wolf_subscriber_gnss_fix.h b/include/subscriber_gnss_fix.h
similarity index 73%
rename from include/wolf_subscriber_gnss_fix.h
rename to include/subscriber_gnss_fix.h
index 2a16a5f1bba570292812770344492f3444ae1095..33c4b70cdf132a93c768405d5f5503fed133d010 100644
--- a/include/wolf_subscriber_gnss_fix.h
+++ b/include/subscriber_gnss_fix.h
@@ -24,22 +24,22 @@
 /**************************
  *    WOLF-ROS includes   *
  **************************/
-#include "wolf_subscriber.h"
+#include "subscriber.h"
 #include "subscriber_factory.h"
 #include "gnss_utils/gnss_utils.h"
 
 using namespace wolf;
 
-class WolfSubscriberGnssFix : public WolfSubscriber
+class SubscriberGnssFix : public Subscriber
 {
     public:
         // Constructor
-        WolfSubscriberGnssFix(const SensorBasePtr& sensor_ptr);
+        SubscriberGnssFix(const SensorBasePtr& sensor_ptr);
 
         virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic);
 
         void callback(const sensor_msgs::NavSatFix::ConstPtr& msg);
 
-        static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
+        static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
 };
-WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssFix)
+WOLF_REGISTER_SUBSCRIBER(SubscriberGnssFix)
diff --git a/include/wolf_subscriber_gnss_ublox.h b/include/subscriber_gnss_ublox.h
similarity index 72%
rename from include/wolf_subscriber_gnss_ublox.h
rename to include/subscriber_gnss_ublox.h
index 920d61dbae5ccb5ca4f7e72ddf84cc7084e19835..f16d2bc01c1e3b7dd70bd30403b2ba792dfe1259 100644
--- a/include/wolf_subscriber_gnss_ublox.h
+++ b/include/subscriber_gnss_ublox.h
@@ -17,27 +17,27 @@
 /**************************
  *    WOLF-ROS includes   *
  **************************/
-#include "wolf_subscriber.h"
+#include "subscriber.h"
 #include "subscriber_factory.h"
 #include "gnss_utils/gnss_utils.h"
 #include "gnss_utils/ublox_raw.h"
 
 using namespace wolf;
 
-class WolfSubscriberGnssUblox : public WolfSubscriber
+class SubscriberGnssUblox : public Subscriber
 {
     public:
         // Constructor
-        WolfSubscriberGnssUblox(const SensorBasePtr& sensor_ptr);
+        SubscriberGnssUblox(const SensorBasePtr& sensor_ptr);
 
         virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic);
 
         void callback(const std_msgs::UInt8MultiArray& msg);
 
-        static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
+        static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr);
 
     protected:
 
         GNSSUtils::UBloxRaw ublox_raw_;
 };
-WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssUblox)
+WOLF_REGISTER_SUBSCRIBER(SubscriberGnssUblox)
diff --git a/src/wolf_subscriber_gnss.cpp b/src/subscriber_gnss.cpp
similarity index 65%
rename from src/wolf_subscriber_gnss.cpp
rename to src/subscriber_gnss.cpp
index 0030098534219359619535428c6c12f9c5c8c8c8..1ddc25f394627c18d05bf22ede1e31ded50b745d 100644
--- a/src/wolf_subscriber_gnss.cpp
+++ b/src/subscriber_gnss.cpp
@@ -3,8 +3,8 @@
 using namespace wolf;
 
 // Constructor
-WolfSubscriberGnss::WolfSubscriberGnss(const SensorBasePtr& sensor_ptr) :
-        WolfSubscriber(sensor_ptr)
+SubscriberGnss::SubscriberGnss(const SensorBasePtr& sensor_ptr) :
+        Subscriber(sensor_ptr)
 {
     //prcopt_ = prcopt_default;
     //prcopt_.mode = PMODE_SINGLE;
@@ -22,14 +22,14 @@ WolfSubscriberGnss::WolfSubscriberGnss(const SensorBasePtr& sensor_ptr) :
 }
 
 
-void WolfSubscriberGnss::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
+void SubscriberGnss::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
 {
-    sub_     = nh.subscribe(topic+std::string("_obs"), 1, &WolfSubscriberGnss::callbackObservation, this);
-    sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &WolfSubscriberGnss::callbackNavigation, this);
+    sub_     = nh.subscribe(topic+std::string("_obs"), 1, &SubscriberGnss::callbackObservation, this);
+    sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &SubscriberGnss::callbackNavigation, this);
 }
 
 
-void WolfSubscriberGnss::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg)
+void SubscriberGnss::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg)
 {
     ROS_INFO("callbackObs!");
     if (last_nav_ptr_==nullptr)
@@ -44,7 +44,7 @@ void WolfSubscriberGnss::callbackObservation(const iri_gnss_msgs::Observation::C
     new_capture->process();
 }
 
-void WolfSubscriberGnss::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg)
+void SubscriberGnss::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg)
 {
     ROS_INFO("callbackNav!");
 
@@ -61,7 +61,7 @@ void WolfSubscriberGnss::callbackNavigation(const iri_gnss_msgs::Navigation::Con
 //    }
 }
 
-std::shared_ptr<WolfSubscriber> WolfSubscriberGnss::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
+std::shared_ptr<Subscriber> SubscriberGnss::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
 {
-    return std::make_shared<WolfSubscriberGnss>(_sensor_ptr);
+    return std::make_shared<SubscriberGnss>(_sensor_ptr);
 }
diff --git a/src/subscriber_gnss_Tdcp.cpp b/src/subscriber_gnss_Tdcp.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4f8442f6e8656cccc736d548c569b6b40c23e159
--- /dev/null
+++ b/src/subscriber_gnss_Tdcp.cpp
@@ -0,0 +1,50 @@
+#include "../include/wolf_subscriber_gnss_Tdcp.h"
+
+using namespace wolf;
+
+// Constructor
+SubscriberGnssTdcp::SubscriberGnssTdcp(const SensorBasePtr& sensor_ptr) :
+        Subscriber(sensor_ptr)
+{
+    // TODO copied from Tdcp_ros
+}
+
+void SubscriberGnssTdcp::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
+{
+    sub_     = nh.subscribe(topic+std::string("_obs"), 1, &SubscriberGnssTdcp::callbackObservation, this);
+    sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &SubscriberGnssTdcp::callbackNavigation, this);
+}
+
+void SubscriberGnssTdcp::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg)
+{
+    ROS_INFO("callbackObs!");
+    if (last_nav_ptr_==nullptr)
+        return;
+
+    // TODO copied from Tdcp_ros
+
+//    GNSSUtils::ObservationsPtr obs_ptr = std::make_shared<GNSSUtils::Observations>();
+//    GNSSUtils::fillObservation(*obs_ptr, msg);
+//    CaptureGnssPtr new_capture = std::make_shared<CaptureGnss>(TimeStamp(msg->header.stamp.sec, msg->header.stamp.nsec),
+//                                                               sensor_ptr_,
+//                                                               obs_ptr,
+//                                                               last_nav_ptr_);
+//    new_capture->process();
+//
+}
+
+void SubscriberGnssTdcp::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg)
+{
+    ROS_INFO("callbackNav!");
+
+    last_nav_ptr_ = std::make_shared<GNSSUtils::Navigation>();
+    GNSSUtils::fillNavigation(*last_nav_ptr_, msg);
+    last_nav_ptr_->print();
+
+    // TODO copied from Tdcp_ros
+}
+
+std::shared_ptr<Subscriber> SubscriberGnssTdcp::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
+{
+    return std::make_shared<SubscriberGnssTdcp>(_sensor_ptr);
+}
diff --git a/src/wolf_subscriber_gnss_fix.cpp b/src/subscriber_gnss_fix.cpp
similarity index 62%
rename from src/wolf_subscriber_gnss_fix.cpp
rename to src/subscriber_gnss_fix.cpp
index 0587ed8ae0ca7c6b86bcf32cd6d6ea42f0b6fad3..95c648abdfbfd6db86cea85a2cc1829f88d15034 100644
--- a/src/wolf_subscriber_gnss_fix.cpp
+++ b/src/subscriber_gnss_fix.cpp
@@ -3,18 +3,18 @@
 using namespace wolf;
 
 // Constructor
-WolfSubscriberGnssFix::WolfSubscriberGnssFix(const SensorBasePtr& sensor_ptr) :
-        WolfSubscriber(sensor_ptr)
+SubscriberGnssFix::SubscriberGnssFix(const SensorBasePtr& sensor_ptr) :
+        Subscriber(sensor_ptr)
 {
 }
 
 
-void WolfSubscriberGnssFix::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
+void SubscriberGnssFix::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
 {
-    sub_     = nh.subscribe(topic, 1, &WolfSubscriberGnssFix::callback, this);
+    sub_     = nh.subscribe(topic, 1, &SubscriberGnssFix::callback, this);
 }
 
-void WolfSubscriberGnssFix::callback(const sensor_msgs::NavSatFix::ConstPtr& msg)
+void SubscriberGnssFix::callback(const sensor_msgs::NavSatFix::ConstPtr& msg)
 {
     Eigen::Matrix3d cov = Eigen::Map<const Eigen::Matrix3d>(msg->position_covariance.data());
 
@@ -27,7 +27,7 @@ void WolfSubscriberGnssFix::callback(const sensor_msgs::NavSatFix::ConstPtr& msg
                                                                       false); // false = {LatLonAlt fix and ENU cov}
     cap_gnss_ptr->process();
 }
-std::shared_ptr<WolfSubscriber> WolfSubscriberGnssFix::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
+std::shared_ptr<Subscriber> SubscriberGnssFix::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
 {
-    return std::make_shared<WolfSubscriberGnssFix>(_sensor_ptr);
+    return std::make_shared<SubscriberGnssFix>(_sensor_ptr);
 }
diff --git a/src/wolf_subscriber_gnss_ublox.cpp b/src/subscriber_gnss_ublox.cpp
similarity index 63%
rename from src/wolf_subscriber_gnss_ublox.cpp
rename to src/subscriber_gnss_ublox.cpp
index 33bcbff9b2a85f4f96627ac52df6356a619b0e58..f24b5ef4d9cee0e071bef8471ad89aa211c401ae 100644
--- a/src/wolf_subscriber_gnss_ublox.cpp
+++ b/src/subscriber_gnss_ublox.cpp
@@ -1,20 +1,20 @@
-#include "../include/wolf_subscriber_gnss_ublox.h"
+#include "../include/subscriber_gnss_ublox.h"
 
 using namespace wolf;
 
 // Constructor
-WolfSubscriberGnssUblox::WolfSubscriberGnssUblox(const SensorBasePtr& sensor_ptr) :
-        WolfSubscriber(sensor_ptr)
+SubscriberGnssUblox::SubscriberGnssUblox(const SensorBasePtr& sensor_ptr) :
+        Subscriber(sensor_ptr)
 {
 }
 
 
-void WolfSubscriberGnssUblox::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
+void SubscriberGnssUblox::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
 {
-    sub_     = nh.subscribe(topic, 100, &WolfSubscriberGnssUblox::callback, this);
+    sub_     = nh.subscribe(topic, 100, &SubscriberGnssUblox::callback, this);
 }
 
-void WolfSubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg)
+void SubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg)
 
 {
     GNSSUtils::RawDataType res = ublox_raw_.addDataStream(msg.data);
@@ -42,7 +42,7 @@ void WolfSubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg)
         //ROS_INFO("Capture GNSS processed!");
     }
 }
-std::shared_ptr<WolfSubscriber> WolfSubscriberGnssUblox::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
+std::shared_ptr<Subscriber> SubscriberGnssUblox::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
 {
-    return std::make_shared<WolfSubscriberGnssUblox>(_sensor_ptr);
+    return std::make_shared<SubscriberGnssUblox>(_sensor_ptr);
 }
diff --git a/src/wolf_subscriber_gnss_TDCP.cpp b/src/wolf_subscriber_gnss_TDCP.cpp
deleted file mode 100644
index e70df9e2f73d189d9513eb471a478a3486c7ac4f..0000000000000000000000000000000000000000
--- a/src/wolf_subscriber_gnss_TDCP.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "../include/wolf_subscriber_gnss_TDCP.h"
-
-using namespace wolf;
-
-// Constructor
-WolfSubscriberGnssTDCP::WolfSubscriberGnssTDCP(const SensorBasePtr& sensor_ptr) :
-        WolfSubscriber(sensor_ptr)
-{
-    // TODO copied from TDCP_ros
-}
-
-void WolfSubscriberGnssTDCP::initSubscriber(ros::NodeHandle& nh, const std::string& topic)
-{
-    sub_     = nh.subscribe(topic+std::string("_obs"), 1, &WolfSubscriberGnssTDCP::callbackObservation, this);
-    sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &WolfSubscriberGnssTDCP::callbackNavigation, this);
-}
-
-void WolfSubscriberGnssTDCP::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg)
-{
-    ROS_INFO("callbackObs!");
-    if (last_nav_ptr_==nullptr)
-        return;
-
-    // TODO copied from TDCP_ros
-
-//    GNSSUtils::ObservationsPtr obs_ptr = std::make_shared<GNSSUtils::Observations>();
-//    GNSSUtils::fillObservation(*obs_ptr, msg);
-//    CaptureGnssPtr new_capture = std::make_shared<CaptureGnss>(TimeStamp(msg->header.stamp.sec, msg->header.stamp.nsec),
-//                                                               sensor_ptr_,
-//                                                               obs_ptr,
-//                                                               last_nav_ptr_);
-//    new_capture->process();
-//
-}
-
-void WolfSubscriberGnssTDCP::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg)
-{
-    ROS_INFO("callbackNav!");
-
-    last_nav_ptr_ = std::make_shared<GNSSUtils::Navigation>();
-    GNSSUtils::fillNavigation(*last_nav_ptr_, msg);
-    last_nav_ptr_->print();
-
-    // TODO copied from TDCP_ros
-}
-
-std::shared_ptr<WolfSubscriber> WolfSubscriberGnssTDCP::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr)
-{
-    return std::make_shared<WolfSubscriberGnssTDCP>(_sensor_ptr);
-}