But this can lead to some problems with creating global variables, Since the Singleton's are essentially global to your entire application, having a single object that is global to your application and control so much of your application could be incredibly hard to test, since you need tohave that single object in order to test anything, and it can create a bunch of coupling between the different parts.