completed:add kernel