diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,5 +7,5 @@
 
 ## License
 
-Copyright 2014 Greg V <greg@unrelenting.technology>  
+Copyright 2014-2015 Greg V <greg@unrelenting.technology>  
 Available under the ISC license, see the `COPYING` file
diff --git a/library/Data/Microformats2.hs b/library/Data/Microformats2.hs
--- a/library/Data/Microformats2.hs
+++ b/library/Data/Microformats2.hs
@@ -16,6 +16,7 @@
 import safe      Data.Typeable (Typeable)
 import safe      Data.Text.Lazy (Text)
 import safe      Data.Data (Data)
+import           Data.Default
 import           Data.Time (UTCTime)
 import           Text.Pandoc.Definition (Pandoc)
 
@@ -45,12 +46,11 @@
   , geoAltitude    :: Maybe Double }
   deriving (Eq, Show, Data, Typeable)
 
--- | An empty Geo.
-defaultGeo :: Geo
-defaultGeo =  Geo
-  { geoLatitude    = Nothing
-  , geoLongitude   = Nothing
-  , geoAltitude    = Nothing }
+instance Default Geo where
+  def = Geo
+    { geoLatitude    = Nothing
+    , geoLongitude   = Nothing
+    , geoAltitude    = Nothing }
 
 -- | An Adr type, based on h-adr <http://microformats.org/wiki/h-adr>
 data Adr = Adr
@@ -65,18 +65,17 @@
   , adrGeo              :: Embedded Geo }
   deriving (Eq, Show, Data, Typeable)
 
--- | An empty Adr.
-defaultAdr :: Adr
-defaultAdr =  Adr
-  { adrStreetAddress    = Nothing
-  , adrExtendedAddress  = Nothing
-  , adrPostOfficeBox    = Nothing
-  , adrLocality         = Nothing
-  , adrRegion           = Nothing
-  , adrPostalCode       = Nothing
-  , adrCountryName      = Nothing
-  , adrLabel            = Nothing
-  , adrGeo              = Nowhere }
+instance Default Adr where
+  def = Adr
+    { adrStreetAddress    = Nothing
+    , adrExtendedAddress  = Nothing
+    , adrPostOfficeBox    = Nothing
+    , adrLocality         = Nothing
+    , adrRegion           = Nothing
+    , adrPostalCode       = Nothing
+    , adrCountryName      = Nothing
+    , adrLabel            = Nothing
+    , adrGeo              = Nowhere }
 
 -- | A Card type, based on h-card <http://microformats.org/wiki/h-card>
 data Card = Card
@@ -108,35 +107,34 @@
   , cardAnniversary       :: Maybe UTCTime }
   deriving (Eq, Show, Data, Typeable)
 
--- | An empty Card.
-defaultCard :: Card
-defaultCard =  Card
-  { cardName              = Nothing
-  , cardHonorificPrefix   = Nothing
-  , cardGivenName         = Nothing
-  , cardAdditionalName    = Nothing
-  , cardFamilyName        = Nothing
-  , cardSortString        = Nothing
-  , cardHonorificSuffix   = Nothing
-  , cardNickname          = Nothing
-  , cardEmail             = Nothing
-  , cardLogo              = Nothing
-  , cardPhoto             = Nothing
-  , cardUrl               = Nothing
-  , cardUid               = Nothing
-  , cardCategory          = []
-  , cardAdr               = Nowhere
-  , cardTel               = Nothing
-  , cardNote              = Nothing
-  , cardBday              = Nothing
-  , cardKey               = Nothing
-  , cardOrg               = Nowhere
-  , cardJobTitle          = Nothing
-  , cardRole              = Nothing
-  , cardImpp              = []
-  , cardSex               = Nothing
-  , cardGenderIdentity    = Nothing
-  , cardAnniversary       = Nothing }
+instance Default Card where
+  def = Card
+    { cardName              = Nothing
+    , cardHonorificPrefix   = Nothing
+    , cardGivenName         = Nothing
+    , cardAdditionalName    = Nothing
+    , cardFamilyName        = Nothing
+    , cardSortString        = Nothing
+    , cardHonorificSuffix   = Nothing
+    , cardNickname          = Nothing
+    , cardEmail             = Nothing
+    , cardLogo              = Nothing
+    , cardPhoto             = Nothing
+    , cardUrl               = Nothing
+    , cardUid               = Nothing
+    , cardCategory          = []
+    , cardAdr               = Nowhere
+    , cardTel               = Nothing
+    , cardNote              = Nothing
+    , cardBday              = Nothing
+    , cardKey               = Nothing
+    , cardOrg               = Nowhere
+    , cardJobTitle          = Nothing
+    , cardRole              = Nothing
+    , cardImpp              = []
+    , cardSex               = Nothing
+    , cardGenderIdentity    = Nothing
+    , cardAnniversary       = Nothing }
 
 -- | A Cite type, based on h-cite <http://microformats.org/wiki/h-cite>
 data Cite = Cite
