it's terrible, remove `ocl_` functions from public interface