function overloading doesnt seem to work with device kernels