extern c++  interface added