diff --git a/src/examples/build_from_scratch_test.cpp b/src/examples/build_from_scratch_test.cpp
index f19e9aceae41a5617555e10faa59fe7c398147a1..8313acd4010b41b71fc5fb7dae45177b2ed4f4b8 100644
--- a/src/examples/build_from_scratch_test.cpp
+++ b/src/examples/build_from_scratch_test.cpp
@@ -14,7 +14,7 @@ int main(int argc, char *argv[])
     std::vector<double> x,y,heading;
  
     road0=new CRoad();
-    road0->set_num_lanes(1);
+    road0->set_num_lanes(2);
     road0->set_lane_width(4.0);
     road0->set_start_point(20.0,60.0,3.14159,0.0);
     road0->add_segment(0.0,60.0,3.14159,0.0);
@@ -23,7 +23,7 @@ int main(int argc, char *argv[])
     road0->add_segment(0.0,0.0,0.0,0.0);
     road0->add_segment(20.0,0.0,0.0,0.0);
     road1=new CRoad();
-    road1->set_num_lanes(1);
+    road1->set_num_lanes(2);
     road1->set_lane_width(4.0);
     road1->set_start_point(20.0,0.0,3.14159,0.0);
     road1->add_segment(0.0,0.0,3.14159,0.0);
@@ -32,17 +32,17 @@ int main(int argc, char *argv[])
     road1->add_segment(0.0,60.0,0.0,0.0);
     road1->add_segment(20.0,60.0,0.0,0.0);
     road2=new CRoad();
-    road2->set_num_lanes(1);
+    road2->set_num_lanes(2);
     road2->set_lane_width(4.0);
     road2->set_start_point(30.0,50.0,4.71238898,0.0);
     road2->add_segment(30.0,10.0,4.71238898,0.0);
     road3=new CRoad();
-    road3->set_num_lanes(1);
+    road3->set_num_lanes(2);
     road3->set_lane_width(4.0);
     road3->set_start_point(30.0,10.0,1.5707,0.0);
     road3->add_segment(30.0,50.0,1.5707,0.0);
     road4=new CRoad();
-    road4->set_num_lanes(1);
+    road4->set_num_lanes(2);
     road4->set_lane_width(4.0);
     road4->set_start_point(40.0,60.0,0.0,0.0);
     road4->add_segment(60.0,60.0,0.0,0.0);
@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
     road4->add_segment(60.0,0.0,3.14159,0.0);
     road4->add_segment(40.0,0.0,3.14159,0.0);
     road5=new CRoad();
-    road5->set_num_lanes(1);
+    road5->set_num_lanes(2);
     road5->set_lane_width(4.0);
     road5->set_start_point(40.0,0.0,0.0,0.0);
     road5->add_segment(60.0,0.0,0.0,0.0);
@@ -70,6 +70,10 @@ int main(int argc, char *argv[])
     map.add_road(road4);
     map.add_road(road5);
 
+    map.set_opposite_direction_roads_by_id(road0->get_id(),road1->get_id());
+    map.set_opposite_direction_roads_by_id(road2->get_id(),road3->get_id());
+    map.set_opposite_direction_roads_by_id(road4->get_id(),road5->get_id());
+
     map.add_junction(junction0);
     map.add_junction(junction1);
 
@@ -80,17 +84,17 @@ int main(int argc, char *argv[])
     junction0->add_outgoing_road(road2);
     junction0->add_outgoing_road(road4);
     junction0->link_roads_by_id(road1->get_id(),road2->get_id());
-    junction0->link_lanes_by_id(road1->get_id(),0,road2->get_id(),0);
+    junction0->link_same_lanes_by_id(road1->get_id(),road2->get_id());
     junction0->link_roads_by_id(road1->get_id(),road4->get_id());
-    junction0->link_lanes_by_id(road1->get_id(),0,road4->get_id(),0);
+    junction0->link_same_lanes_by_id(road1->get_id(),road4->get_id());
     junction0->link_roads_by_id(road3->get_id(),road0->get_id());
-    junction0->link_lanes_by_id(road3->get_id(),0,road0->get_id(),0);
+    junction0->link_same_lanes_by_id(road3->get_id(),road0->get_id());
     junction0->link_roads_by_id(road3->get_id(),road4->get_id());
