Added doxygen and comments into most of the header file