diff --git a/hw-mquery.cabal b/hw-mquery.cabal
--- a/hw-mquery.cabal
+++ b/hw-mquery.cabal
@@ -1,7 +1,7 @@
 cabal-version:  2.2
 
 name:           hw-mquery
-version:        0.1.0.3
+version:        0.2.0.0
 synopsis:       Monadic query DSL
 description:    Please see README.md
 category:       Data
@@ -36,14 +36,14 @@
       src
 
   exposed-modules:
-      HaskellWorks.Data.AtLeastSize
-      HaskellWorks.Data.Entry
-      HaskellWorks.Data.Micro
-      HaskellWorks.Data.Mini
       HaskellWorks.Data.MQuery
-      HaskellWorks.Data.Row
-      HaskellWorks.Data.Shows
-      HaskellWorks.Data.ToBool
+      HaskellWorks.Data.MQuery.AtLeastSize
+      HaskellWorks.Data.MQuery.Entry
+      HaskellWorks.Data.MQuery.Micro
+      HaskellWorks.Data.MQuery.Mini
+      HaskellWorks.Data.MQuery.Row
+      HaskellWorks.Data.MQuery.Shows
+      HaskellWorks.Data.MQuery.ToBool
   other-modules:
       Paths_hw_mquery
   autogen-modules:
diff --git a/src/HaskellWorks/Data/AtLeastSize.hs b/src/HaskellWorks/Data/AtLeastSize.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/AtLeastSize.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-
-module HaskellWorks.Data.AtLeastSize where
-
-class AtLeastSize a where
-  atLeastSize :: a -> Int -> Bool
-
-instance AtLeastSize [a] where
-  atLeastSize  _      0         = True
-  atLeastSize (_:as)  n | n > 0 = atLeastSize as (n - 1)
-  atLeastSize  _      _         = False
diff --git a/src/HaskellWorks/Data/Entry.hs b/src/HaskellWorks/Data/Entry.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Entry.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module HaskellWorks.Data.Entry where
-
-import Text.PrettyPrint.ANSI.Leijen
-
-data Entry k v = Entry k v
-
-instance (Pretty k, Pretty v) => Pretty (Entry k v) where
-  pretty (Entry k v) = pretty k <> text ": " <> pretty v
diff --git a/src/HaskellWorks/Data/MQuery.hs b/src/HaskellWorks/Data/MQuery.hs
--- a/src/HaskellWorks/Data/MQuery.hs
+++ b/src/HaskellWorks/Data/MQuery.hs
@@ -9,12 +9,12 @@
 import Control.Lens
 import Control.Monad
 import Data.List
-import Data.Semigroup               (Semigroup, (<>))
+import Data.Semigroup                  (Semigroup, (<>))
 import GHC.Base
-import HaskellWorks.Data.Entry
-import HaskellWorks.Data.Row
-import HaskellWorks.Data.ToBool
-import Text.PrettyPrint.ANSI.Leijen hiding ((<>))
+import HaskellWorks.Data.MQuery.Entry
+import HaskellWorks.Data.MQuery.Row
+import HaskellWorks.Data.MQuery.ToBool
+import Text.PrettyPrint.ANSI.Leijen    hiding ((<>))
 
 import qualified Data.DList as DL
 
