actually create the kernel