start work on c++ generation