Big commit before class. Going to be shifting around some classes so should make a save point here.