diff --git a/README.md b/README.md
index b3bd1df7aa84c2288ce1076770f94464b0d6443b..baeb353e81b215269458a2c98644008a9770c1cd 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@ The basic Wolf structure is a tree of base classes reproducing the elements of t
 
 Wolf can be used within ROS for an easy integration. We provide examples of ROS nodes using Wolf. Wolf can also be used in other robotics frameworks.
 
-### Features
+#### Features
 
 -   Keyframe based
 -   Multi-sensor
@@ -26,7 +26,7 @@ Wolf can be used within ROS for an easy integration. We provide examples of ROS
 -   Built with polymorphic classes using virtual inheritance and templates.
 -   Solver agnostic: choose your solver and build your wrapper to Wolf.
 
-### Some preliminary documentation
+#### Some preliminary documentation
 
 -   You can visit this [Wolf inspiring document](https://docs.google.com/document/d/1_kBtvCIo33pdP59M3Ib4iEBleDDLcN6yCbmwJDBLtcA). Contact [Joan](mailto:jsola@iri.upc.edu) if you need permissions for the link.
 -   You can also have a look at the [Wolf tree](https://docs.google.com/drawings/d/1jj5VVjQThddswpTPMLG2xv87vtT3o1jiMJo3Mk1Utjg), showing the organization of the main elements in the Wolf project. Contact [Andreu](mailto:acorominas@iri.upc.edu) if you need permissions for the link.
@@ -37,250 +37,301 @@ Dependencies
 
 ! Please notice that we are detailing two installation procedures below. If you are familiar with `ROS` and more especially the [`catkin_tools`](https://catkin-tools.readthedocs.io/en/latest/index.html) package then you may jump directly to the 'Using the `catkin_tools` package' section.
 
-### Eigen
+#### Eigen
 
-[Eigen](http://eigen.tuxfamily.org). Linear algebra, header library. Eigen 3.2 is also a depencency of ROS-Hydro. In case you don't have ROS in your machine, you can install Eigen by typing:
+    [Eigen](http://eigen.tuxfamily.org). Linear algebra, header library. Eigen 3.2 is also a depencency of ROS-Hydro. In case you don't have ROS in your machine, you can install Eigen by typing:
 
-        $ sudo apt-get install libeigen3-dev
+    ```terminal
+    $ sudo apt-get install libeigen3-dev
+    ```
 
-### Ceres (5 steps)
+#### Ceres (5 steps)
 
 [Ceres](http://www.ceres-solver.org/) is an optimization library. Currently, this dependency is optional, so the build procedure of Wolf skips part of compilation in case this dependency is not found on the system. **Installation** is desctibed at [Ceres site](http://www.ceres-solver.org/building.html). However we report here an alternative step by step procedure to install Ceres.
 
-**(1)** Skip this step if Cmake 2.8.0+ and Eigen3.0+ are already installed. Otherwise install them with *apt-get*.
+    **(1)** Skip this step if Cmake 2.8.0+ and Eigen3.0+ are already installed. Otherwise install them with *apt-get*.
 
-**(2) GFLAGS**
+    **(2) GFLAGS**
 
--   Git clone the source
+    -   Git clone the source:
 
-`$ git clone `[`https://github.com/gflags/gflags.git`](https://github.com/gflags/gflags.git)
+    ```terminal
+    $ git clone [https://github.com/gflags/gflags.git](https://github.com/gflags/gflags.git)
+    ```
 
--   Build and install with:
+    -   Build and install with:
 
-        $ cd gflags
-        $ mkdir build
-        $ cd build
-        $ cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fPIC" -DGFLAGS_NAMESPACE="google" ..
-        $ make
-        $ sudo make install 
+    ```terminal
+    $ cd gflags
+    $ mkdir build
+    $ cd build
+    $ cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fPIC" -DGFLAGS_NAMESPACE="google" ..
+    $ make
+    $ sudo make install 
+    ```
 
-libgflags.a will be installed at **/usr/local/lib**
+    libgflags.a will be installed at **/usr/local/lib**
 
-**(3) GLOG**
+    **(3) GLOG**
 
--   Download a tar-gz-ball from [here](https://code.google.com/p/google-glog/), download section.
--   Uncompress it with:
+    -   Git clone the source:
 
-        $ tar -xvzf glog-0.3.3.tar.gz 
+    ```terminal
+    $ git clone [https://github.com/google/glog.git](https://github.com/google/glog.git)
+    ```
 
--   Build and install with:
+    -   Build and install with:
 
-        $ cd glog-0.3.3
-        $ ./configure --with-gflags=/usr/local/
-        $ make
-        $ sudo make install
+    ```terminal
+    $ cd glog
+    $ ./configure --with-gflags=/usr/local/
+    $ make
+    $ sudo make install
+    ```
 
-libglog.so will be installed at **/usr/local/lib**
+    libglog.so will be installed at **/usr/local/lib**
 
-**(4) SUITESPARSE**
+    -   Tourbleshooting:
+
+    If the `make` command fails with the error: `/bin/bash: aclocal-1.14: command not found`, install Glog with the following commands:
+        
+    ```terminal
+    $ cd glog
+    $ sudo apt-get install autoconf
+    $ autoreconf --force --install
+    $ ./configure --with-gflags=/usr/local/
+    $ make
+    $ sudo make install
+    ```
 
--   Easy way!:
+    **(4) SUITESPARSE**
 
-        $ sudo apt-get install libsuitesparse-dev
+    -   Easy way!:
 
-**(5) CERES**
+    ```terminal
+    $ sudo apt-get install libsuitesparse-dev
+    ```
 
--   Get the tar-gz-ball corresponding to the latest stable release from [here](http://www.ceres-solver.org/building.html).
--   Uncompress it with:
+    **(5) CERES**
+    
+    -   Git clone the source:
 
-        $ tar -xvzf ceres-solver-1.10.0.tar.gz
+    ```terminal
+    $ git clone [https://ceres-solver.googlesource.com/ceres-solver](https://ceres-solver.googlesource.com/ceres-solver)
+    ```
+        
+    -   Build and install with:
 
--   Build and install with:
+    ```terminal
+    $ cd ceres-solver
+    $ mkdir build
+    $ cd build
+    $ cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fPIC" ..
+    $ make
+    $ sudo make install 
+    ```
 
-        $ cd ceres-solver-1.10.0
-        $ mkdir build
-        $ cd build
-        $ cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -fPIC" ..
-        $ make
-        $ sudo make install 
+    libceres.a will be installed at **/usr/local/lib** and headers at **/usr/local/include/ceres**
 
-libceres.a will be installed at **/usr/local/lib** and headers at **/usr/local/include/ceres**
+#### Yaml-cpp 
 
-### Yaml-cpp. Wolf uses YAML files for configuration and for saving and loading workspaces.
+Wolf uses YAML files for configuration and for saving and loading workspaces. To obtain it run:
 
-**(1)** Obtain:
+    -   Ubuntu:
 
-- Ubuntu:
+    ```terminal
+    $ sudo apt-get install libyaml-cpp-dev
+    ```
 
-  ```
-  $ sudo apt-get install libyaml-cpp-dev
-  ```
-- Mac:
+    -   Mac:
 
-  ```
-  $ brew install yaml-cpp
-  ```
+    ```terminal
+    $ brew install yaml-cpp
+    ```
+        
 We are shipping the CMAKE file `FindYamlCpp.cmake` together with Wolf. Find it at `[wolf]/cmake_modules/FindYamlCpp.cmake`
 
-### Laser Scan Utils (Optional. Install only if you want to use IRI's laser scan utils)
+#### Optional: Laser Scan Utils (Install only if you want to use IRI's laser scan utils)
 
-**(1)** Download:
+    **(1)** Git clone the source:
 
-`$ git clone `[`https://gitlab.iri.upc.edu/mobile_robotics/laser_scan_utils.git`](https://gitlab.iri.upc.edu/mobile_robotics/laser_scan_utils.git)` laser_scan_utils`
-
-**(2)** Build and install:
+    ```terminal
+    $ git clone [https://gitlab.iri.upc.edu/mobile_robotics/laser_scan_utils.git](https://gitlab.iri.upc.edu/mobile_robotics/laser_scan_utils.git)
+    ```
+    
+    **(2)** Build and install:
 
+    ```terminal
     $ cd laser_scan_utils/trunk/build
     $ cmake ..
     $ make
     $ sudo make install
+    ```
 
-### Raw GPS Utils (Optional. Install only if you want to use IRI's raw gps utils)
+#### Optional: Raw GPS Utils (Install only if you want to use IRI's raw gps utils)
 
-**(1)** Download:
+    **(1)** Git clone the source:
 
-`$ git clone `[`https://github.com/pt07/raw_gps_utils.git`](https://github.com/pt07/raw_gps_utils.git)` `
+    ```terminal
+    $ git clone [https://github.com/pt07/raw_gps_utils.git](https://github.com/pt07/raw_gps_utils.git)
+    ```
 
-**(2)** Build and install:
+    **(2)** Build and install:
 
+    ```terminal
     $ cd raw_gps_utils/build
     $ cmake ..
     $ make
     $ sudo make install
+    ```
+
 
 Download and build
 ------------------
 
-### Wolf C++ Library
+#### Wolf C++ Library
 
-**Download:**
+    **Download:**
+    
+    ```terminal
+    $ git clone [https://gitlab.iri.upc.edu/mobile_robotics/wolf.git](https://gitlab.iri.upc.edu/mobile_robotics/wolf.git)
+    ```
 
-`$ git clone `[`https://gitlab.iri.upc.edu/mobile_robotics/wolf.git`](https://gitlab.iri.upc.edu/mobile_robotics/wolf.git)
+    **Build:**
 
-**Build:**
-
-    $ cd wolf/build
+    ```terminal    
+    $ cd wolf
+    $ mkdir build
+    $ cd build
     $ cmake ..
     $ make
     $ sudo make install  //optional in case you want to install wolf library
-
-
-**Set the WOLF_ROOT environment variable**
-
-We need a platform-independent way to specify where is the WOLF project, so that code can locate relevant files at run-time.
-For example, if we want to use YAML files for configuring sensors, `YAML::LoadFile(filename)` needs an absolute path to a `filename`. This name is platform-specific, and many times user-specific.
-
-Usually, these files are out of the WOLF project. But for testing purposes, some of these files exist within the WOLF directories.
-
-Proceed as follows:
-
-1. To run from __Terminal__ (the default), you need to create an environment variable WOLF_ROOT pointing to where the wolf project is.
-  - Edit file `~/.bashrc`, or `~/.bash_profile`, and add these lines:
-  ```      
-  export WOLF_ROOT="/abs/path/to/wolf"
-  ```
-  * Then you need to source the file to get effect,
-  ```      
-  source ~/.bash_profile    // or ~/.bashrc, of course
-  ```
-2. If you are using Eclipse or other __GUIs__ and you want this environment variable to be accessed by them, edit the file `/etc/environment` (you need to use `sudo`) and add this line:
-
-  ```
-  WOLF_ROOT="/abs/path/to/wolf"
-  ```   
-Then reboot your machine.  
-Alternatively, you can set up the environment variables in your GUIs only. Follow these guidelines:
-  - If you run your application from __eclipse__, do:  
-    - Menu Run > Run configurations...  
-    - Add, or edit, a run configuration for the executable you want to run  
-    - Click on tab 'Environment'  
-    - Add a variable named `WOLF_ROOT`, with value `/abs/path/to/wolf`  
-  - If you run from __QtCreator__  
-    - Click on Left bar > Projects > Tab 'Build'  
-      - Under 'Build Environment', click 'Details'  
-      - Add variable `WOLF_ROOT` with value `/abs/path/to/wolf`  
-    - Click on Tab 'Run'  
-      - Select your Run configuration  
-      - Under 'Run Environment', make sure it says 'Use Build Environment'  
-      - If not, click on 'Details'   
+    ```
+
+    **Set the WOLF_ROOT environment variable**
+
+    We need a platform-independent way to specify where is the WOLF project, so that code can locate relevant files at run-time.
+    For example, if we want to use YAML files for configuring sensors, `YAML::LoadFile(filename)` needs an absolute path to a `filename`. This name is platform-specific, and many times user-specific.
+
+    Usually, these files are out of the WOLF project. But for testing purposes, some of these files exist within the WOLF directories.
+
+    Proceed as follows:
+
+    1. To run from __Terminal__ (the default), you need to create an environment variable WOLF_ROOT pointing to where the wolf project is.
+    
+    Edit file `~/.bashrc`, or `~/.bash_profile`, and add these lines:
+    ```      
+    export WOLF_ROOT="/abs/path/to/wolf"
+    ```
+    
+    Then you need to source the file to get effect,
+    ```      
+    source ~/.bash_profile    // or ~/.bashrc, of course
+    ```
+    
+    2. If you are using Eclipse or other __GUIs__ and you want this environment variable to be accessed by them, edit the file `/etc/environment` (you need to use `sudo`) and add this line:
+
+    ```
+    WOLF_ROOT="/abs/path/to/wolf"
+    ```   
+    Then reboot your machine.  
+    
+    Alternatively, you can set up the environment variables in your GUIs only. Follow these guidelines:
+    
+    - If you run your application from __eclipse__, do:  
+        - Menu Run > Run configurations...  
+        - Add, or edit, a run configuration for the executable you want to run  
+        - Click on tab 'Environment'  
+        - Add a variable named `WOLF_ROOT`, with value `/abs/path/to/wolf`  
+    
+    - If you run from __QtCreator__  
+        - Click on Left bar > Projects > Tab 'Build'  
+        - Under 'Build Environment', click 'Details'  
+        - Add variable `WOLF_ROOT` with value `/abs/path/to/wolf`  
+        - Click on Tab 'Run'  
+        - Select your Run configuration  
+        - Under 'Run Environment', make sure it says 'Use Build Environment'  
+        - If not, click on 'Details'   
         - Under 'Base environment for this run configuration', select 'Build Environment'  
 
-### Wolf ROS Node
-
-`$ git clone `[`https://github.com/IRI-MobileRobotics/wolf_ros.git`](https://github.com/IRI-MobileRobotics/wolf_ros.git)
+#### Wolf ROS Node
 
+    -   Git clone the source (inside your ROS workspace):
 
+    ```terminal
+    $ git clone [https://github.com/IRI-MobileRobotics/wolf_ros.git](https://github.com/IRI-MobileRobotics/wolf_ros.git)
+    ```
 
 Using the `catkin_tools` package
 --------------------------------
 
-1.  Install `catkin_tools` :
+    **(1)**  Install `catkin_tools` :
 
     [`installation webpage.`](https://catkin-tools.readthedocs.io/en/latest/installing.html)
 
     .  Installing on Ubuntu with `apt-get`
 
-      ```terminal
-        $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
-        $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
-        $ sudo apt-get update
-        $ sudo apt-get install python-catkin-tools
-      ```
+    ```terminal
+    $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
+    $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
+    $ sudo apt-get update
+    $ sudo apt-get install python-catkin-tools
+    ```
 
     .  Installing with [`pip`](https://pip.pypa.io/en/stable/installing/)
 
-      ```terminal
-        $ sudo pip install -U catkin_tools
-      ```
+    ```terminal
+    $ sudo pip install -U catkin_tools
+    ```
 
-2.  Create a `catkin workspace` :
+    **(2)**  Create a `catkin workspace` :
 
-      ```terminal
-      $ cd ~/my_workspace_directory/
-      $ create mkdir -p wolf_ws/src
-      $ cd wolf_ws/src
-      ```
+    ```terminal
+    $ cd ~/my_workspace_directory/
+    $ create mkdir -p wolf_ws/src
+    $ cd wolf_ws/src
+    ```
 
-3.  Download `Ceres` :
+    **(3)**  Download `Ceres` :
 
     In the previously created directory `~/my_workspace_directory/wolf_ws/src/` clone `Ceres` & `wolf`.
 
-     ```terminal
-        $ git clone https://github.com/artivis/ceres_solver.git
-     ```
+    ```terminal
+    $ git clone [https://github.com/artivis/ceres_solver.git](https://github.com/artivis/ceres_solver.git)
+    ```
 
-4.  Download `wolf` :
+    **(4)**  Download `wolf` :
 
-      ```terminal
-        $ git clone https://gitlab.iri.upc.edu/mobile_robotics/wolf.git
-      ```
+    ```terminal
+    $ git clone [https://gitlab.iri.upc.edu/mobile_robotics/wolf.git](https://gitlab.iri.upc.edu/mobile_robotics/wolf.git)
+     ```
 
     At this point you might need to switch to the `catkin_build` branch of the wolf project.
 
-      ```terminal
-        $ cd wolf
-        $ git checkout catkin_build
-      ```
+    ```terminal
+    $ cd wolf
+    $ git checkout catkin_build
+    ```
 
     (optional) Download `wolf_ros` :
 
-      ```terminal
-        $ git clone https://github.com/IRI-MobileRobotics/Wolf_ros.git
-        ```
+    ```terminal
+    $ git clone [https://github.com/IRI-MobileRobotics/Wolf_ros.git](https://github.com/IRI-MobileRobotics/Wolf_ros.git)
+    ```
 
-5.  Let's Compile !
+    **(5)**  Let's Compile !
 
     The command below can be launch from any sub-directory in `~/my_workspace_directory/wolf_ws/`.
 
-      ```terminal
-      $ catkin build
-      ```
+    ```terminal
+    $ catkin build
+    ```
 
-6.  Run tests:
+    **(6)**  Run tests:
 
-      ```terminal
-      $ catkin run_tests
-      ```
+    ```terminal
+    $ catkin run_tests
+    ```
 
 Inspiring Links
 ---------------
@@ -294,44 +345,60 @@ Inspiring Links
 Useful tools
 ------------
 
-### Profiling with Valgrind and Kcachegrind
+#### Profiling with Valgrind and Kcachegrind
 
 Kcachegrind is a graphical frontend for profiling your program and optimizing your code.
 
-#### Install in Ubuntu
+- Ubuntu:
 
-Get the programs with
+    Get the programs with
 
+    ```terminal
     $ sudo apt-get install valgrind kcachegrind
+    ```
 
-#### Install in Mac OSX
+- Mac OSX
 
-In Mac, you can use qcachegrind instead. To get it through Homebrew, type
+    In Mac, you can use qcachegrind instead. To get it through Homebrew, type
 
+    ```terminal
     $ brew install valgrind qcachegrind
+    ```
+    
+    I don't know if these packages are available through MacPorts. Try
 
-I don't know if these packages are available through MacPorts. Try
-
+    ```terminal
     $ ports search --name valgrind
     $ ports search --name qcachegrind
+    ```
 
-If they are available, just do
+    If they are available, just do
 
+    ```terminal
     $ sudo port install valgrind qcachegrind
+    ```
 
 #### Do the profiling and watch the reports
 
 Type in your `wolf/bin/` directory:
 
+    ```terminal
     $ cd bin/
     $ valgrind --tool=callgrind ./my_program <my_prg_params>
+    ```
+
+this produces a log report called `callgrind.out.XXXX`, where XXXX is a number. Then type 
 
-this produces a log report called `callgrind.out.XXXX`, where XXXX is a number. Then type (Ubuntu)
+- Ubuntu
 
+    ```terminal
     $ kcachegrind callgrind.out.XXXX
+    ```
 
-or (Mac)
+- Mac OSX
 
+    ```terminal
     $ qcachegrind callgrind.out.XXXX
+    ```
 
 and enjoy.