>There's some good advice in this thread, but a word of warning; you can be too clever, or make things too dynamic, and all at the expense of integrity of the application in the future. You can find yourself in a situation, further down the line, where the framework becomes top heavy and it loses all of it's strength as you're constantly developing work-arounds to prevent changes from affecting one or more of the versions within your framework.
>
>There's much to be said about finding a balance between complexity/inheritance and good old stand-alone development; the ideal position is somewhere between the two.
I think this warning is very justified; I have had cases where I overdid inheritance (for other reasons), so I know exactly what you mean!
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)