added opencl stuff and derped