diff --git a/modules/catkin_ws/src/car/CMakeLists.txt b/modules/catkin_ws/src/car/CMakeLists.txt
index 0b32354a32a5f5cf95f86830b13ac19a4d44179b..ea019a948b785a7d9670086b15d1c6db2b143104 100644
--- a/modules/catkin_ws/src/car/CMakeLists.txt
+++ b/modules/catkin_ws/src/car/CMakeLists.txt
@@ -7,7 +7,7 @@ set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_FLAGS "-pthread")
 
 # Include Boost
-find_package(Boost REQUIRED COMPONENTS system regex)
+find_package(Boost REQUIRED)
 
 find_package(catkin REQUIRED COMPONENTS
   roscpp
diff --git a/modules/catkin_ws/src/car/include/environment/Environment.h b/modules/catkin_ws/src/car/include/environment/Environment.h
index ff28f96119a14ae1f097def6ffe0bbfc6ab184ce..85ec029893aa02a3c167e2a18eceb4855e02e015 100644
--- a/modules/catkin_ws/src/car/include/environment/Environment.h
+++ b/modules/catkin_ws/src/car/include/environment/Environment.h
@@ -3,10 +3,13 @@
 
 #include <nodelet/nodelet.h>
 #include <ros/ros.h>
+#include <boost/numeric/ublas/vector.hpp>
+#include <boost/numeric/ublas/matrix.hpp>
 
 #include "car/ussDataMsg.h"
 #include "car/camDataMsg.h"
 
+using namespace boost::numeric::ublas;
 namespace car
 {
 class Environment : public nodelet::Nodelet
@@ -35,6 +38,16 @@ private:
     void ussDataCallback(const ussDataMsg::ConstPtr & inMsg);
 
     void camDataCallback(const camDataMsg::ConstPtr & inMsg);
+
+    zero_vector<double> x {2};
+    zero_matrix<double> P {2, 2};
+    zero_matrix<double> F {2, 2};
+    zero_matrix<double> Q {2, 2};
+    zero_vector<double> H {2};
+    zero_vector<double> R {1};
+    
+    void predict();
+    void update(vector<double> mesVec);
 };
 }
 #endif
diff --git a/modules/catkin_ws/src/car/src/environment/Environment.cpp b/modules/catkin_ws/src/car/src/environment/Environment.cpp
index 8718a215ba057ff7b779c80441482643e229166e..1f5d69fdc8a6aac3deace1abbffa2d9429df7a5a 100644
--- a/modules/catkin_ws/src/car/src/environment/Environment.cpp
+++ b/modules/catkin_ws/src/car/src/environment/Environment.cpp
@@ -11,27 +11,27 @@ PLUGINLIB_EXPORT_CLASS(car::Environment, nodelet::Nodelet);
 
 namespace car
 {
-	Environment::Environment(ros::NodeHandle &nh, std::string &name) :
+Environment::Environment(ros::NodeHandle &nh, std::string &name) :
     nh_(nh), 
     name_(name),
     distance(0),
     relativeSpeed(0) {}
   
-	Environment::Environment() {}
+Environment::Environment() {}
   
-	Environment::~Environment() {}
-  
-	void Environment::onInit()
-	{
-		NODELET_INFO("Environment::onInit -- START");
-	  environmentData = nh_.advertise<environmentDataMsg>("environmentData", 1);
-	  ussData = nh_.subscribe("ussData", 1, &Environment::ussDataCallback, this);
-	  camData = nh_.subscribe("camData", 1, &Environment::camDataCallback, this);
-		NODELET_INFO("Environment::onInit -- END");
-	}
+Environment::~Environment() {}
+ 
+void Environment::onInit()
+{
+    NODELET_INFO("Environment::onInit -- START");
+    environmentData = nh_.advertise<environmentDataMsg>("environmentData", 1);
+    ussData = nh_.subscribe("ussData", 1, &Environment::ussDataCallback, this);
+    camData = nh_.subscribe("camData", 1, &Environment::camDataCallback, this);
+    NODELET_INFO("Environment::onInit -- END");
+}
 
-  void Environment::ussDataCallback(const ussDataMsg::ConstPtr& inMsg)
-  {
+void Environment::ussDataCallback(const ussDataMsg::ConstPtr& inMsg)
+{
     // std::cout << "Environment recived new uss data (" << inMsg->distance << ").\n";
     distance = inMsg->distance;
     relativeSpeed = 1.0;
@@ -41,12 +41,10 @@ namespace car
     outMsg.relativeSpeed = relativeSpeed;
     
     environmentData.publish(outMsg);
-  }
+}
 
-  void Environment::camDataCallback(const camDataMsg::ConstPtr& inMsg)
-  {
+void Environment::camDataCallback(const camDataMsg::ConstPtr& inMsg)
+{
     // std::cout << "Environment recived new cam data ( ).\n";
-  }
-  
-  
+}
 }