Singletons get a bad rap. Why? Should you use them in your application? And if you've inherited several of them, what should you do?