This still needs some work and integration into kmalloc() but hey i've tested it and it doesn't immediately fall apart so why not commit it