moved stuff around, back to C++ now