diff --git a/HandsomeSoup.cabal b/HandsomeSoup.cabal
--- a/HandsomeSoup.cabal
+++ b/HandsomeSoup.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.1
+Version:             0.2
 
 -- A short (one-line) description of the package.
 Synopsis:            Work with HTML more easily in HXT
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -1,6 +1,6 @@
 # HandsomeSoup
 
-Current Status: very very pre-alpha. Usable but buggy.
+Current Status: Usable but untested (tests coming soon! See todo list).
 
 HandsomeSoup is the library I wish I had when I started parsing HTML in Haskell.
 
@@ -8,6 +8,10 @@
 
 Most importantly, it adds CSS selectors to HXT. The goal of HandsomeSoup is to be a complete CSS2 parser for HXT (it is very close to this right now).
 
+## Install
+
+    cabal install HandsomeSoup
+
 ## Example
 
 [Nokogiri](http://nokogiri.org/), the HTML parser for Ruby, has an example showing how to scrape Google search results. This is easy in HandsomeSoup:
@@ -46,3 +50,13 @@
 
     doc <<< css "img" ! "src"
     doc <<< css "a" ! "href"
+
+## Docs
+
+Find [Haddock docs on Hackage](http://hackage.haskell.org/package/HandsomeSoup).
+
+I also wrote [The Complete Guide To Parsing HXT With Haskell](http://adit.io/posts/2012-04-14-working_with_HTML_in_haskell.html).
+
+## Credits
+
+Made by [Adit](http://adit.io).
diff --git a/Text/HandsomeSoup.hs b/Text/HandsomeSoup.hs
--- a/Text/HandsomeSoup.hs
+++ b/Text/HandsomeSoup.hs
@@ -59,12 +59,15 @@
 _fromSelectors (s:selectors) = foldl (\acc selector -> make acc selector) (make this s) selectors
   where 
         make acc sel@(Selector name attrs pseudo)
-          | name == "*" = acc >>> (multi this >>> makeAttrs attrs)
-          | otherwise = acc >>> (multi $ hasName name >>> makeAttrs attrs)
-        make acc Space = acc >>> multi getChildren
-        make acc ChildOf = acc >>> getChildren
+          | name == "*" = acc >>> ((multi this >>> makeAttrs attrs) >>. makePseudos pseudo)
+          | otherwise = acc >>> ((multi $ hasName name >>> makeAttrs attrs) >>. makePseudos pseudo)
+        make acc Space = acc >>> getChildren
+        make acc ChildOf = acc >>> getChildren >>> processChildren none
         makeAttrs (a:attrs) = foldl (\acc attr -> acc >>> makeAttr attr) (makeAttr a) attrs
         makeAttrs [] = this
         makeAttr (name, "") = hasAttr name
         makeAttr (name, '~':value) = hasAttrValue name (elem value . words)
         makeAttr (name, value) = hasAttrValue name (==value)
+        makePseudos (p:pseudos) = foldl (\acc pseudo -> acc >>> makePseudo pseudo) (makePseudo p) pseudos
+        makePseudos [] = id
+        makePseudo "first-child" = take 1
