Reworked classes to make more sense.