Lakshmanan:
Respectfully, I'm not going to solve your problem for you.
You have quite a bit of freedom for extending Cj representations at every level of the document. FWIW, my typical approach is to design/implement my own use-case specific solution first. Then, once I know what actually works, I look to see if my use-case can be expended to more generic cases for us by others.
Finally, whatever you do in Cj is fine as long as you maintain backward compatibility (e.g. don't remove elements, change the use/meaning of an existing element, don't create a new requirement of Cj clients).
If you want to present some possible solutions for feedback here, that's an excellent idea.