add javadocs and doxygen