more C++ additions