diff --git a/Example.hs b/Example.hs
deleted file mode 100644
--- a/Example.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-import Geo.OSM
-
--- Return all nodes tagged as camp-sites (tourism=camp_site) in the give OSM file.
-campSites :: FilePath -> IO [Node]
-campSites f = let p = filter ("tourism" `hasTagValue` "camp_site") . (nodes =<<)
-              in fmap p (runX (xunpickleDocument (xpickle :: PU OSM) [(a_remove_whitespace, v_1)] f))
-
-
-
-{-
-
-
-*Main> campSites "MountBarney.osm"
-[<node lat="-28.309999" lon="152.460006" id="316587114" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:00:06Z"><tag k="name" v="Koreelah Creek Campground - Koreelah NP"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2131914" lon="152.4264518" id="596132847" changeset="3406101" user="Tony Morris" uid="66376" timestamp="2009-12-19T11:19:14Z"><tag k="name" v="Emu Creek"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.389999" lon="152.61" id="316587113" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:00:05Z"><tag k="name" v="Woodenbong Campground"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2819309" lon="152.690921" id="440615858" changeset="3405819" user="Tony Morris" uid="66376" timestamp="2009-12-19T10:37:58Z"><tag k="name" v="Rum Jungle"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2812388" lon="152.6916212" id="596096271" changeset="3405991" user="Tony Morris" uid="66376" timestamp="2009-12-19T11:02:19Z"><tag k="name" v="Old Hut Site"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2961173" lon="152.7150912" id="596098699" changeset="3405772" user="Tony Morris" uid="66376" timestamp="2009-12-19T10:31:22Z"><tag k="name" v="Site 10"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.299066" lon="152.7198659" id="596098700" changeset="3405772" user="Tony Morris" uid="66376" timestamp="2009-12-19T10:31:22Z"><tag k="name" v="Site 9"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2056648" lon="152.6679486" id="442564691" changeset="1844269" user="Tony Morris" uid="66376" timestamp="2009-07-16T12:44:51Z"><tag k="tourism" v="camp_site"/></node>,<node lat="-28.219999" lon="152.86" id="316607159" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:57:12Z"><tag k="name" v="EM Tilley Park"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.209999" lon="152.770004" id="316607169" changeset="1824310" user="Tony Morris" uid="66376" timestamp="2009-07-14T08:21:51Z"><tag k="name" v="Flanagan Reserve"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2" lon="152.779998" id="316607407" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:57:28Z"><tag k="name" v="Bigriggen Park Reserve"/><tag k="tourism" v="camp_site"/></node>]
-
-
--}
diff --git a/Geo/OSM/Bound.hs b/Geo/OSM/Bound.hs
--- a/Geo/OSM/Bound.hs
+++ b/Geo/OSM/Bound.hs
@@ -5,7 +5,7 @@
                     ) where
 
 import Text.XML.HXT.Arrow
-import Geo.OSM.Util
+import Text.XML.HXT.Extras
 import Geo.OSM.Accessor.Box
 import Geo.OSM.Accessor.Origin
 
diff --git a/Geo/OSM/Bounds.hs b/Geo/OSM/Bounds.hs
--- a/Geo/OSM/Bounds.hs
+++ b/Geo/OSM/Bounds.hs
@@ -5,7 +5,7 @@
                      ) where
 
 import Text.XML.HXT.Arrow
-import Geo.OSM.Util
+import Text.XML.HXT.Extras
 import Geo.OSM.Accessor.Minlat
 import Geo.OSM.Accessor.Maxlat
 import Geo.OSM.Accessor.Minlon
diff --git a/Geo/OSM/Member.hs b/Geo/OSM/Member.hs
--- a/Geo/OSM/Member.hs
+++ b/Geo/OSM/Member.hs
@@ -5,8 +5,8 @@
                      ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Geo.OSM.MemberType
-import Geo.OSM.Util
 import Geo.OSM.Accessor.Mtype
 import Geo.OSM.Accessor.Ref
 import Geo.OSM.Accessor.Role
diff --git a/Geo/OSM/MemberType.hs b/Geo/OSM/MemberType.hs
--- a/Geo/OSM/MemberType.hs
+++ b/Geo/OSM/MemberType.hs
@@ -8,9 +8,9 @@
                          ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Control.Applicative
 import Data.Char
-import Geo.OSM.Util
 
 -- | The @type@ attribute of a @member@ element of a OSM file.
 data MemberType = WayType | NodeType | RelationType
