The Person is an Actor
class person : public actor { public: person();to create a person
void become(Role r);to become a ...
void become(actor* p);change identity
int exists() { return role[Person] != this; } actor* self() { return exists()?role[Person]->self():role[ role] ; } private: int _role; actor* role[Final+1];the repertoire
};