I'm eliminating the "second pointers" to Head and Hand in Avatar.  The AvatarData base class already has pointers (_headData and _handData) to the base class instance, so we use those instead and use Avatar::getHead() and ::getHand() when we want pointers cast to the derived class.