following along tutorials here is a draft of the kernel