Hmm, it looks pretty good to me. What memory manager are you using, btw?

I wonder at how to pass the data about, myself, since if descendents need other data, how would you get that data to the object? Aside from hardcoding stuff, of course, but I'm just wondering. It looks like a cool system though.