diff --git a/hgis.cabal b/hgis.cabal
--- a/hgis.cabal
+++ b/hgis.cabal
@@ -1,5 +1,5 @@
 name: hgis
-version: 0.1.2.1
+version: 0.1.3.0
 cabal-version: >=1.10
 build-type: Simple
 license: BSD3
@@ -42,23 +42,23 @@
         GIS.Math.Projections
     build-depends:
         base >=4.7 && <5,
-        optparse-applicative >=0.13.2.0,
-        Chart >=1.8.2,
-        Chart-cairo >=1.8.2,
-        Chart-diagrams >=1.8.2,
-        lens >=4.15.1,
-        composition >=1.0.2.1,
-        ansi-wl-pprint >=0.6.7.3,
-        transformers >=0.5.2.0,
-        directory >=1.3.0.0,
-        colour >=2.3.3,
-        data-default >=0.7.1.1,
-        binary >=0.8.3.0,
-        bytestring >=0.10.8.1,
-        data-binary-ieee754 >=0.4.4,
-        filepath >=1.4.1.1,
-        monad-loops >=0.4.3
-    pkgconfig-depends: cairo >=0.13.3.1
+        optparse-applicative >=0.13.2.0 && <0.14,
+        Chart >=1.8.2 && <1.9,
+        Chart-cairo >=1.8.2 && <1.9,
+        Chart-diagrams >=1.8.2 && <1.9,
+        lens >=4.15.1 && <4.16,
+        composition >=1.0.2.1 && <1.1,
+        ansi-wl-pprint >=0.6.7.3 && <0.7,
+        transformers >=0.5.2.0 && <0.6,
+        directory >=1.3.0.0 && <1.4,
+        colour >=2.3.3 && <2.4,
+        data-default >=0.7.1.1 && <0.8,
+        binary >=0.8.3.0 && <0.9,
+        bytestring >=0.10.8.1 && <0.11,
+        data-binary-ieee754 >=0.4.4 && <0.5,
+        filepath >=1.4.1.1 && <1.5,
+        monad-loops >=0.4.3 && <0.5
+    pkgconfig-depends: cairo >=0.13.3.1 && <0.14
     default-language: Haskell2010
     default-extensions: DeriveGeneric OverloadedStrings
     hs-source-dirs: src src/depends/readshp
@@ -84,8 +84,8 @@
         ghc-options: -threaded -rtsopts -with-rtsopts=-N
     main-is: MainPng.hs
     build-depends:
-        base >=4.9.1.0,
-        hgis >=0.1.2.1
+        base >=4.9.1.0 && <4.10,
+        hgis >=0.1.3.0 && <0.2
     default-language: Haskell2010
     hs-source-dirs: app
 
@@ -93,9 +93,9 @@
     type: exitcode-stdio-1.0
     main-is: Spec.hs
     build-depends:
-        base >=4.9.1.0,
-        hgis >=0.1.2.1,
-        hspec >=2.4.2
+        base >=4.9.1.0 && <4.10,
+        hgis >=0.1.3.0 && <0.2,
+        hspec >=2.4.2 && <2.5
     default-language: Haskell2010
     hs-source-dirs: test
     ghc-options: -threaded -rtsopts -with-rtsopts=-N
diff --git a/src/GIS/Hylo.hs b/src/GIS/Hylo.hs
--- a/src/GIS/Hylo.hs
+++ b/src/GIS/Hylo.hs
@@ -22,7 +22,7 @@
 -- | Get the areas of various objects and return a string suitable for printing
 districtArea :: [District] -> String
 districtArea districts = concat . intercalate (pure "\n") $ map (pure . show . distA) districts
-    where distA (District _ label _ area) = (label, sum area)
+    where distA (District _ label _ area) = (label, sum area) -- TODO figure out which one is the correct one
 
 -- should mention it's km
 -- | Get the perimeters of various objects and return a string suitable for printing
diff --git a/src/GIS/Math/Spherical.hs b/src/GIS/Math/Spherical.hs
--- a/src/GIS/Math/Spherical.hs
+++ b/src/GIS/Math/Spherical.hs
@@ -40,13 +40,14 @@
 -- WARNING: not yet to scale. 
 -- (need to compute jacobian; ideally km^2/steridian
 areaPolygon :: Polygon -> Double
-areaPolygon = (*factor) . areaPolyRectangular . (fmap bonne)
-    where factor = 1 -- 1717856/227.5506494212687
+areaPolygon = (*factor) . areaPolyRectangular . fmap (bonne . toRadians)
+    where factor = 1717856/4.219690791828533e-2
 
 -- | Find the area of a polygon with rectangular coördinates given. 
 areaPolyRectangular :: Polygon -> Double
-areaPolyRectangular (pt:pts) = 0.5 * (fst (foldl' areaPolyCalc (0,pt) pts))
-    where areaPolyCalc (sum,(x,y)) (xNext,yNext) = (sum + (x * yNext - xNext * y),(xNext,yNext))
+areaPolyRectangular (pt:pts) = abs . (*0.5) . fst $ (foldl' areaPolyCalc (0,pt) pts) -- different result with foldl' and foldr? b/c pt gets stuck in different places.
+    where areaPolyCalc (sum,(x1,y1)) (x2, y2) = (sum + (x1 * y2 - x2 * y1),(x2,y2)) -- wrong end! should end w/ xny1-ynx1 MAXIMUM values for coordinates don't make any sense? 
+          ((x1, y1),(xn, yn)) = (pt, last pts)
 
 -- | Distance in kilometers between two points given in degrees. 
 distance :: (Double, Double) -> (Double, Double) -> Double
