Added Polygon::Field class to handle field calculations