kernel made optional