make similar to OpenCL