kernel for compilation