diff --git a/markup.cabal b/markup.cabal
--- a/markup.cabal
+++ b/markup.cabal
@@ -1,5 +1,5 @@
 Name:                   markup
-Version:                2.1.1
+Version:                2.2.0
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                MIT
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
@@ -15,13 +15,6 @@
 class Deploy symbol input markup (m :: * -> *) where
   deploy :: symbol -> input -> m markup
 
--- | Overload extraction of (co)monad
-class Markup (m :: * -> *) where
-  renderMarkup :: m a -> a
-  toMarkup :: a -> m a
-
-instance ( Monad m
-         , Comonad m
-         ) => Markup m where
-  renderMarkup = extract
-  toMarkup = return
+-- | Overloaded monad transformer execution.
+class Markup (t :: (* -> *) -> * -> *) where
+  renderMarkup :: t m a -> m a
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
@@ -11,6 +11,8 @@
 
 module Data.Markup.Types where
 
+import Data.Markup.Class
+
 import Data.Url
 import Data.Functor.Identity
 import Control.Applicative
@@ -26,7 +28,6 @@
 import Control.Monad.Base
 import Control.Monad.Catch
 import Control.Monad.Morph
-import Control.Comonad
 
 
 -- * Inline Deployment
@@ -63,11 +64,8 @@
   liftBaseWith = defaultLiftBaseWith
   restoreM = defaultRestoreM
 
-instance ( Comonad m
-         , Monad m
-         ) => Comonad (InlineMarkupT m) where
-  extract = extract . runInlineMarkupT
-  duplicate = InlineMarkupT . return
+instance Markup InlineMarkupT where
+  renderMarkup = runInlineMarkupT
 
 instance MonadTrans InlineMarkupT where
   lift = InlineMarkupT
@@ -107,11 +105,8 @@
   liftBaseWith = defaultLiftBaseWith
   restoreM = defaultRestoreM
 
-instance ( Comonad m
-         , Monad m
-         ) => Comonad (HostedMarkupT m) where
-  extract = extract . runHostedMarkupT
-  duplicate = HostedMarkupT . return
+instance Markup HostedMarkupT where
+  renderMarkup = runHostedMarkupT
 
 instance MonadTrans HostedMarkupT where
   lift = HostedMarkupT
@@ -151,12 +146,8 @@
   liftBaseWith = defaultLiftBaseWith
   restoreM = defaultRestoreM
 
-
-instance ( Comonad m
-         , Monad m
-         ) => Comonad (LocalMarkupT m) where
-  extract = extract . runLocalMarkupT
-  duplicate = LocalMarkupT . return
+instance Markup LocalMarkupT where
+  renderMarkup = runLocalMarkupT
 
 instance MonadTrans LocalMarkupT where
   lift = LocalMarkupT
