add extern "C" to headers for C++