first version with a C++ garbage collector