added c/c++ version