Kernel refactor [preview]

For @ajs6f comments.
@ajs6f here's that method signature we talked about. Can we do better?