IMO, this kind of nested dicts logic should be encapsulated in some kind of phone register in world