add doxygen documentation and
fix code style