>
>
> no, i think you missed the structure.
>
>   Miter <- Table[] <- Section[] <- Cell[] <- Element[].
>
> a couple of people have suggested bringing everything into Top, i
> thought about it, but that defeats the whole purpose of OO design.


Rather than pass data down through a series of innocent by-standers, simply
to have  low-level objects create yet-lower-level objects, why not pass the
objects themselves, fully formed?

el    = El.new( a )
cell  = Cell.new( el )
sect  = Section.new( cell )
table = Table.new( sect )
miter = Miter.new( table)


I'm not entirely thrilled with a series of construction expressions, since
it seems to bundle too much control logic in one place, but it does avoid
having to needlessly expose data to objects.

Perhaps this could work in a MiterFacrory class, which accepts general
instructions on how to create the Miter and its constituents, returning the
fully-formed Miter instance.

my_miter = MiterFactory.create( someObjectHoldingEssentialMiterData )

James