made it work with c++