Added lots of doxygen