Mostly done and working, modulo bugs/polishing.