Made seperate classes for each shape type. Renamed a few vars for readability