Quote Originally Posted by dave2k
... but this seems to go against being OO.. ...
Why? You're declaring a necessary member at the point it's needed. I would have said that trying to move it up a level would be against OO principles, given the criteria you've stated.