I don't think this is the correct approach. Instead of using inheritance, we can simply build an abstract factory that is able to use class metadata (and eventually a manager registry) to get the correct data. Please keep all this working with `stdClass` for now, since that's a point of extension (not meant for this repo)