cleanup let/let_multi
start porting to C++, making memory management easier for ref counting. no deps to libstdc++