diff --git a/Geo/OSM/NWRCommon.hs b/Geo/OSM/NWRCommon.hs
--- a/Geo/OSM/NWRCommon.hs
+++ b/Geo/OSM/NWRCommon.hs
@@ -5,10 +5,10 @@
                         ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Control.Applicative
 import Data.Char
 import Geo.OSM.Tag
-import Geo.OSM.Util
 import Geo.OSM.Accessor.Id
 import Geo.OSM.Accessor.Tags
 import Geo.OSM.Accessor.Changeset
diff --git a/Geo/OSM/Nd.hs b/Geo/OSM/Nd.hs
--- a/Geo/OSM/Nd.hs
+++ b/Geo/OSM/Nd.hs
@@ -5,7 +5,7 @@
                  ) where
 
 import Text.XML.HXT.Arrow
-import Geo.OSM.Util
+import Text.XML.HXT.Extras
 import Geo.OSM.Accessor.Ref
 
 -- | The @nd@ element of a OSM file.
diff --git a/Geo/OSM/Node.hs b/Geo/OSM/Node.hs
--- a/Geo/OSM/Node.hs
+++ b/Geo/OSM/Node.hs
@@ -5,8 +5,8 @@
                    ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Geo.OSM.NWRCommon
-import Geo.OSM.Util
 import Geo.OSM.Tag
 import Geo.OSM.Accessor.Id
 import Geo.OSM.Accessor.Tags
diff --git a/Geo/OSM/NodeWayRelation.hs b/Geo/OSM/NodeWayRelation.hs
--- a/Geo/OSM/NodeWayRelation.hs
+++ b/Geo/OSM/NodeWayRelation.hs
@@ -11,10 +11,10 @@
                               ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Geo.OSM.Node
 import Geo.OSM.Way
 import Geo.OSM.Relation
-import Geo.OSM.Util
 
 -- | The @node@, @way@, or @relation@ element of a OSM file.
 data NodeWayRelation = N Node | W Way | R Relation
diff --git a/Geo/OSM/OSM.hs b/Geo/OSM/OSM.hs
--- a/Geo/OSM/OSM.hs
+++ b/Geo/OSM/OSM.hs
@@ -5,10 +5,10 @@
                   ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Geo.OSM.NodeWayRelation
 import Geo.OSM.Bound
 import Geo.OSM.Bounds
-import Geo.OSM.Util
 import Geo.OSM.Accessor.Version
 import Geo.OSM.Accessor.Generator
 import Geo.OSM.Accessor.BoundOrs
diff --git a/Geo/OSM/Relation.hs b/Geo/OSM/Relation.hs
--- a/Geo/OSM/Relation.hs
+++ b/Geo/OSM/Relation.hs
@@ -5,9 +5,9 @@
                        ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Geo.OSM.Member
 import Geo.OSM.NWRCommon
-import Geo.OSM.Util
 import Geo.OSM.Tag
 import Geo.OSM.Accessor.Id
 import Geo.OSM.Accessor.Tags
diff --git a/Geo/OSM/Tag.hs b/Geo/OSM/Tag.hs
--- a/Geo/OSM/Tag.hs
+++ b/Geo/OSM/Tag.hs
@@ -5,7 +5,7 @@
                   ) where
 
 import Text.XML.HXT.Arrow
-import Geo.OSM.Util
+import Text.XML.HXT.Extras
 import Geo.OSM.Accessor.K
 import Geo.OSM.Accessor.V
 
diff --git a/Geo/OSM/Util.hs b/Geo/OSM/Util.hs
deleted file mode 100644
--- a/Geo/OSM/Util.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- | Utilities for parsing OSM files.
-module Geo.OSM.Util(
-                     showPickled
-                   ) where
-
-import Text.XML.HXT.Arrow
-
--- | Pickles a value then writes the document to a string.
-showPickled :: (XmlPickler a) => Attributes -> a -> String
-showPickled a = concat . (pickleDoc xpickle >>> runLA (writeDocumentToString a))
diff --git a/Geo/OSM/Way.hs b/Geo/OSM/Way.hs
--- a/Geo/OSM/Way.hs
+++ b/Geo/OSM/Way.hs
@@ -5,9 +5,9 @@
                   ) where
 
 import Text.XML.HXT.Arrow
+import Text.XML.HXT.Extras
 import Geo.OSM.Nd
 import Geo.OSM.NWRCommon
-import Geo.OSM.Util
 import Geo.OSM.Tag
 import Geo.OSM.Accessor.Id
 import Geo.OSM.Accessor.Tags
diff --git a/MountBarney.osm b/MountBarney.osm
deleted file mode 100644
# file too large to diff: MountBarney.osm
diff --git a/OSM.cabal b/OSM.cabal
--- a/OSM.cabal
+++ b/OSM.cabal
@@ -1,26 +1,27 @@
 Name:                OSM
