diff --git a/Clckwrks/Media/Monad.hs b/Clckwrks/Media/Monad.hs
--- a/Clckwrks/Media/Monad.hs
+++ b/Clckwrks/Media/Monad.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, TypeFamilies, TypeSynonymInstances, OverloadedStrings #-}
+{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, TypeFamilies, TypeSynonymInstances, OverloadedStrings #-}
 module Clckwrks.Media.Monad where
 
 import Clckwrks            (ClckT(..), ClckFormT, ClckState(..), ClckURL(..), mapClckT)
@@ -17,9 +17,11 @@
 import qualified Data.Map  as Map
 import Data.Maybe          (fromMaybe)
 import qualified Data.Text as T
+import qualified Data.Text.Lazy as TL
 import Happstack.Server
 import Happstack.Server.Internal.Monads (FilterFun)
-import HSP                  (Attr((:=)), Attribute(MkAttr), EmbedAsAttr(..), EmbedAsChild(..), IsName(toName), pAttrVal)
+import HSP.XML              (Attribute(MkAttr), XML(..), pAttrVal)
+import HSP.XMLGenerator     (Attr((:=)), EmbedAsAttr(..), EmbedAsChild(..), IsName(toName))
 import Magic                (Magic, MagicFlag(..), magicLoadDefault, magicOpen)
 import System.Directory     (createDirectoryIfMissing)
 import System.FilePath      ((</>))
@@ -50,15 +52,15 @@
 
 type MediaForm = ClckFormT MediaFormError MediaM
 
-instance (IsName n) => EmbedAsAttr MediaM (Attr n MediaURL) where
+instance (IsName n TL.Text) => EmbedAsAttr MediaM (Attr n MediaURL) where
         asAttr (n := u) =
             do url <- showURL u
-               asAttr $ MkAttr (toName n, pAttrVal (T.unpack url))
+               asAttr $ MkAttr (toName n, pAttrVal (TL.fromStrict url))
 
-instance (IsName n) => EmbedAsAttr MediaM (Attr n ClckURL) where
+instance (IsName n TL.Text) => EmbedAsAttr MediaM (Attr n ClckURL) where
         asAttr (n := url) =
             do showFn <- mediaClckURL <$> ask
-               asAttr $ MkAttr (toName n, pAttrVal (T.unpack $ showFn url []))
+               asAttr $ MkAttr (toName n, pAttrVal (TL.fromStrict $ showFn url []))
 
 runMediaT :: MediaConfig -> MediaT m a -> ClckT MediaURL m a
 runMediaT mc m = mapClckT f m
diff --git a/Clckwrks/Media/Page/AllMedia.hs b/Clckwrks/Media/Page/AllMedia.hs
--- a/Clckwrks/Media/Page/AllMedia.hs
+++ b/Clckwrks/Media/Page/AllMedia.hs
@@ -1,4 +1,5 @@
-{-# OPTIONS_GHC -F -pgmFtrhsx #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -F -pgmFhsx2hs #-}
 module Clckwrks.Media.Page.AllMedia where
 
 import Control.Applicative     ((<$>))
@@ -10,8 +11,10 @@
 import Clckwrks.Media.Monad    (MediaM)
 import Clckwrks.Media.URL      (MediaURL(..))
 import Data.String             (fromString)
+import Data.Text.Lazy          (Text)
 import Happstack.Server        (Response, asContentType, notFound, serveFile, toResponse)
-import HSP 
+import HSP.XML                 (XML, fromStringLit)
+import HSP.XMLGenerator
 
 allMedia :: MediaM Response
 allMedia =
diff --git a/Clckwrks/Media/Page/Upload.hs b/Clckwrks/Media/Page/Upload.hs
--- a/Clckwrks/Media/Page/Upload.hs
+++ b/Clckwrks/Media/Page/Upload.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE TypeFamilies #-}
-{-# OPTIONS_GHC -F -pgmFtrhsx #-}
+{-# LANGUAGE TypeFamilies, OverloadedStrings #-}
+{-# OPTIONS_GHC -F -pgmFhsx2hs #-}
 module Clckwrks.Media.Page.Upload where
 
 import Control.Applicative  ((<$>), (<*))
@@ -14,12 +14,14 @@
 import           Data.Map   (Map)
 import qualified Data.Map   as Map
 import Data.Text            (pack)
+import Data.Text.Lazy       (Text)
 import Happstack.Server     (ContentType, Input, Response, ServerPartT, ok, setResponseCode, toResponse)
-import HSP
+import HSP.XML              (fromStringLit)
+import HSP.XMLGenerator
 import Magic                (magicFile)
 import Text.Reform          ((++>), FormError(..))
 import Text.Reform.Happstack (reform)
-import Text.Reform.HSP.Text (inputFile, label, inputSubmit, textarea, fieldset, ol, li, form)
+import Text.Reform.HSP.Text (inputFile, labelText, inputSubmit, textarea, fieldset, ol, li, form)
 import System.Directory (copyFile)
 import System.FilePath  ((</>), addExtension, takeExtension)
 import Web.Routes (showURL)
@@ -73,4 +75,4 @@
 
 uploadForm :: MediaForm (FilePath, FilePath, ContentType)
 uploadForm =
-    label "upload file: " ++> inputFile <* inputSubmit (pack "Upload")
+    labelText "upload file: " ++> inputFile <* inputSubmit (pack "Upload")
diff --git a/Clckwrks/Media/Plugin.hs b/Clckwrks/Media/Plugin.hs
--- a/Clckwrks/Media/Plugin.hs
+++ b/Clckwrks/Media/Plugin.hs
@@ -10,6 +10,7 @@
 import Clckwrks.Media.Preview    (applyTransforms)
 import Clckwrks.Media.Route      (routeMedia)
 import Clckwrks.Media.URL        (MediaURL(..), MediaAdminURL(..))
+import Clckwrks.Monad            (ClckPluginsSt)
 import Control.Concurrent        (ThreadId, killThread)
 import Control.Monad.State       (get)
 import Data.Acid                 as Acid
@@ -18,6 +19,7 @@
 import qualified Data.Text.Lazy  as TL
 import Data.Maybe                (fromMaybe)
 import Data.Set                  (Set)
+import qualified Data.Set        as Set
 import Magic                     (Magic, MagicFlag(..), magicLoadDefault, magicOpen)
 import System.Directory          (createDirectoryIfMissing)
 import System.FilePath           ((</>))
@@ -75,11 +77,11 @@
        (Just mediaShowURL) <- getPluginRouteFn p (pluginName mediaPlugin)
        let uploadURL   = mediaShowURL (MediaAdmin Upload) []
            allMediaURL = mediaShowURL (MediaAdmin AllMedia) []
-       addAdminMenu ("Media Gallery", [("Upload",    uploadURL)
-                                      ,("All Media", allMediaURL)
+       addAdminMenu ("Media Gallery", [(Set.fromList [Administrator], "Upload",    uploadURL)
+                                      ,(Set.fromList [Administrator], "All Media", allMediaURL)
                                       ])
 
-mediaPlugin :: Plugin MediaURL Theme (ClckT ClckURL (ServerPartT IO) Response) (ClckT ClckURL IO ()) ClckwrksConfig [TL.Text -> ClckT ClckURL IO TL.Text]
+mediaPlugin :: Plugin MediaURL Theme (ClckT ClckURL (ServerPartT IO) Response) (ClckT ClckURL IO ()) ClckwrksConfig ClckPluginsSt
 mediaPlugin = Plugin
     { pluginName       = "media"
     , pluginInit       = mediaInit
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -5,9 +5,9 @@
 import Distribution.Simple
 import Distribution.Simple.Program
 
-trhsxProgram = simpleProgram "trhsx"
+hsx2hsProgram = simpleProgram "hsx2hs"
 
 main :: IO ()
 main = defaultMainWithHooks simpleUserHooks {
-         hookedPrograms = [trhsxProgram]
+         hookedPrograms = [hsx2hsProgram]
        }
diff --git a/clckwrks-plugin-media.cabal b/clckwrks-plugin-media.cabal
--- a/clckwrks-plugin-media.cabal
+++ b/clckwrks-plugin-media.cabal
@@ -1,5 +1,5 @@
 Name:                clckwrks-plugin-media
-Version:             0.3.2
+Version:             0.5.0
 Synopsis:            media plugin for clckwrks
 Homepage:            http://clckwrks.com/
 License:             BSD3
@@ -20,7 +20,7 @@
 
 Library
   Build-tools:
-    trhsx
+    hsx2hs
 
   Exposed-modules:
     Clckwrks.Media
@@ -42,23 +42,22 @@
     base                    < 5,
     acid-state             >= 0.7,
     attoparsec             == 0.10.*,
-    blaze-html             == 0.5.*,
-    clckwrks               >= 0.13 && < 0.15,
+    blaze-html             >= 0.5 && < 0.7,
+    clckwrks               >= 0.18 && < 0.19,
     containers             >= 0.4 && < 0.6,
     directory              >= 1.1 && < 1.3,
     filepath               >= 1.2 && < 1.4,
     gd                     == 3000.*,
-    happstack-server       >= 7.0 && < 7.2,
-    hsp                    == 0.7.*,
+    happstack-server       >= 7.0 && < 7.4,
+    hsp                    == 0.9.*,
     ixset                  == 1.0.*,
     magic                  == 1.0.*,
     mtl                    >= 2.0 && < 2.3,
-    reform                 == 0.1.*,
-    reform-happstack       == 0.1.*,
-    reform-hsp             >= 0.1.1 && < 0.2,
+    reform                 == 0.2.*,
+    reform-happstack       == 0.2.*,
+    reform-hsp             >= 0.2 && < 0.3,
     safecopy               >= 0.6,
     text                   == 0.11.*,
     web-plugins            >= 0.1 && < 0.3,
     web-routes             == 0.27.*,
     web-routes-th          >= 0.21
-
