KMP should basically work, just copied off the slides so I still need to rewrite it all.