diff --git a/Data/Default.hs b/Data/Default.hs
--- a/Data/Default.hs
+++ b/Data/Default.hs
@@ -1,6 +1,6 @@
 {-
 
-Copyright (c) 2010, 2012 Lukas Mai
+Copyright (c) 2013 Lukas Mai
 
 All rights reserved.
 
@@ -36,72 +36,8 @@
     Default(..)
 ) where
 
-import Data.Int
-import Data.Word
-import Data.Monoid
-import Data.Ratio
-import Data.Complex
-import qualified Data.Set as S
-import qualified Data.Map as M
-import Data.IntMap (IntMap)
-import Data.IntSet (IntSet)
-import Data.Sequence (Seq)
-import Data.Tree (Tree(..))
-import Data.DList (DList)
-import System.Locale
-
--- | A class for types with a default value.
-class Default a where
-    -- | The default value for this type.
-    def :: a
-
-instance Default (S.Set v) where def = S.empty
-instance Default (M.Map k v) where def = M.empty
-instance Default (IntMap v) where def = mempty
-instance Default IntSet where def = mempty
-instance Default (Seq a) where def = mempty
-instance (Default a) => Default (Tree a) where def = Node def def
-
-instance Default Int where def = 0
-instance Default Int8 where def = 0
-instance Default Int16 where def = 0
-instance Default Int32 where def = 0
-instance Default Int64 where def = 0
-instance Default Word where def = 0
-instance Default Word8 where def = 0
-instance Default Word16 where def = 0
-instance Default Word32 where def = 0
-instance Default Word64 where def = 0
-instance Default Integer where def = 0
-instance Default Float where def = 0
-instance Default Double where def = 0
-instance (Integral a) => Default (Ratio a) where def = 0
-instance (Default a, RealFloat a) => Default (Complex a) where def = def :+ def
-
-instance (Default r) => Default (e -> r) where def = const def
-instance (Default a) => Default (IO a) where def = return def
-
-instance Default (Maybe a) where def = Nothing
-
-instance Default () where def = mempty
-instance Default [a] where def = mempty
-instance Default Ordering where def = mempty
-instance Default Any where def = mempty
-instance Default All where def = mempty
-instance Default (Last a) where def = mempty
-instance Default (First a) where def = mempty
-instance (Num a) => Default (Sum a) where def = mempty
-instance (Num a) => Default (Product a) where def = mempty
-instance Default (Endo a) where def = mempty
-
-instance Default (DList a) where def = mempty
-
-instance (Default a) => Default (Dual a) where def = Dual def
-instance (Default a, Default b) => Default (a, b) where def = (def, def)
-instance (Default a, Default b, Default c) => Default (a, b, c) where def = (def, def, def)
-instance (Default a, Default b, Default c, Default d) => Default (a, b, c, d) where def = (def, def, def, def)
-instance (Default a, Default b, Default c, Default d, Default e) => Default (a, b, c, d, e) where def = (def, def, def, def, def)
-instance (Default a, Default b, Default c, Default d, Default e, Default f) => Default (a, b, c, d, e, f) where def = (def, def, def, def, def, def)
-instance (Default a, Default b, Default c, Default d, Default e, Default f, Default g) => Default (a, b, c, d, e, f, g) where def = (def, def, def, def, def, def, def)
-
-instance Default TimeLocale where def = defaultTimeLocale
+import Data.Default.Class
+import Data.Default.Instances.Base       ()
+import Data.Default.Instances.Containers ()
+import Data.Default.Instances.DList      ()
+import Data.Default.Instances.OldLocale  ()
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2010, 2012 Lukas Mai
+Copyright (c) 2013 Lukas Mai
 
 All rights reserved.
 
diff --git a/data-default.cabal b/data-default.cabal
--- a/data-default.cabal
+++ b/data-default.cabal
@@ -1,5 +1,5 @@
 Name:            data-default
-Version:         0.5.1
+Version:         0.5.2
 Cabal-Version:   >= 1.6
 Category:        Data
 Synopsis:        A class for types with a default value
@@ -14,6 +14,9 @@
   location: https://github.com/mauke/data-default
 
 Library
-  Build-Depends:     base >=2 && <5, containers, dlist, old-locale
+  Build-Depends:     base >=2 && <5, data-default-class,
+                     data-default-instances-base,
+                     data-default-instances-containers,
+                     data-default-instances-dlist,
+                     data-default-instances-old-locale
   Exposed-Modules:   Data.Default
-  Ghc-Options:       -Wall -O2
