Basic Game Structure Init

GraphicsMain.java = Main Class
GameStateManager.java = Manager for all other managers and states.
If an object or class needs a manager, it should be passed into it, from the parent class, when that object is created.

DrawManager.java = Contains all utility functions for drawing different shapes easily.
For use the DrawManager (dm) should be passed in from the GSM.
(e.g. gsm.dm.FUNCTION_TO_BE_USED)

FontManager.java = Stores all fonts to be used in the String(...) function within the DrawManager. (For displaying text)

Each State is extended from GameState so that the GSM can manage all states as a similar entity (a state).
While one state is being used, any code from other states that are only in those states will be "frozen".
Since the managers are created and stored in the GSM they can be used at any point no matter what state is active.

NOTE: If anyone has a better idea for controlling gamestates and drawing things please let me know.