some love for C++ interface