added old templated kernels again