restructuring of the OpenCL API