-Version:             0.1
+Version:             0.2
 License:             BSD3
 License-File:        LICENSE
 Synopsis:            Parse OpenStreetMap files
 Description:         Parse OpenStreetMap http:\/\/osm.org/ files using HXT into data structures.
                      The Geo.OSM module is the core module that exports all others.
+Homepage:            http://code.google.com/p/geo-osm/
 Category:            Utils
 Author:              Tony Morris
-Maintainer:          tmorris@tmorris.net
+Maintainer:          code@tmorris.net
 Copyright:           2009 Tony Morris
 build-type:          Simple
 cabal-version:       >= 1.2
-extra-source-files:  Example.hs, MountBarney.osm
+extra-source-files:  etc/Example.hs, etc/MountBarney.osm
 
 Flag small_base
   Description:     Choose the new, split-up base package.
 
 Library
   if flag(small_base)
-    Build-Depends: base < 4 && >= 3, hxt, containers
+    Build-Depends: base < 4 && >= 3, hxt, hxt-extras, containers
   else
-    Build-Depends: base < 3, hxt, containers
+    Build-Depends: base < 3, hxt, hxt-extras, containers
 
   GHC-Options:    -Wall
   Exposed-Modules: Geo.OSM
@@ -36,7 +37,6 @@
                    Geo.OSM.Bound
                    Geo.OSM.NodeWayRelation
                    Geo.OSM.OSM
-                   Geo.OSM.Util
                    Geo.OSM.Accessor.K
                    Geo.OSM.Accessor.V
                    Geo.OSM.Accessor.Ref
diff --git a/etc/Example.hs b/etc/Example.hs
new file mode 100644
--- /dev/null
+++ b/etc/Example.hs
@@ -0,0 +1,17 @@
+import Geo.OSM
+
+-- Return all nodes tagged as camp-sites (tourism=camp_site) in the given OSM file.
+campSites :: FilePath -> IO [Node]
+campSites f = let p = filter ("tourism" `hasTagValue` "camp_site") . (nodes =<<)
+              in fmap p (runX (xunpickleDocument (xpickle :: PU OSM) [(a_remove_whitespace, v_1)] f))
+
+
+
+{-
+
+
+*Main> campSites "MountBarney.osm"
+[<node lat="-28.309999" lon="152.460006" id="316587114" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:00:06Z"><tag k="name" v="Koreelah Creek Campground - Koreelah NP"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2131914" lon="152.4264518" id="596132847" changeset="3406101" user="Tony Morris" uid="66376" timestamp="2009-12-19T11:19:14Z"><tag k="name" v="Emu Creek"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.389999" lon="152.61" id="316587113" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:00:05Z"><tag k="name" v="Woodenbong Campground"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2819309" lon="152.690921" id="440615858" changeset="3405819" user="Tony Morris" uid="66376" timestamp="2009-12-19T10:37:58Z"><tag k="name" v="Rum Jungle"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2812388" lon="152.6916212" id="596096271" changeset="3405991" user="Tony Morris" uid="66376" timestamp="2009-12-19T11:02:19Z"><tag k="name" v="Old Hut Site"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2961173" lon="152.7150912" id="596098699" changeset="3405772" user="Tony Morris" uid="66376" timestamp="2009-12-19T10:31:22Z"><tag k="name" v="Site 10"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.299066" lon="152.7198659" id="596098700" changeset="3405772" user="Tony Morris" uid="66376" timestamp="2009-12-19T10:31:22Z"><tag k="name" v="Site 9"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2056648" lon="152.6679486" id="442564691" changeset="1844269" user="Tony Morris" uid="66376" timestamp="2009-07-16T12:44:51Z"><tag k="tourism" v="camp_site"/></node>,<node lat="-28.219999" lon="152.86" id="316607159" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:57:12Z"><tag k="name" v="EM Tilley Park"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.209999" lon="152.770004" id="316607169" changeset="1824310" user="Tony Morris" uid="66376" timestamp="2009-07-14T08:21:51Z"><tag k="name" v="Flanagan Reserve"/><tag k="tourism" v="camp_site"/></node>,<node lat="-28.2" lon="152.779998" id="316607407" changeset="108027" user="Spindoc Bob" uid="11037" timestamp="2008-12-04T11:57:28Z"><tag k="name" v="Bigriggen Park Reserve"/><tag k="tourism" v="camp_site"/></node>]
+
+
+-}
diff --git a/etc/MountBarney.osm b/etc/MountBarney.osm
new file mode 100644
# file too large to diff: etc/MountBarney.osm
