diff --git a/numhask.cabal b/numhask.cabal
--- a/numhask.cabal
+++ b/numhask.cabal
@@ -1,7 +1,7 @@
 name:
   numhask
 version:
-  0.0.3
+  0.0.4
 synopsis:
   A numeric prelude
 description:
@@ -38,7 +38,6 @@
   exposed-modules:
     NumHask.Prelude,
     NumHask.Examples,
-    NumHask.Algebra,
     NumHask.Algebra.Additive,
     NumHask.Algebra.Basis,
     NumHask.Algebra.Distribution,
diff --git a/src/NumHask/Algebra.hs b/src/NumHask/Algebra.hs
deleted file mode 100644
--- a/src/NumHask/Algebra.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- | Just the numeric tower bits of NumHask
-
-module NumHask.Algebra
-  ( -- * Algebraic Heirarchy
-    module NumHask.Algebra.Additive
-  , module NumHask.Algebra.Basis
-  , module NumHask.Algebra.Distribution
-  , module NumHask.Algebra.Field
-  , module NumHask.Algebra.Integral
-  , module NumHask.Algebra.Magma
-  , module NumHask.Algebra.Metric
-  , module NumHask.Algebra.Module
-  , module NumHask.Algebra.Multiplicative
-  , module NumHask.Algebra.Ordering
-  , module NumHask.Algebra.Ring
-  ) where
-
-import NumHask.Algebra.Additive
-import NumHask.Algebra.Basis
-import NumHask.Algebra.Distribution
-import NumHask.Algebra.Field
-import NumHask.Algebra.Integral
-import NumHask.Algebra.Magma
-import NumHask.Algebra.Metric
-import NumHask.Algebra.Module
-import NumHask.Algebra.Multiplicative
-import NumHask.Algebra.Ordering
-import NumHask.Algebra.Ring
diff --git a/src/NumHask/Algebra/Metric.hs b/src/NumHask/Algebra/Metric.hs
--- a/src/NumHask/Algebra/Metric.hs
+++ b/src/NumHask/Algebra/Metric.hs
@@ -20,7 +20,7 @@
 -- | abs and signnum are warts on the standard 'Num' class, and are separated here to provide a cleaner structure.
 class ( AdditiveUnital a
       , AdditiveGroup a
-      , Multiplicative a
+      , MultiplicativeUnital a
       ) => Signed a where
     sign :: a -> a
     abs :: a -> a
diff --git a/src/NumHask/Examples.hs b/src/NumHask/Examples.hs
--- a/src/NumHask/Examples.hs
+++ b/src/NumHask/Examples.hs
@@ -112,6 +112,7 @@
 -- $vector
 -- A 'Vector' is a number by virtue of it being a 'Representable' 'Functor' where the representation is an 'Int'.
 --
+-- >>> import NumHask.Vector
 -- >>> :set -XDataKinds
 -- >>> :set -XOverloadedLists
 -- >>> [] :: Vector 3 Int
diff --git a/src/NumHask/Matrix.hs b/src/NumHask/Matrix.hs
--- a/src/NumHask/Matrix.hs
+++ b/src/NumHask/Matrix.hs
@@ -29,13 +29,11 @@
   ) where
 
 import qualified Protolude as P
-import Protolude
-    (($), Functor(..), Show, Eq(..), (.), (<$>), Foldable(..), Int, Maybe(..))
 import Data.Distributive as D
 import Data.Functor.Rep
 import Data.Proxy (Proxy(..))
 import GHC.TypeLits
-import NumHask.Algebra
+import NumHask.Prelude hiding (show)
 import NumHask.Naperian
 import NumHask.Vector
 import Test.QuickCheck
diff --git a/src/NumHask/Naperian.hs b/src/NumHask/Naperian.hs
--- a/src/NumHask/Naperian.hs
+++ b/src/NumHask/Naperian.hs
@@ -5,13 +5,14 @@
 module NumHask.Naperian
     ( Naperian
     , HasShape(..)
+    , module Data.Functor.Rep
     ) where
 
 import Protolude (Int, foldr, Foldable(..), ($), (<$>), fmap, fst, snd, or, and)
 import Data.Functor.Rep
-import NumHask.Algebra
+import NumHask.Prelude
 
--- | ToDo: integrate ni Naperian instance
+-- | ToDo: integrate with Naperian instance
 class HasShape f where
     type Shape f
     shape :: f a -> Shape f
