diff --git a/markup.cabal b/markup.cabal
--- a/markup.cabal
+++ b/markup.cabal
@@ -1,5 +1,5 @@
 Name:                   markup
-Version:                0.0.6.1
+Version:                0.0.7
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                MIT
diff --git a/src/Data/Markup.hs b/src/Data/Markup.hs
--- a/src/Data/Markup.hs
+++ b/src/Data/Markup.hs
@@ -1,8 +1,7 @@
 module Data.Markup
-    ( module Data.Markup.Types
-    , module Data.Markup.Class
-    , module Data.Markup.Library ) where
+    ( module X
+    ) where
 
-import Data.Markup.Types
-import Data.Markup.Class
-import Data.Markup.Library
+import Data.Markup.Types as X
+import Data.Markup.Class as X
+import Data.Markup.Library as X
diff --git a/src/Data/Markup/Class.hs b/src/Data/Markup/Class.hs
--- a/src/Data/Markup/Class.hs
+++ b/src/Data/Markup/Class.hs
@@ -1,19 +1,14 @@
+{-# LANGUAGE AllowAmbiguousTypes   #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE KindSignatures        #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE KindSignatures #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE AllowAmbiguousTypes #-}
+{-# LANGUAGE UndecidableInstances  #-}
 
 module Data.Markup.Class where
 
-import Data.Markup.Types
-
-import Lucid
-import Data.Monoid
-import qualified Data.Text as T
+import           Data.Markup.Types
 
-import Data.Functor.Identity
 
 -- | Overload assets and their markup library, over some deployment
 class Deploy symbol input markup (m :: * -> *) where
diff --git a/src/Data/Markup/Library.hs b/src/Data/Markup/Library.hs
--- a/src/Data/Markup/Library.hs
+++ b/src/Data/Markup/Library.hs
@@ -1,28 +1,27 @@
+{-# LANGUAGE ExtendedDefaultRules  #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE OverloadedStrings     #-}
 
 module Data.Markup.Library where
 
-import Data.Markup.Class
-import Data.Markup.Types
+import           Data.Markup.Class
+import           Data.Markup.Types
 
-import UrlPath
+import           UrlPath
 
-import qualified Lucid as L
-import qualified Lucid.Base as LBase
+import qualified Lucid                       as L
+import qualified Lucid.Base                  as LBase
 
-import qualified Text.Blaze.Html5 as H
+import qualified Text.Blaze.Html5            as H
 import qualified Text.Blaze.Html5.Attributes as A
-import qualified Text.Blaze.Internal as HI
+import qualified Text.Blaze.Internal         as HI
 
-import qualified Data.Text as T
-import qualified Data.Text.Lazy as LT
+import qualified Data.Text                   as T
+import qualified Data.Text.Lazy              as LT
 
-import Data.Monoid
-import Control.Monad.Trans
+import           Control.Monad.Trans
 
 -- | The Image symbol
 data Image = Image deriving (Show, Eq)
@@ -44,16 +43,18 @@
   deploy Image i = return $
     L.img_ [L.src_ i]
 
-instance Monad m =>
+instance ( Monad m
+         , Url T.Text m ) =>
            Deploy Image T.Text (LBase.HtmlT m ()) LocalMarkupM where
-  deploy Image i = return $
-    L.img_ [L.src_ i]
+  deploy Image i = return $ do
+    link <- lift $ plainUrl i
+    L.img_ [L.src_ link]
 
 instance Url T.Text m =>
            Deploy Image (UrlString T.Text) (LBase.HtmlT m ()) LocalMarkupM where
   deploy Image i = return $ do
-    url <- lift $ url i
-    L.img_ [L.src_ url]
+    link <- lift $ url i
+    L.img_ [L.src_ link]
 
 instance ( Monad m
          , Monad m' ) =>
@@ -62,17 +63,19 @@
     L.img_ [L.src_ i]
 
 instance ( Monad m
-         , Monad m' ) =>
+         , Monad m'
+         , Url T.Text m ) =>
              Deploy Image T.Text (LBase.HtmlT m ()) (LocalMarkupT m') where
-  deploy Image i = return $
-    L.img_ [L.src_ i]
+  deploy Image i = return $ do
+    link <- lift $ plainUrl i
+    L.img_ [L.src_ link]
 
 instance ( Url T.Text m
          , Monad m' ) =>
              Deploy Image (UrlString T.Text) (LBase.HtmlT m ()) (LocalMarkupT m') where
   deploy Image i = return $ do
-    url <- lift $ url i
-    L.img_ [L.src_ url]
+    link <- lift $ url i
+    L.img_ [L.src_ link]
 
 -- JS instances
 
@@ -94,9 +97,15 @@
 instance Url T.Text m =>
            Deploy JavaScript (UrlString T.Text) (LBase.HtmlT m ()) LocalMarkupM where
   deploy JavaScript i = return $ do
-    url <- lift $ url i
-    L.script_ [L.src_ url] ("" :: T.Text)
+    link <- lift $ url i
+    L.script_ [L.src_ link] ("" :: T.Text)
 
+instance Url T.Text m =>
+           Deploy JavaScript T.Text (LBase.HtmlT m ()) LocalMarkupM where
+  deploy JavaScript i = return $ do
+    link <- lift $ plainUrl i
+    L.script_ [L.src_ link] ("" :: T.Text)
+
 instance ( Monad m
          , Monad m' ) =>
              Deploy JavaScript T.Text (LBase.HtmlT m ()) (InlineMarkupT m') where
@@ -117,6 +126,13 @@
 
 instance ( Url T.Text m
          , Monad m' ) =>
+             Deploy JavaScript T.Text (LBase.HtmlT m ()) (LocalMarkupT m') where
+  deploy JavaScript i = return $ do
+    link <- lift $ plainUrl i
+    L.script_ [L.src_ link] ("" :: T.Text)
+
+instance ( Url T.Text m
+         , Monad m' ) =>
              Deploy JavaScript (UrlString T.Text) (LBase.HtmlT m ()) (LocalMarkupT m') where
   deploy JavaScript i = return $ do
     link <- lift $ url i
@@ -143,6 +159,15 @@
               ]
 
 instance Url T.Text m =>
+  Deploy Css T.Text (LBase.HtmlT m ()) LocalMarkupM where
+    deploy Css i = return $ do
+      link <- lift $ plainUrl i
+      L.link_ [ L.rel_ "stylesheet"
+              , L.type_ "text/css"
+              , L.href_ link
+              ]
+
+instance Url T.Text m =>
   Deploy Css (UrlString T.Text) (LBase.HtmlT m ()) LocalMarkupM where
     deploy Css i = return $ do
       link <- lift $ url i
@@ -171,6 +196,16 @@
                          , L.type_ "text/css"
                          , L.href_ i
                          ]
+
+instance ( Url T.Text m
+         , Monad m' ) =>
+             Deploy Css T.Text (LBase.HtmlT m ()) (LocalMarkupT m') where
+               deploy Css i = return $ do
+                 link <- lift $ plainUrl i
+                 L.link_ [ L.rel_ "stylesheet"
+                         , L.type_ "text/css"
+                         , L.href_ link
+                       ]
 
 instance ( Url T.Text m
          , Monad m' ) =>
diff --git a/src/Data/Markup/Types.hs b/src/Data/Markup/Types.hs
--- a/src/Data/Markup/Types.hs
+++ b/src/Data/Markup/Types.hs
@@ -1,17 +1,15 @@
+{-# LANGUAGE DeriveFunctor              #-}
+{-# LANGUAGE FlexibleContexts           #-}
+{-# LANGUAGE FlexibleInstances          #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE DeriveFunctor #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE MultiParamTypeClasses      #-}
+{-# LANGUAGE StandaloneDeriving         #-}
 
 module Data.Markup.Types where
 
-import Data.Monoid
-import Control.Applicative
-import Control.Monad
-import Control.Monad.Trans
-import Control.Monad.Reader.Class
+import           Control.Applicative
+import           Control.Monad.Trans
+import           Data.Monoid
 
 
 
