FNAK2

I'm not ready to rewrite all of this again.