Complete rewrite.

I did it. I created yet another framework :D