in reply to OO Design question: configuration
Take a look at IOC it is meant to solve just this kind of problem. We use it at $work for all our larger projects.
What it basically will do for you is to handle the creation and configuration of all your objects while transparently managing the interdependencies (even circular dependencies as well). You then fetch the objects you need from the IOC::Registry singleton, and they Just Work.