Added a C++ interface