remember to return the kernel