start of code for nvvm bindings