Fully implemented polymorphism for drawing shapes.  Attempting to add undo feature