there's a bug in the kernel calculation, need more tests