First, we will implement an abstract base class of polygon which can be extended to any type of polygons such as triangles, or even squares. In the future, we could add this to any complex polygon by writing an inpidual plugin for each one.