creating custom kernels for different operations