added Kernel class