diff --git a/chart-unit.cabal b/chart-unit.cabal
--- a/chart-unit.cabal
+++ b/chart-unit.cabal
@@ -1,7 +1,7 @@
 name:
   chart-unit
 version:
-  0.3.1
+  0.3.2
 synopsis:
   A set of native haskell charts.
 description:
@@ -38,10 +38,6 @@
   build-depends:
     base >= 4.7 && < 5,
     colour,
-    containers,
-    data-default,
-    diagrams,
-    diagrams-core,
     diagrams-lib,
     diagrams-svg,
     foldl,
@@ -50,10 +46,7 @@
     linear,
     numhask >= 0.0.4 && < 1,
     numhask-range >= 0.0.2 && < 1,
-    protolude,
-    text,
-    QuickCheck,
-    SVGFonts
+    text
   default-language:
     Haskell2010
   default-extensions:
@@ -106,28 +99,16 @@
     base >= 4.7 && < 5,
     chart-unit,
     protolude,
-    containers,
-    diagrams,
-    diagrams-core,
-    diagrams-lib,
-    diagrams-svg,
-    linear,
     foldl,
-    lens,
     text,
-    formatting,
-    SVGFonts,
     numhask,
-    numhask-range,
     -- for data examples
     mwc-random,
     mwc-probability,
     primitive,
     ad,
-    ListLike,
     reflection,
     tdigest
-    -- diagrams-rasterific
 
   default-extensions:
     NoImplicitPrelude,
@@ -174,20 +155,10 @@
     test.hs
   build-depends:
     base >= 4.7 && < 5,
-    HUnit,
-    QuickCheck,
     chart-unit,
-    protolude,
-    smallcheck,
     tasty,
-    tasty-hunit,
     tasty-hspec,
-    tasty-quickcheck,
-    tasty-smallcheck,
-    numhask,
-    numhask-range,
-    data-default,
-    diagrams-lib
+    numhask
   default-extensions:
     NoImplicitPrelude,
     UnicodeSyntax,
diff --git a/examples/examples.hs b/examples/examples.hs
--- a/examples/examples.hs
+++ b/examples/examples.hs
@@ -179,7 +179,7 @@
     ch = lineChart lineDefs asquare lineData
 
 -- compound charts
-exampleCompound :: IO [QChart a]
+exampleCompound :: IO [QChart a [[V2 Double]]]
 exampleCompound = do
     xys <- mkScatterData
     let qsc = QChart (scatterChart scatterDefs) (rangeR2s xys) xys
@@ -192,7 +192,7 @@
           (\a _ -> axes
             ( chartRange .~ Just xy
             $ chartAspect .~ a
-            $ def)) xy ()
+            $ def)) xy []
 
 exampleScatterHist :: [[V2 Double]] -> Chart' a
 exampleScatterHist xys =
diff --git a/src/Chart/Types.hs b/src/Chart/Types.hs
--- a/src/Chart/Types.hs
+++ b/src/Chart/Types.hs
@@ -13,6 +13,9 @@
   , golden
   , widescreen
   , QChart(..)
+  , qXY
+  , qChart
+  , qData
   , Orientation(..)
   , Placement(..)
   , TickStyle(..)
@@ -116,7 +119,7 @@
 widescreen = aspect 3
 
 -- | The concrete nature of a QDiagram, and a desire to scale data and hud items naturally, a QChart is mostly a late binding of the Aspect that the chart is to be projected on to and the data.
-data QChart a = forall b. QChart
+data QChart a b = QChart
     { _qChart :: ( ( Renderable (Diagrams.TwoD.Text.Text Double) a)
                   , Renderable (Path V2 Double) a) =>
                 Aspect -> b -> QDiagram a V2 Double Any
diff --git a/src/Chart/Unit.hs b/src/Chart/Unit.hs
--- a/src/Chart/Unit.hs
+++ b/src/Chart/Unit.hs
@@ -265,7 +265,7 @@
            $ chartRange .~ Just axesRange
            $ conf))
         r
-        ()
+        []
       ]
     where
       r = rangeR2s d
@@ -411,7 +411,7 @@
 
 -- * rendering
 -- | render a list of qcharts using a common scale
-combine :: Aspect -> [QChart a] -> Chart' a
+combine :: Aspect -> [QChart a b] -> Chart' a
 combine (Aspect xy) qcs = mconcat $
     (\(QChart c xy1 x) -> c
           (Aspect $ xy `times` xy1 `times` recip xysum)
