no longer relies on cpp wrapper: cl.hpp