I think you're showing another example of a problem we're all fighting with now and then.
It is all to easy to start coding without having a design.
Especially when there is some 'project manager' running behind your back, constantly asking for something 'he can show'. I.e. some kind of prototype.
Most(?) people tend to share my experience from learning OOP (Object Oriented Programming). What I learnt was that OOP has little importance compared to OOD (Object Oriented Design).
Once OOD is more or less mastered and (most importantly) used, the developer often comes to the conclusion that "when using OOD, OOP becomes nothing more than a question of syntax".
f--k the world!!!!
/dev/world has reached maximal mount count, check forced.