begin shimmed migration to C++