diff --git a/Flickr/Monad.hs b/Flickr/Monad.hs
--- a/Flickr/Monad.hs
+++ b/Flickr/Monad.hs
@@ -157,6 +157,14 @@
 mbArg _ Nothing xs = xs
 mbArg t (Just a) xs = (t,a):xs
 
+eiArg :: String
+      -> String
+      -> Either String String
+      -> [(String,String)]
+      -> [(String,String)]
+eiArg t _ (Left x)  xs = (t,x):xs
+eiArg _ t (Right x) xs = (t,x):xs
+
 lsArg :: String -> [String] -> [(String,String)] -> [(String,String)]
 lsArg _ [] xs = xs
 lsArg t ls xs = (t,intercalate "," ls):xs
diff --git a/Flickr/Places.hs b/Flickr/Places.hs
--- a/Flickr/Places.hs
+++ b/Flickr/Places.hs
@@ -51,6 +51,28 @@
               (mbArg "accuracy" (fmap show acc) $
 	         [("lat", la),("lon", lon)])
 
+-- | Return a list of locations with public photos that are parented by a Where on Earth (WOE) or Places ID.
+getChildrenWithPhotosPublic :: Either PlaceID WhereOnEarthID
+                            -> FM (PlaceQuery, [Place])
+getChildrenWithPhotosPublic pw = 
+  flickTranslate toPlaces $
+    flickrCall "flickr.places.getChildrenWithPhotosPublic"
+               (eiArg "place_id" "woe_id" pw [])
+
+-- | Lookup information about a place, by its flickr.com/places URL.
+getInfoByUrl :: URLString -> FM LocationPlace
+getInfoByUrl url = 
+  flickTranslate toLocationPlace $
+    flickrCall "flickr.places.getInfoByUrl"
+               [ ("url", url) ]
+
+-- | Get informations about a place.
+getInfo :: Either PlaceID WhereOnEarthID -> FM LocationPlace
+getInfo pw = 
+  flickTranslate toLocationPlace $
+    flickrCall "flickr.places.getInfo"
+               (eiArg "place_id" "woe_id" pw [])
+
 -- | Return a list of the top 100 unique places clustered by a given placetype for a user. 
 placesForUser :: PlaceType
               -> Maybe WhereOnEarthID
diff --git a/Flickr/Test.hs b/Flickr/Test.hs
new file mode 100644
--- /dev/null
+++ b/Flickr/Test.hs
@@ -0,0 +1,48 @@
+--------------------------------------------------------------------
+-- |
+-- Module      : Flickr.Test
+-- Description : flickr.test - testing auth and method calls.
+-- Copyright   : (c) Sigbjorn Finne, 2008
+-- License     : BSD3
+--
+-- Maintainer  : Sigbjorn Finne <sof@forkIO.com>
+-- Stability   : provisional
+-- Portability : portable
+--
+-- flickr.test API, kicking the tires for method calls and auth
+-- of these.
+--------------------------------------------------------------------
+module Flickr.Test where
+
+import Flickr.Monad
+import Flickr.Types
+import Flickr.Types.Import
+import Flickr.Utils
+
+import Text.XML.Light
+import Text.XML.Light.Proc
+
+-- | A testing method which echo's all parameters back in the response.
+echo :: [(String,String)] -> FM [(String,String)]
+echo args = 
+  flickTranslate toRes $
+    flickrCall "flickr.test.echo" args
+ where
+  toRes s = parseDoc eltRes s
+  
+  eltRes e = do
+    let es = children e
+    return (map (\ x -> (qName (elName x), strContent x)) es)
+
+              
+-- | A testing method which checks if the caller is logged in then returns their username.
+login :: FM User
+login = withReadPerm $ 
+  flickTranslate toUser $
+    flickrCall "flickr.test.login" []
+
+-- | Null test
+nullTest :: FM ()
+nullTest = withReadPerm $ postMethod $
+  flickCall_ "flickr.test.null" []
+
diff --git a/Util/Fetch.hs b/Util/Fetch.hs
--- a/Util/Fetch.hs
+++ b/Util/Fetch.hs
@@ -55,7 +55,29 @@
 -}
 
 readUserContentsURL :: User -> URLString -> IO String
-readUserContentsURL _ u = readContentsURL u
+readUserContentsURL usr us = do -- readContentsURL u
+  req <- 
+    case parseURI us of
+      Nothing -> fail ("ill-formed URL: " ++ us)
+      Just ur -> return (defaultGETRequest ur)
+    -- don't like doing this, but HTTP is awfully chatty re: cookie handling..
+  let nullHandler _ = return ()
+  (u, resp) <- browse $ do 
+                  setOutHandler nullHandler
+                  setAllowBasicAuth True
+		  setAuthorityGen (\ _ _ -> return (Just (userName usr,userPass usr)))
+{-
+                  addAuthority AuthBasic{ auUsername = userName usr
+                                        , auPassword = userPass usr
+                                        , auRealm    = ""
+                                        , auSite     = nullURI{uriPath="/"}
+                                        }
+-}
+                  request req
+  case rspCode resp of
+    (2,_,_) -> return (rspBody resp)
+    _ -> fail ("Failed reading URL " ++ show u ++ " code: " ++ show (rspCode resp))
+
 
 postContentsURL :: URLString -> [(String,String)] -> String -> IO String
 postContentsURL u hdrs body = do
diff --git a/flickr.cabal b/flickr.cabal
--- a/flickr.cabal
+++ b/flickr.cabal
@@ -1,5 +1,5 @@
 name: flickr
-version: 0.2.1
+version: 0.2.2
 Synopsis: Haskell binding to the Flickr API
 Description:
    The flickr API binding lets you access flickr.com's
@@ -49,6 +49,7 @@
                   Flickr.Photosets.Comments,
                   Flickr.Places,
                   Flickr.Tags,
+                  Flickr.Test,
                   Flickr.URLs,
                   Flickr.Utils,
                   Util.Fetch,
