thin c++ wrapper