> Step back. What are you trying to achieve? Implement a multidimensional general ledger with flexibility in the choice of the dimensions. There are other ways to do this, but all seem less elegant to me.