Just to clarify, me and psycoblaster are two different people. I was going to do something like this (and what I would have done with Crisis Core if I hadn't gotten frustrated with trying to implement a VWF), but it appears psycoblaster's done heaps of amazing work on this already, so I'll wait...