Right now I have many different objects, many of which rely on several other objects to operate. I have a graphics library wrapper, sprite, button, collision, heads up display and many other classes. I'm thinking about breaking it up even further to specialized classes but I'm thinking to myself, will I have to pass a hundred objects into each class? For instance, a button class requires the graphics library, event manager, sound manager, its x and y position, width height, filepath etc... My constructors are getting longer and longer! Is there a better way to manage my code? Maybe some sort of manager class that holds all of the above that I can pass to each object? Or is that bad practice because I'm giving all of the dependent classes too much access to other parts of the game? What's the right way to do this? Any help would be much appreciated, thank you!