Added commentary to classes
Changed the attributes and encapsulated the fields using ShapeAttribute