this is used for C/C++