@@ -150,17 +148,16 @@
   , citeContent     :: Maybe Text }
   deriving (Eq, Show, Data, Typeable)
 
--- | An empty Cite.
-defaultCite :: Cite
-defaultCite =  Cite
-  { citeName        = Nothing
-  , citePublished   = Nothing
-  , citeAuthor      = Nowhere
-  , citeUrl         = Nothing
-  , citeUid         = Nothing
-  , citePublication = Nothing
-  , citeAccessed    = Nothing
-  , citeContent     = Nothing }
+instance Default Cite where
+  def = Cite
+    { citeName        = Nothing
+    , citePublished   = Nothing
+    , citeAuthor      = Nowhere
+    , citeUrl         = Nothing
+    , citeUid         = Nothing
+    , citePublication = Nothing
+    , citeAccessed    = Nothing
+    , citeContent     = Nothing }
 
 -- | A location reference.
 -- Left means a Card is used, which is often used for checkins.
@@ -192,21 +189,20 @@
   , entryRepostOf       :: Maybe EntryReference }
   deriving (Eq, Show, Data, Typeable)
 
--- | An empty Entry.
-defaultEntry :: Entry
-defaultEntry =  Entry
-  { entryName           = Nothing
-  , entrySummary        = Nothing
-  , entryContent        = Nothing
-  , entryPublished      = Nothing
-  , entryUpdated        = Nothing
-  , entryAuthor         = Nowhere
-  , entryCategory       = []
-  , entryUrl            = Nothing
-  , entryUid            = Nothing
-  , entryLocation       = Nothing
-  , entryComments       = []
-  , entrySyndication    = []
-  , entryInReplyTo      = Nothing
-  , entryLikeOf         = Nothing
-  , entryRepostOf       = Nothing }
+instance Default Entry where
+  def = Entry
+    { entryName           = Nothing
+    , entrySummary        = Nothing
+    , entryContent        = Nothing
+    , entryPublished      = Nothing
+    , entryUpdated        = Nothing
+    , entryAuthor         = Nowhere
+    , entryCategory       = []
+    , entryUrl            = Nothing
+    , entryUid            = Nothing
+    , entryLocation       = Nothing
+    , entryComments       = []
+    , entrySyndication    = []
+    , entryInReplyTo      = Nothing
+    , entryLikeOf         = Nothing
+    , entryRepostOf       = Nothing }
diff --git a/library/Data/Microformats2/Setters.hs b/library/Data/Microformats2/Setters.hs
new file mode 100644
--- /dev/null
+++ b/library/Data/Microformats2/Setters.hs
@@ -0,0 +1,17 @@
+{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-missing-signatures #-}
+{-# LANGUAGE TemplateHaskell #-}
+
+-- | TH-derived Setters instances for Data.Microformats2.
+module Data.Microformats2.Setters (
+  module Data.Microformats2.Setters
+) where
+
+import           Data.Microformats2
+import           Data.Setters
+
+$(declareSetters ''Embedded)
+$(declareSetters ''Geo)
+$(declareSetters ''Adr)
+$(declareSetters ''Card)
+$(declareSetters ''Cite)
+$(declareSetters ''Entry)
diff --git a/microformats2-types.cabal b/microformats2-types.cabal
--- a/microformats2-types.cabal
+++ b/microformats2-types.cabal
@@ -1,10 +1,10 @@
 name:            microformats2-types
-version:         0.2.1
-synopsis:        Microformats 2 types for Haskell.
+version:         0.3.0
+synopsis:        Microformats 2 types (with Aeson instances)
 category:        Web
 homepage:        https://github.com/myfreeweb/microformats2-types
 author:          Greg V
-copyright:       2014 Greg V <greg@unrelenting.technology>
+copyright:       2014-2015 Greg V <greg@unrelenting.technology>
 maintainer:      greg@unrelenting.technology
 license:         OtherLicense
 license-file:    COPYING
@@ -13,8 +13,7 @@
 extra-source-files:
     README.md
 tested-with:
-    GHC == 7.6.3
-  , GHC == 7.8.2
+    GHC == 7.8.2
 
 source-repository head
     type: git
@@ -28,9 +27,12 @@
       , either
       , aeson
       , pandoc-types
+      , data-default
+      , setters
     default-language: Haskell2010
     exposed-modules:
         Data.Microformats2
         Data.Microformats2.Aeson
+        Data.Microformats2.Setters
     ghc-options: -Wall
     hs-source-dirs: library
