This is not that complex to achieve in OOP, but I can't see HOW to build an even basic framework that give me this.Actually, that's probably my fault.