diff --git a/src/NumHask/Prelude.hs b/src/NumHask/Prelude.hs
--- a/src/NumHask/Prelude.hs
+++ b/src/NumHask/Prelude.hs
@@ -7,8 +7,6 @@
     -- * Backend
     -- $backend
     module Protolude
-  , module Data.Distributive
-  , module Data.Functor.Rep
     -- * Algebraic Heirarchy
     -- $instances
   , module NumHask.Algebra.Additive
@@ -22,12 +20,6 @@
   , module NumHask.Algebra.Multiplicative
   , module NumHask.Algebra.Ordering
   , module NumHask.Algebra.Ring
-    -- * Representations
-    -- $representables
-  , module NumHask.Matrix
-  , module NumHask.Tensor
-  , module NumHask.Vector
-  , module NumHask.Naperian
   ) where
 
 import Protolude hiding
@@ -72,14 +64,6 @@
 import NumHask.Algebra.Ordering
 import NumHask.Algebra.Ring
 
-import NumHask.Matrix
-import NumHask.Tensor
-import NumHask.Vector
-import NumHask.Naperian
-
-import Data.Distributive
-import Data.Functor.Rep
-
 -- $backend
 -- NumHask imports Protolude as the prelude and replaces much of the 'Num' heirarchy in base.
 -- Usage of 'Semigroup' and 'Monoid' has been avoided to retain basic compatability.
@@ -87,13 +71,5 @@
 -- $instances
 -- Re-defines the numeric tower.
 --
--- Instances for 'Int', 'Integer', 'Float', 'Double', 'Bool' and 'Representable' Functors are supplied
---
-
--- $representables
--- Different classes are supplied for holding shape information at the type level and value level.
---
--- Value-level classes are not (yet) wired in to the Algebra
---
--- Type-level shaped numbers are wired in via the 'Representable' 'Functor' instances.
+-- Instances for 'Int', 'Integer', 'Float', 'Double', 'Bool' and 'Complex' are supplied
 --
diff --git a/src/NumHask/Tensor.hs b/src/NumHask/Tensor.hs
--- a/src/NumHask/Tensor.hs
+++ b/src/NumHask/Tensor.hs
@@ -19,23 +19,18 @@
   , flatten1
   ) where
 
-import qualified Protolude as P
-import Protolude
-    (($), (<$>), Functor(..), Show, Eq(..), (.), Maybe(..), Int, reverse, foldr, fst, zipWith, scanr, drop, sum, product, Foldable(..))
-
 import Data.Distributive as D
-import Data.Functor.Rep
 import Data.Singletons
 import Data.Singletons.Prelude
 import GHC.Exts
 import GHC.Show
 import GHC.TypeLits
-import NumHask.Algebra.Additive
-import NumHask.Algebra.Integral
-import NumHask.Algebra.Multiplicative
+import NumHask.Naperian
+import NumHask.Prelude hiding (show)
 import Test.QuickCheck
+
 import qualified Data.Vector as V
-import NumHask.Naperian
+import qualified Protolude as P
 
 -- | an n-dimensional array where shape is specified at the type level
 -- The main purpose of this, beyond safe typing, is to supply the Representable instance with an initial object.
diff --git a/src/NumHask/Vector.hs b/src/NumHask/Vector.hs
--- a/src/NumHask/Vector.hs
+++ b/src/NumHask/Vector.hs
@@ -17,16 +17,13 @@
   ) where
 
 import qualified Protolude as P
-import Protolude
-    (($), (<$>), Functor(..), Show, Eq(..), take, Foldable(..), Ord(..), Int, Maybe(..), (.))
-
 import Data.Distributive as D
 import Data.Functor.Rep
 import Data.Proxy (Proxy(..))
 import GHC.Exts
 import GHC.Show (show)
 import GHC.TypeLits
-import NumHask.Algebra
+import NumHask.Prelude hiding (show)
 import NumHask.Naperian
 import Test.QuickCheck
 import qualified Data.Vector as V
diff --git a/test/test.hs b/test/test.hs
--- a/test/test.hs
+++ b/test/test.hs
@@ -5,6 +5,10 @@
 module Main where
 
 import NumHask.Prelude
+import NumHask.Vector
+import NumHask.Matrix
+import NumHask.Tensor
+import NumHask.Naperian
 
 import Test.Tasty (TestName, TestTree, testGroup, defaultMain, localOption)
 import Test.Tasty.QuickCheck
@@ -510,9 +514,7 @@
 kindaPositive a = nearZero a || a > zero
 
 metricNaperianFloatLaws ::
