Sean, OK, nice answer -- thanks (esp. since it is a side issue). Yes, a minor memory hit for speed over many iterations makes perfect sense, esp. for visualisations where this is an "optional add-on" to the core model. Apologies if the original post came across as a "coding lesson". Wasn't meant to be: the details just kind of reflected my thought processes in thinking about the code alternatives (which were slightly more subtle than I'd expected...). I'd be the first to admit that I sometimes get hung up on formal OO design principles, instead of the run-time reality :-) Regards, Stuart