adding c++ support