The dollar signs are hideous. Change class$ to Class. Don't be an amateur when it comes to reserved words, even my doge knows about case sensitivity.
Now that I've overviewed the framework, it's actually pretty nice. I'm a big fan of the way you've bolstered privates and constants with runtime checks in there. Pretty sweet :-)