factored out multi-dimensional kernels with kron structure, added SMKernel