Add doxygen documentation to the code