The latest updates of Pharo 3.0 contain a new class builder. Check out
for an example.
This will end up in the support of "slots" - a slot is a meta-object for accessing a field in an Object. This makes class building also more explicit - for instance you can define the layout when building a class (PointerLayout, ByteLayout, ...)
So instead of having an instanceVariables array you can now have real layout objects. The implementation also includes field modifications which can track changes required to migrated instances (adding/removing fields, shifting position, ...).
Read more about Slots here.