As I cannot think of a class-based way to build my report, I think I'll use a customer class everywhere BUT in the report. Inside the report I'll just use one SQL statement instead of dozens of instances and hundreds of queries. I'll make a note inside the class that this and that method is not the only place the data is accessed, to also check inside the report. Sometimes, you've just gotta compromise to get the job done. Most of the time, OOP is a good idea, but in this instance I don't think it's the best choice. It's less elegant but more pragmatic. Our project is medium-sized (only about 10K lines) and this will work just fine. (It makes me wonder if enterprise-class OO projects had to make the same decisions.) Thanks to everyone for your input. I need to unsubscribe from the list, so if you have any input, please CC: Chris (AT) deVidal (DOT) tv (my real email address). You might get an automatic reply, click the link. CD Think you're a good person? Yeah, right! ;-) Prove it and get ten thousand dollars: TenThousandDollarOffer.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php