How-to: game messaging system in cocos2d-x

Has anyone done?
Now I’m stuck on where to store pointers (or unique identifiers?) to game objects - in the own class GameManager or use child of CCNode and its children array? GameManager is bad decision because it stores pointers on GameObjects, but GameObjects can be child of CCNode and can be deleted inside cocos (I don’t want to get GPF in strange places). May be I should store tag’s of CCNode for identify objects? But GameObject isn’t always inherits of CCNode (sometimes I need lightweight objects, which are not connected with displaying), and I don’t know how to automatically support tags uniqueness.
May be somebody already done it and have nice solution?

Why did you store pointers? You can use retain and release to share objects.
Ofcource, it should inherit CCObject, but I think it is not a problem.
What do you think?