add doxygen for core lib and ammend documentation