add support for C++