#17 add support for c++