Your argument is that you've used a simple, if ultimately unnecessary example, to demonstrate some of the more complex parts of OO; because you didn't want to detract from the techniques you were demonstrating with the detail of the classes you used to demonstrate them.
That is a fine argument.
However, without a convincing example of when it is necessary, (or beneficial in some tangible way), to use the techniques you are demonstrating, it leaves the demonstration looking like a solution looking for a problem.
So, the challenge to you is: show a realistic example of using those techniques that cannot be trivially and beneficially replaced with simpler, non-OO code.
|Comment on Re^3: RFC: object-oriented two-dimensional ragged array tutorial|