-    junction0->link_lanes_by_id(road3->get_id(),0,road4->get_id(),0);
+    junction0->link_same_lanes_by_id(road3->get_id(),road4->get_id());
     junction0->link_roads_by_id(road5->get_id(),road0->get_id());
-    junction0->link_lanes_by_id(road5->get_id(),0,road0->get_id(),0);
+    junction0->link_same_lanes_by_id(road5->get_id(),road0->get_id());
     junction0->link_roads_by_id(road5->get_id(),road2->get_id());
-    junction0->link_lanes_by_id(road5->get_id(),0,road2->get_id(),0);
+    junction0->link_same_lanes_by_id(road5->get_id(),road2->get_id());
 
     junction1->add_incomming_road(road0);
     junction1->add_incomming_road(road2);
@@ -99,18 +103,20 @@ int main(int argc, char *argv[])
     junction1->add_outgoing_road(road3);
     junction1->add_outgoing_road(road5);
     junction1->link_roads_by_id(road0->get_id(),road3->get_id());
-    junction1->link_lanes_by_id(road0->get_id(),0,road3->get_id(),0);
+    junction1->link_same_lanes_by_id(road0->get_id(),road3->get_id());
     junction1->link_roads_by_id(road0->get_id(),road5->get_id());
-    junction1->link_lanes_by_id(road0->get_id(),0,road5->get_id(),0);
+    junction1->link_same_lanes_by_id(road0->get_id(),road5->get_id());
     junction1->link_roads_by_id(road2->get_id(),road1->get_id());
-    junction1->link_lanes_by_id(road2->get_id(),0,road1->get_id(),0);
+    junction1->link_same_lanes_by_id(road2->get_id(),road1->get_id());
     junction1->link_roads_by_id(road2->get_id(),road5->get_id());
-    junction1->link_lanes_by_id(road2->get_id(),0,road5->get_id(),0);
+    junction1->link_same_lanes_by_id(road2->get_id(),road5->get_id());
     junction1->link_roads_by_id(road4->get_id(),road3->get_id());
-    junction1->link_lanes_by_id(road4->get_id(),0,road3->get_id(),0);
+    junction1->link_same_lanes_by_id(road4->get_id(),road3->get_id());
     junction1->link_roads_by_id(road4->get_id(),road1->get_id());
-    junction1->link_lanes_by_id(road4->get_id(),0,road1->get_id(),0);
+    junction1->link_same_lanes_by_id(road4->get_id(),road1->get_id());
 
+    map.save_opendrive("test_road.xodr");
+  
     map.get_lane_geometry(x,y,heading);
     for(unsigned int i=0;i<x.size();i++)
       std::cout << x[i] << "," << y[i] << "," << heading[i] << std::endl;
diff --git a/src/examples/opendrive_import_test.cpp b/src/examples/opendrive_import_test.cpp
index e5e26daab66f4b1445ec7d53d181b1e43b57f208..4e3af3241634f516d235b3442b56c8d379401ced 100644
--- a/src/examples/opendrive_import_test.cpp
+++ b/src/examples/opendrive_import_test.cpp
@@ -3,7 +3,8 @@
 
 #include <iostream>
 
-const std::string opendrive_file="/home/sergi/iri-lab/add_robot/add_ws/code/autonomous_driving_tools/src/xml/adc_road.xodr";
+//const std::string opendrive_file="/home/sergi/iri-lab/add_robot/add_ws/code/autonomous_driving_tools/src/xml/adc_road.xodr";
+const std::string opendrive_file="/home/sergi/iri-lab/add_robot/add_ws/code/autonomous_driving_tools/build/test_road.xodr";
 
 int main(int argc, char *argv[])
 {
@@ -15,16 +16,17 @@ int main(int argc, char *argv[])
  
     map.load_opendrive(opendrive_file);
 
+
     map.get_lane_geometry(x,y,heading);
     for(unsigned int i=0;i<x.size();i++)
       std::cout << x[i] << "," << y[i] << "," << heading[i] << std::endl;
 
     return 0;
 
-    old_path.push_back(3);
-    old_path.push_back(4);
+//    old_path.push_back(3);
+//    old_path.push_back(4);
     old_path.push_back(22);
-    old_path.push_back(10);
+//    old_path.push_back(10);
     new_path=map.get_path_sub_roadmap(old_path,new_map);
 
     new_map.get_segment_connectivity(connectivity,id_map);