diff --git a/src/HaskellWorks/Data/MQuery/AtLeastSize.hs b/src/HaskellWorks/Data/MQuery/AtLeastSize.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/MQuery/AtLeastSize.hs
@@ -0,0 +1,10 @@
+
+module HaskellWorks.Data.MQuery.AtLeastSize where
+
+class AtLeastSize a where
+  atLeastSize :: a -> Int -> Bool
+
+instance AtLeastSize [a] where
+  atLeastSize  _      0 = True
+  atLeastSize (_:as)  n | n > 0 = atLeastSize as (n - 1)
+  atLeastSize  _      _ = False
diff --git a/src/HaskellWorks/Data/MQuery/Entry.hs b/src/HaskellWorks/Data/MQuery/Entry.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/MQuery/Entry.hs
@@ -0,0 +1,8 @@
+module HaskellWorks.Data.MQuery.Entry where
+
+import Text.PrettyPrint.ANSI.Leijen
+
+data Entry k v = Entry k v
+
+instance (Pretty k, Pretty v) => Pretty (Entry k v) where
+  pretty (Entry k v) = pretty k <> text ": " <> pretty v
diff --git a/src/HaskellWorks/Data/MQuery/Micro.hs b/src/HaskellWorks/Data/MQuery/Micro.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/MQuery/Micro.hs
@@ -0,0 +1,34 @@
+{-# LANGUAGE FlexibleContexts    #-}
+{-# LANGUAGE FlexibleInstances   #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
+module HaskellWorks.Data.MQuery.Micro where
+
+import Text.PrettyPrint.ANSI.Leijen
+
+import qualified Data.DList as DL
+
+newtype Micro a = Micro a
+
+prettyVs :: Pretty a => [a] -> Doc
+prettyVs (kv:kvs) = pretty kv <> foldl (<>) empty ((\jv -> text ", " <> pretty jv) `map` kvs)
+prettyVs []       = empty
+
+putPretty :: Pretty a => a -> IO ()
+putPretty a = putDoc (pretty a <> hardline)
+
+prettyKvs :: Pretty (Micro a) => [a] -> Doc
+prettyKvs (kv:kvs) = pretty (Micro kv) <> foldl (<>) empty ((\jv -> text ", " <> pretty (Micro jv)) `map` kvs)
+prettyKvs []       = empty
+
+instance Pretty a => Pretty (Micro [a]) where
+  pretty (Micro xs) = case length xs of
+    xsLen | xsLen == 0  -> text "[]"
+    xsLen | xsLen <= 10 -> text "[" <> prettyVs xs <> text "]"
+    _                   -> text "[" <> prettyVs (take 10 xs) <> text ", ..]"
+
+instance Pretty a => Pretty (Micro (DL.DList a)) where
+  pretty (Micro dxs) = case DL.toList dxs of
+    xs@(_:_:_:_:_:_:_:_:_:_:_:_:_) -> text "[" <> prettyVs (take 50 xs) <> text ", ..]"
+    []                             -> text "[]"
+    xs                             -> text "[" <> prettyVs          xs  <> text "]"
diff --git a/src/HaskellWorks/Data/MQuery/Mini.hs b/src/HaskellWorks/Data/MQuery/Mini.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/MQuery/Mini.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE FlexibleContexts  #-}
+{-# LANGUAGE FlexibleInstances #-}
+
+module HaskellWorks.Data.MQuery.Mini where
+
+import HaskellWorks.Data.MQuery.AtLeastSize
+import HaskellWorks.Data.MQuery.Micro
+import Text.PrettyPrint.ANSI.Leijen
+
+import qualified Data.DList as DL
+
+newtype Mini a = Mini a
+
+instance Pretty (Micro a) => Pretty (Mini [a]) where
+  pretty (Mini xs) | xs `atLeastSize` 11  = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text ", ..]"
+  pretty (Mini xs) | xs `atLeastSize` 1   = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text "]"
+  pretty (Mini _ ) = text "[]"
+
+instance Pretty (Mini a) => Pretty (Mini (DL.DList a)) where
+  pretty (Mini xs) = vcat (punctuate (text ",") ((pretty . Mini) `map` take 10 (DL.toList xs)))
diff --git a/src/HaskellWorks/Data/MQuery/Row.hs b/src/HaskellWorks/Data/MQuery/Row.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/MQuery/Row.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE FlexibleContexts  #-}
+{-# LANGUAGE FlexibleInstances #-}
+
+module HaskellWorks.Data.MQuery.Row where
+
+import Text.PrettyPrint.ANSI.Leijen
+
+import qualified Data.DList as DL
+
+type MaxChars = Int
+
+data Row a = Row MaxChars a
+
+instance Pretty a => Pretty (Row (DL.DList a)) where
+  pretty (Row maxChars xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)
+    where prettyRows :: [Doc]
+          prettyRows = (\row -> text (take maxChars (displayS (renderCompact (pretty row)) []))) `map` DL.toList xs
+
+prettyRowOfString :: Show a => Row (DL.DList a) -> Doc
+prettyRowOfString (Row _ xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)
+  where prettyRows :: [Doc]
+        prettyRows = (text . show) `map` DL.toList xs
diff --git a/src/HaskellWorks/Data/MQuery/Shows.hs b/src/HaskellWorks/Data/MQuery/Shows.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/MQuery/Shows.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE FlexibleContexts #-}
+
+module HaskellWorks.Data.MQuery.Shows where
+
+import HaskellWorks.Data.MQuery.Micro
+
+showsVs :: Show a => [a] -> String -> String
+showsVs (kv:kvs) = shows kv . foldl (.) id ((\jv -> (", " ++) . shows jv) `map` kvs)
+showsVs []       = id
+
+showKvs :: Show (Micro a) => [a] -> String -> String
+showKvs (kv:kvs) = shows (Micro kv) . foldl (.) id ((\jv -> (", " ++) . shows (Micro jv)) `map` kvs)
+showKvs []       = id
diff --git a/src/HaskellWorks/Data/MQuery/ToBool.hs b/src/HaskellWorks/Data/MQuery/ToBool.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Data/MQuery/ToBool.hs
@@ -0,0 +1,17 @@
+
+module HaskellWorks.Data.MQuery.ToBool where
+
+import qualified Data.DList as DL
+
+class ToBool a where
+  toBool :: a -> Bool
+
+instance ToBool Bool where
+  toBool = id
+
+instance ToBool [a] where
+  toBool (_:_) = True
+  toBool    _  = False
+
+instance ToBool (DL.DList a) where
+  toBool = toBool . DL.toList
diff --git a/src/HaskellWorks/Data/Micro.hs b/src/HaskellWorks/Data/Micro.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Micro.hs
+++ /dev/null
@@ -1,34 +0,0 @@
-{-# LANGUAGE FlexibleContexts    #-}
-{-# LANGUAGE FlexibleInstances   #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-
-module HaskellWorks.Data.Micro where
-
-import Text.PrettyPrint.ANSI.Leijen
-
-import qualified Data.DList as DL
-
-newtype Micro a = Micro a
-
-prettyVs :: Pretty a => [a] -> Doc
-prettyVs (kv:kvs) = pretty kv <> foldl (<>) empty ((\jv -> text ", " <> pretty jv) `map` kvs)
-prettyVs []       = empty
-
-putPretty :: Pretty a => a -> IO ()
-putPretty a = putDoc (pretty a <> hardline)
-
-prettyKvs :: Pretty (Micro a) => [a] -> Doc
-prettyKvs (kv:kvs) = pretty (Micro kv) <> foldl (<>) empty ((\jv -> text ", " <> pretty (Micro jv)) `map` kvs)
-prettyKvs []       = empty
-
-instance Pretty a => Pretty (Micro [a]) where
-  pretty (Micro xs) = case length xs of
-    xsLen | xsLen == 0    -> text "[]"
-    xsLen | xsLen <= 10   -> text "[" <> prettyVs xs <> text "]"
-    _     -> text "[" <> prettyVs (take 10 xs) <> text ", ..]"
-
-instance Pretty a => Pretty (Micro (DL.DList a)) where
-  pretty (Micro dxs) = case DL.toList dxs of
-    xs@(_:_:_:_:_:_:_:_:_:_:_:_:_) -> text "[" <> prettyVs (take 50 xs) <> text ", ..]"
-    []                             -> text "[]"
-    xs                             -> text "[" <> prettyVs          xs  <> text "]"
diff --git a/src/HaskellWorks/Data/Mini.hs b/src/HaskellWorks/Data/Mini.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Mini.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# LANGUAGE FlexibleContexts  #-}
-{-# LANGUAGE FlexibleInstances #-}
-
-module HaskellWorks.Data.Mini where
-
-import HaskellWorks.Data.AtLeastSize
-import HaskellWorks.Data.Micro
-import Text.PrettyPrint.ANSI.Leijen
-
-import qualified Data.DList as DL
-
-newtype Mini a = Mini a
-
-instance Pretty (Micro a) => Pretty (Mini [a]) where
-  pretty (Mini xs) | xs `atLeastSize` 11  = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text ", ..]"
-  pretty (Mini xs) | xs `atLeastSize` 1   = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text "]"
-  pretty (Mini _ ) = text "[]"
-
-instance Pretty (Mini a) => Pretty (Mini (DL.DList a)) where
-  pretty (Mini xs) = vcat (punctuate (text ",") ((pretty . Mini) `map` take 10 (DL.toList xs)))
diff --git a/src/HaskellWorks/Data/Row.hs b/src/HaskellWorks/Data/Row.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Row.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-{-# LANGUAGE FlexibleContexts  #-}
-{-# LANGUAGE FlexibleInstances #-}
-
-module HaskellWorks.Data.Row where
-
-import Text.PrettyPrint.ANSI.Leijen
-
-import qualified Data.DList as DL
-
-type MaxChars = Int
-
-data Row a = Row MaxChars a
-
-instance Pretty a => Pretty (Row (DL.DList a)) where
-  pretty (Row maxChars xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)
-    where prettyRows :: [Doc]
-          prettyRows = (\row -> text (take maxChars (displayS (renderCompact (pretty row)) []))) `map` DL.toList xs
-
-prettyRowOfString :: Show a => Row (DL.DList a) -> Doc
-prettyRowOfString (Row _ xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)
-  where prettyRows :: [Doc]
-        prettyRows = (text . show) `map` DL.toList xs
diff --git a/src/HaskellWorks/Data/Shows.hs b/src/HaskellWorks/Data/Shows.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Shows.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# LANGUAGE FlexibleContexts #-}
-
-module HaskellWorks.Data.Shows where
-
-import HaskellWorks.Data.Micro
-
-showsVs :: Show a => [a] -> String -> String
-showsVs (kv:kvs) = shows kv . foldl (.) id ((\jv -> (", " ++) . shows jv) `map` kvs)
-showsVs []       = id
-
-showKvs :: Show (Micro a) => [a] -> String -> String
-showKvs (kv:kvs) = shows (Micro kv) . foldl (.) id ((\jv -> (", " ++) . shows (Micro jv)) `map` kvs)
-showKvs []       = id
diff --git a/src/HaskellWorks/Data/ToBool.hs b/src/HaskellWorks/Data/ToBool.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/ToBool.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-
-module HaskellWorks.Data.ToBool where
-
-import qualified Data.DList as DL
-
-class ToBool a where
-  toBool :: a -> Bool
-
-instance ToBool Bool where
-  toBool = id
-
-instance ToBool [a] where
-  toBool (_:_)  = True
-  toBool    _   = False
-
-instance ToBool (DL.DList a) where
-  toBool = toBool . DL.toList
