diff --git a/ReadMe.md b/ReadMe.md
new file mode 100644
index 0000000000000000000000000000000000000000..496a76a5c6767f8448e00a4cb22a4bfba3fab00d
--- /dev/null
+++ b/ReadMe.md
@@ -0,0 +1,116 @@
+Iriutils library                         {#mainpage}
+================
+
+## Description
+This set of tools provide basic functionalities that are generally needed in many
+applications. These utilities include mutual exclusion objects, exceptions, threads,
+logic events and also generic communication devices. Next, a brief description of
+each one is provided.
+
+### Mutex
+
+Basic mutual exclusion object interface to handle multiple threads to access the
+same shared resources. There exist no example of use of mutexes, but they are used
+in most of the other utilities, so check them for examples of use.
+
+### Exceptions
+
+Generic exceptions to be used as a base for all other exceptions. It provides some
+basic error message handling, and each inherited exception may add as much
+information as needed. There is no examples of use of exceptions, but it is used
+in most of other utilities, so check them for examples of use.
+
+### Threadserver and Threads
+
+This utility provides a simple and easy to use interface to threads, isolating the
+low level details from the end user. The threads may be used directly or else
+through a thread server which allows to create and handle as many threads as
+necessary without direct access to the threads themselves. In this case, each
+thread is assigned a unique identifier which is used to identify it in the
+server.
+
+There exist examples of both threads being used directly (test_threads) and also
+threads being used through the thread server (test_threadserver). These examples
+provide the necessary information to easily set up an application with multiple
+threads.
+
+### Eventserver and Events
+
+This utility provides a simple and easy way to use asynchronous notifications
+between threads, allowing them to wait on several heterogeneous conditions without
+wasting CPU time. The events may be used directly or else through an event server,
+which allows to create and handle as many events as needed. In this case each event
+is assigned a unique identifier which is used to identify it in the server.
+
+There exist examples of both events being used directly (test_events) and also
+events being used through the event server (test_eventserver). These examples
+provide the necessary information to easily set up an application with multiple
+events.
+
+There exist also an other example that uses both events and threads using their
+servers (test_bothservers), which gives a good example on how to use them
+together.
+
+### Log
+
+This utility provides a simple way to log information into files. Each object is
+associated to single file, and all the logged messages include a time stamp of
+the log time.
+
+### Time
+
+This utility provides a simple and easy way to use time. Each CTime object has
+got a time and using the class members and operations it is possible to get
+time in seconds, milliseconds or C/system types such as timespec, or time_t;
+set a time, sum, difference or average times, do time comparisons or print
+time in human readable format.
+
+There exist an example which uses all of class methods. Also in a bad use
+which reach to an exception.
+
+## Dependencies
+
+This package requires of the following libraries and packages
+
+* [cmake](https://www.cmake.org "CMake's Homepage"), a cross-platform build system.
+* [doxygen](http://www.doxygen.org "Doxygen's Homepage") and [graphviz](http://www.graphviz.org "Graphviz's Homepage") to generate the documentation.
+* stdc++ and pthread libraries.
+
+Under linux all of these utilities are available in ready-to-use packages.
+
+Under MacOS most of the packages are available via [fink](http://www.finkproject.org/ "Fink's Homepage")
+
+## Compilation and installation
+
+Download this repository and create a build folder inside:
+
+```mkdir build ```
+
+
+Inside the build folder execute the following commands:
+
+```cmake ..```
+
+```make```
+
+In case no errors are reported, the generated libraries (is any) will be located at the
+_lib_ folder and the executables (if any) will be located at the _bin_ folder.
+
+To generate the documentation execute the following command:
+
+```make doc```
+
+## Disclaimer
+
+Copyright (C) 2009-2010 Institut de Robòtica i Informàtica Industrial, CSIC-UPC.
+Author shernand (shernand@iri.upc.edu)
+All rights reserved.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>
+
diff --git a/ReadMe.txt b/ReadMe.txt
deleted file mode 100644
index aa24286df6d3bd5e2bbcd30d5fe09dc0c3585b51..0000000000000000000000000000000000000000
--- a/ReadMe.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2009-2010 Institut de Robòtica i Informàtica Industrial, CSIC-UPC.
-Author shernand (shernand@iri.upc.edu)
-All rights reserved.
-
-This file is part of IRI utils library
-IRI utils library is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>
-
-
diff --git a/doc/doxygen.conf b/doc/doxygen.conf
index 3090f72ee4651a4edae8e411cce9aae7c5c66526..34086187e309a30adc91ee23ad9b7bfa90ed0262 100644
--- a/doc/doxygen.conf
+++ b/doc/doxygen.conf
@@ -82,7 +82,7 @@ WARN_LOGFILE           =
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 INPUT                  = ../src \
-                         ../doc/main.dox
+                         ../ReadMe.md
 INPUT_ENCODING         = UTF-8
 FILE_PATTERNS          = *.c \
                          *.h \
diff --git a/doc/main.dox b/doc/main.dox
deleted file mode 100644
index 002603f80f330a5519a088c4cdabd7d6d9445d19..0000000000000000000000000000000000000000
--- a/doc/main.dox
+++ /dev/null
@@ -1,179 +0,0 @@
-/*! \mainpage General IRI utilities
-
-  \section Introduction
-
-  This set of tools provide basic functionalities that are generally needed in many
-  applications. These utilities include mutual exclusion objects, exceptions, threads,
-  logic events and also generic communication devices. Next, a brief description of
-  each one is provided.
-
-  \subsection Mutex
-
-  Basic mutual exclusion object interface to handle multiple threads to access the
-  same shared resources. There exist no example of use of mutexes, but they are used
-  in most of the other utilities, so check them for examples of use.
-
-  \subsection Exceptions
-
-  Generic exceptions to be used as a base for all other exceptions. It provides some
-  basic error message handling, and each inherited exception may add as much
-  information as needed. There is no examples of use of exceptions, but it is used
-  in most of other utilities, so check them for examples of use.
-
-  \subsection threads Threadserver and Threads
-
-  This utility provides a simple and easy to use interface to threads, isolating the
-  low level details from the end user. The threads may be used direcltly or else
-  through a thread server which allows to create and handle as many threads as
-  neceessary without direct access to the threads themselves. In this case, each
-  thread is assigned a unique identifier which is used to identify it in the
-  server.
-
-  There exist examples of both threads being used directly (test_threads) and also
-  threads being used through the thread server (test_threadserver). These examples
-  provide the necessary information to easily set up an application with multiple
-  threads.
-
-  \subsection events Eventserver and Events
-
-  This utility provides a simple and easy way to use asynchronous notifications
-  between threads, allowing them to wait on several heterogeneous conditions without
-  wasting CPU time. The events may be used directly or else through an event server,
-  which allows to create and handle as many events as needed. In this case each event
-  is assigned a unique identifier which is used to identify it in the server.
-
-  There exist examples of both events being used directly (test_events) and also
-  events being used through the event server (test_eventserver). These examples
-  provide the necessary information to easily set up an application with multiple
-  events.
-
-  There exist also an other example that uses both events and threads using their
-  servers (test_bothservers), which gives a good example on how to use them
-  together.
-
-  \subsection log Log
-
-  This utility provides a simple way to log information into files. Each object is
-  associated to single file, and all the logged messages include a time stamp of
-  the log time.
-
-  \subsection time Time
-
-  This utility provides a simple and easy way to use time. Each CTime object has
-  got a time and using the class members and operations it is possible to get
-  time in seconds, milliseconds or C/system types such as timespec, or time_t;
-  set a time, sum, difference or average times, do time comparisions or print
-  time in human readable format.
-
-  There exist an example which uses all of class methods. Also in a bad use
-  which reach to an exception.
-
-  \section Installation
-
-  \subsection Pre-Requisites
-
-  This package requires of the following libraries and packages
-	 - <A href="http://www.cmake.org">cmake</A>, a cross-platform build system.
-	 - <A href="http://www.doxygen.org">doxygen</a> and
-	   <A href="http://www.graphviz.org">graphviz</a> to generate the documentation.
-         - stdc++,
-         - pthread, the POSIX thread library.
-	 .
-
-  Under linux all of these utilities are available in ready-to-use packages.
-
-  Under MacOS most of the packages are available via <a href="http://www.finkproject.org/">fink</a>. <br>
-
-  \subsection Compilation
-
-  Just download this package, uncompress it, and execute
-   - cd build
-   - cmake ..
-   .
-  to generate the makefile and then
-   - make
-   .
-  to obtain the shared library (in this case called <em>iriutils.so</em>) and
-  also all the example programs.
-
-  The <em>cmake</em> only need to be executed once (make will automatically call
-  <em>cmake</em> if you modify one of the <em>CMakeList.txt</em> files).
-
-  To generate this documentation type
-       - make doc
-       .
-
-  The files in the <em>build</em> directory are genetated by <em>cmake</em>
-  and <em>make</em> and can be safely removed.
-  After doing so you will need to call cmake manually again.
-
-  \subsection Configuration
-
-  The default build mode is DEBUG. That is, objects and executables
-  include debug information.
-
-  The RELEASE build mode optimizes for speed. To build in this mode
-  execute
-      - cmake .. -DCMAKE_BUILD_TYPE=RELEASE
-      .
-  The release mode will be kept until next time cmake is executed.
-
-  \subsection Installation
-
-  In order to be able to use the library, it it necessary to copy it into the system.
-  To do that, execute
-
-      - make install
-      .
-
-  as root and the shared libraries will be copied to <em>/usr/local/lib/iridrivers</em> directory
-  and the header files will be copied to <em>/usr/local/include/iridrivers</em> dierctory. At
-  this point, the library may be used by any user.
-
-  To remove the library from the system, exceute
-      - make uninstall
-      .
-  as root, and all the associated files will be removed from the system.
-
-  \section Customization
-
-  To build a new application using these library, first it is necessary to locate if the library
-  has been installed or not using the following command
-
-      - FIND_PACKAGE(iriutils)
-
-  In the case that the package is present, it is necessary to add the header files directory to
-  the include directory path by using
-
-      - INCLUDE_DIRECTORIES(${iriutils_INCLUDE_DIR})
-
-  Finally, it is also nevessary to link with the desired libraries by using the following command
-
-      - TARGET_LINK_LIBRARIES(&lt;executable name> ${iriutils_LIBRARY})
-      .
-
-  All these steps are automatically done when the new project is created following the instructions
-  in <A href="http://wikiri.upc.es/index.php/Create_a_new_development_project">here</a>
-
-  \section License
-
-  This package is licensed under a
-  <a href="http://www.gnu.org/licenses/lgpl.html">
-    LGPL 3.0 License</a>.
-
-  \section Disclaimer
-
-   This is free software: you can redistribute it and/or modify
-   it under the terms of the GNU Lesser General Public License as published by
-   the Free Software Foundation, either version 3 of the License, or
-   at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
- */