doxygen support by @jiahao