replaced class with KernelInterface