about to redo for kernel inclusion