add c and c++ support and some adjustment