diff --git a/include/open_drive_format.h b/include/open_drive_format.h
index de3c9ca072b44e9e9cd33af0c2e7ed059e639701..05cbb245d32d1c4394565cd42db26083007161e7 100644
--- a/include/open_drive_format.h
+++ b/include/open_drive_format.h
@@ -9,6 +9,22 @@ typedef struct
   int id; ///< Projection polynomial of radially symmetric model.
 }Road_struct;
 
+// UNMARKEDINTERSECTION 102
+// STOPANDGIVEWAY 206
+// PARKINGAREA ???
+// HAVEWAY ???
+// AHEADONLY 209
+// AHEADONLYSUB 30
+// GIVEWAY 205
+// PEDESTRIANCROSSING ???
+// ROUNDABOUT ???
+// NOOVERTAKING 276
+// NOENTRYVEHICULARTRAFFIC 267
+// TESTCOURSEA9 ???
+// ONEWAYSTREET 220
+// ROADWORKS 123
+// KMH50 274
+// KMH100 274
 
 class COpenDriveFormat
 {
diff --git a/src/examples/open_drive_format_test.cpp b/src/examples/open_drive_format_test.cpp
index d8cd950e0e4172ab3b73d77a759673815faa1c88..80a939064dff00e998eee75ea327ae5f53a271e5 100644
--- a/src/examples/open_drive_format_test.cpp
+++ b/src/examples/open_drive_format_test.cpp
@@ -5,8 +5,6 @@
 int main(int argc, char *argv[])
 {
   COpenDriveFormat open_drive_format;
-  // std::string xml_file = "../src/xml/Crossing8Course.xodr";
-  // std::string xml_file = "../src/xml/CrossingComplex8Course.xodr";
   std::string xml_file = "../src/xml/atlatec_generic.xodr";
   // std::string xml_file = "../src/xml/atlatec_vires.xodr";
   try
diff --git a/src/open_drive_format.cpp b/src/open_drive_format.cpp
index 9c7745cf4b55a4f0d81105f00a0d0a93e5cb309e..44c78dfb181fbe605312c802465212783c818c2a 100644
--- a/src/open_drive_format.cpp
+++ b/src/open_drive_format.cpp
@@ -9,10 +9,7 @@
 #include <sstream> 
 
 #ifdef _HAVE_XSD
-// #include "xml/OpenDRIVE_1.1.hxx"
-// #include "xml/OpenDRIVE_1.5M.hxx"
 #include "xml/OpenDRIVE_1.4H.hxx"
-// #include "xml/OpenDRIVE_1.4H.h"
 #endif
 
 COpenDriveFormat::COpenDriveFormat()
@@ -29,6 +26,7 @@ void COpenDriveFormat::load(std::string &filename)
     try{
       std::auto_ptr<OpenDRIVE> open_drive(OpenDRIVE_(filename.c_str(), xml_schema::flags::dont_validate));
 
+      ////////////////// Access road atributes
       for (OpenDRIVE::road_iterator road_it(open_drive->road().begin()); road_it != open_drive->road().end(); ++road_it)
       {
         // Road_struct r;
@@ -37,7 +35,12 @@ void COpenDriveFormat::load(std::string &filename)
         // r.id = road_it->id().get();
         // this->road_vect.push_back(r);
 
-        std::cout << "Road id = " << road_it->id().get() << std::endl;
+        
+        std::cout << "Road: id = " << road_it->id().get();
+        std::cout << ", length = " << road_it->length().get();
+        std::cout << ", junction = " << road_it->junction().get() << std::endl;
+
+        ///////////////////// link atributes
         if (road_it->lane_link().present())
         {
           if (road_it->lane_link().get().predecessor().present())
@@ -53,6 +56,51 @@ void COpenDriveFormat::load(std::string &filename)
             std::cout << "; contact point: " << (road_it->lane_link().get().successor().get().contactPoint().present() ? road_it->lane_link().get().successor().get().contactPoint().get() : "") << std::endl;
           }
         }
+
+        //////////////// Geometry atributes
+        for (planView::geometry_iterator geo_it(road_it->planView().geometry().begin()); geo_it != road_it->planView().geometry().end(); ++geo_it)
+        {
+          std::cout << "  Geometry: From s = " << (geo_it->s().present() ? geo_it->s().get() : 0.0); 
+          std::cout << " to s = " << (geo_it->length().present() ? geo_it->length().get() : 0.0) << std::endl;
+          std::cout << "    Origin pose: x = " << (geo_it->x().present() ? geo_it->x().get() : 0.0); 
+          std::cout << "; y = " << (geo_it->y().present() ? geo_it->y().get() : 0.0); 
+          std::cout << "; heading = " << (geo_it->hdg().present() ? geo_it->hdg().get() : 0.0) << std::endl;
+
+          if (geo_it->line().present())
+          {
+            std::cout << "    type: Line" <<  std::endl;
+          }
+          else if (geo_it->spiral().present())
+          {
+            std::cout << "    type: Spiral-> curvStart = " << (geo_it->spiral().get().curvStart().present() ? geo_it->spiral().get().curvStart().get() : 0.0);
+            std::cout << ",  curvEnd = " << (geo_it->spiral().get().curvEnd().present() ? geo_it->spiral().get().curvEnd().get() : 0.0) << std::endl;
+          }
+          else if (geo_it->arc().present())
+          {
+            std::cout << "    type: Arc-> curvature = " << (geo_it->arc().get().curvature().present() ? geo_it->arc().get().curvature().get() : 0.0) <<  std::endl;
+          }
+          else if (geo_it->poly3().present())
+          {
+            std::cout << "    type: Poly3-> a = " << (geo_it->poly3().get().a().present() ? geo_it->poly3().get().a().get() : 0.0);
+            std::cout << ", b = " << (geo_it->poly3().get().b().present() ? geo_it->poly3().get().b().get() : 0.0);
+            std::cout << ", c = " << (geo_it->poly3().get().c().present() ? geo_it->poly3().get().c().get() : 0.0);
+            std::cout << ", d = " << (geo_it->poly3().get().d().present() ? geo_it->poly3().get().d().get() : 0.0) <<  std::endl;
+          }
+          else if (geo_it->paramPoly3().present())
+          {
+            std::cout << "    type: ParamPoly3-> aU = " << (geo_it->paramPoly3().get().aU().present() ? geo_it->paramPoly3().get().aU().get() : 0.0);
+            std::cout << ", bU = " << (geo_it->paramPoly3().get().bU().present() ? geo_it->paramPoly3().get().bU().get() : 0.0);
+            std::cout << ", cU = " << (geo_it->paramPoly3().get().cU().present() ? geo_it->paramPoly3().get().cU().get() : 0.0);
+            std::cout << ", dU = " << (geo_it->paramPoly3().get().dU().present() ? geo_it->paramPoly3().get().dU().get() : 0.0) <<  std::endl;
+            std::cout << "                    -> aV = " << (geo_it->paramPoly3().get().aV().present() ? geo_it->paramPoly3().get().aV().get() : 0.0);
+            std::cout << ", bV = " << (geo_it->paramPoly3().get().bV().present() ? geo_it->paramPoly3().get().bV().get() : 0.0);
+            std::cout << ", cV = " << (geo_it->paramPoly3().get().cV().present() ? geo_it->paramPoly3().get().cV().get() : 0.0);
+            std::cout << ", dV = " << (geo_it->paramPoly3().get().dV().present() ? geo_it->paramPoly3().get().dV().get() : 0.0) <<  std::endl;
+            std::cout << "                    -> pRange = " << (geo_it->paramPoly3().get().pRange().present() ? geo_it->paramPoly3().get().pRange().get() : 0.0) <<  std::endl;
+          }
+        }
+
+        ////////// Signals atributes
         if (road_it->signals().present())
         {
           for (signals::signal_iterator signal_it(road_it->signals().get().signal().begin()); signal_it != road_it->signals().get().signal().end(); ++signal_it)
@@ -71,6 +119,7 @@ void COpenDriveFormat::load(std::string &filename)
 
           }
         }
+        std::cout << std::endl;
       }
       // road->header()
       std::cout << "Done." << std::endl;