adding documentations and support for Doxygen