-    ( Naperian r
-    , Metric (r Float) Float
-    , Foldable r
+    ( Metric (r Float) Float
     ) => [Law (r Float)]
 metricNaperianFloatLaws =
     [ ( "positive"
@@ -617,9 +619,7 @@
     ]
 
 expFieldNaperianLaws ::
-    ( Naperian r
-    , Additive (r a)
-    , ExpField (r a)
+    ( ExpField (r a)
     , Foldable r
     , ExpField a
     , Epsilon a
@@ -647,11 +647,8 @@
 
 additiveModuleLaws ::
     ( Eq (r a)
-    , Naperian r
-    , Additive (r a)
     , Epsilon a
     , Epsilon (r a)
-    , Foldable r
     , AdditiveModule r a
     ) => [Law2 (r a) a]
 additiveModuleLaws =
@@ -670,7 +667,6 @@
     ( Eq (r a)
     , Show a
     , Arbitrary a
-    , Naperian r
     , Show (r a)
     , Arbitrary (r a)
     , Epsilon a
@@ -693,10 +689,7 @@
     ( Eq (r a)
     , Epsilon a
     , Epsilon (r a)
-    , Foldable r
     , Naperian r
-    , Additive (r a)
-    , AdditiveGroup (r a)
     , AdditiveGroupModule r a
     ) => [Law2 (r a) a]
 additiveGroupModuleLaws =
@@ -721,10 +714,7 @@
     , Arbitrary (r a)
     , Epsilon a
     , Epsilon (r a)
-    , Foldable r
     , Naperian r
-    , Additive (r a)
-    , AdditiveGroup (r a)
     , AdditiveGroupModule r a
     ) => [Law2 (r a) a]
 additiveGroupModuleLawsFail =
@@ -745,11 +735,7 @@
     ( Eq (r a)
     , Epsilon a
     , Epsilon (r a)
-    , Foldable r
-    , Naperian r
-    , Additive (r a)
     , Multiplicative (r a)
-    , AdditiveModule r a
     , MultiplicativeModule r a
     ) => [Law2 (r a) a]
 multiplicativeModuleLaws =
@@ -776,11 +762,7 @@
     , Arbitrary a
     , Show (r a)
     , Arbitrary (r a)
-    , Foldable r
-    , Naperian r
-    , Additive (r a)
     , Multiplicative (r a)
-    , AdditiveModule r a
     , MultiplicativeModule r a
     ) => [Law2 (r a) a]
 multiplicativeModuleLawsFail =
@@ -804,10 +786,7 @@
     , Eq a
     , Epsilon a
     , Epsilon (r a)
-    , Foldable r
     , Naperian r
-    , AdditiveUnital (r a)
-    , Multiplicative (r a)
     , MultiplicativeGroup (r a)
     , MultiplicativeGroupModule r a
     ) => [Law2 (r a) a]
@@ -834,10 +813,6 @@
     , Arbitrary (r a)
     , Epsilon a
     , Epsilon (r a)
-    , Foldable r
-    , Naperian r
-    , AdditiveUnital (r a)
-    , Multiplicative (r a)
     , MultiplicativeGroup (r a)
     , MultiplicativeGroupModule r a
     ) => [Law2 (r a) a]
@@ -860,11 +835,7 @@
 
 additiveBasisLaws ::
     ( Eq (r a)
-    , Foldable r
-    , Epsilon a
     , Epsilon (r a)
-    , Naperian r
-    , AdditiveUnital (r a)
     , AdditiveBasis r a
     ) => [Law (r a)]
 additiveBasisLaws =
@@ -879,11 +850,7 @@
     ( Eq (r a)
     , Arbitrary (r a)
     , Show (r a)
-    , Foldable r
-    , Epsilon a
-    , Naperian r
     , Epsilon (r a)
-    , AdditiveUnital (r a)
     , AdditiveBasis r a
     ) => [Law (r a)]
 additiveBasisLawsFail =
@@ -905,7 +872,6 @@
 
 multiplicativeBasisLaws ::
     ( Eq (r a)
-    , Naperian r
     , Multiplicative (r a)
     , MultiplicativeBasis r a
     ) => [Law (r a)]
@@ -921,7 +887,6 @@
     ( Eq (r a)
     , Show (r a)
     , Arbitrary (r a)
-    , Naperian r
     , Multiplicative (r a)
     , MultiplicativeBasis r a
     ) => [Law (r a)]
@@ -937,7 +902,6 @@
     ( Eq (r a)
     , Epsilon a
     , Epsilon (r a)
-    , Foldable r
     , Naperian r
     , MultiplicativeGroupBasis r a
     ) => [Law (r a)]
