diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,12 @@
 
+0.1.1 to 0.2.0:
+
+  * Updated to use Basic.Graphic types from wumpus-basic-0.2.0.
+
+  * Added bordered printing that marks the unit character width.
+
+  
+
 0.1.0 to 0.1.1:
 
   * Added missing LICENSE file to the Cabal file.
diff --git a/demo/Demo01.hs b/demo/Demo01.hs
--- a/demo/Demo01.hs
+++ b/demo/Demo01.hs
@@ -21,7 +21,7 @@
     ; writeSVG_latin1 "./out/mp01.svg" pic1
     }
   where
-    prefix mp = setRGB lightSlateGrey >> mp
+    prefix mp = setRGB moccasin >> mp
 
 errK :: a
 errK = error "no picture"
@@ -43,7 +43,7 @@
        { char_height    = 12.0
        , char_width     = 8.0
        , line_spacing   = 3.0
-       , drawF          = greekF
+       , drawF          = borderedF 1.0
        }
  
 
diff --git a/src/Wumpus/MicroPrint/Render.hs b/src/Wumpus/MicroPrint/Render.hs
--- a/src/Wumpus/MicroPrint/Render.hs
+++ b/src/Wumpus/MicroPrint/Render.hs
@@ -18,53 +18,66 @@
 
 module Wumpus.MicroPrint.Render
   (
-  
-    Graphic
-  , DGraphic
+
+    DrawF  
   , MP_config(..)
   , greekF
+  , borderedF
 
   , drawMicroPrint
 
   ) where
 
 import Wumpus.Core
+import Wumpus.Core.Colour ( black )
+import Wumpus.Basic.Graphic
 import Wumpus.Basic.Monads.TraceMonad
 import Wumpus.Basic.Monads.TurtleMonad
 import Wumpus.Basic.Utils.HList
 
 import Wumpus.MicroPrint.DrawMonad ( Tile(..), Height ) 
 
-import Data.AffineSpace                 -- package: vector-space
 import MonadLib                         -- package: monadLib
+import Data.AffineSpace                 -- package: vector-space
 
 import Control.Applicative
 import Control.Monad
 
--- | Note - this representation allows for zero, one or more
--- Primitives to be collected together.
+-- | 'DrawF' :
+-- @ (num_chars, char_unit_width) * (full_width, full_height) -> rgb -> DGraphicF @
 --
-type Graphic u = H (Primitive u)
-
-type DGraphic  = Graphic Double
-
-type GraphicF u = Point2 u -> Graphic u
-
-type DGraphicF = GraphicF Double 
-
+type DrawF = (Int,Double) -> (Double,Double) -> DRGB -> DGraphicF
 
 
 data MP_config = MP_config 
        { char_height    :: Double
        , char_width     :: Double
        , line_spacing   :: Double 
-       , drawF          :: Double -> Double -> DRGB -> DGraphicF
+       , drawF          :: DrawF
        }
 
-greekF :: Double -> Double -> DRGB -> DGraphicF
-greekF w h rgb = filledRectangle rgb w h 
+greekF :: DrawF
+greekF _ (w,h) rgb = filledRectangle rgb w h 
 
+borderedF :: Double -> DrawF
+borderedF line_width (i,uw) (w,h) rgb = 
+    srect `cc` seps `cc` greekF (i,uw) (w,h) rgb
+  where
+    props = (black, LineWidth line_width)
 
+    srect :: DGraphicF
+    srect = strokedRectangle props w h
+ 
+    seps  :: DGraphicF
+    seps  = \pt -> unfoldrH (phi pt) (1,uw) 
+    
+    phi pt (n,disp) | n >= i    = Nothing
+                    | otherwise = let ln = vline props h (pt .+^ hvec disp)
+                                  in  Just (ln,(n+1,disp+uw))
+ 
+vline :: (Stroke t, Num u, Ord u) => t -> u -> Point2 u -> Primitive u
+vline t h = \pt -> ostroke t $ path pt [lineTo $ pt .+^ vvec h]
+    
 
 newtype RenderMonad a = RM { getRM :: ReaderT MP_config
                                     ( TraceT  DPrimitive Turtle)  a }
@@ -114,9 +127,10 @@
 interp1 (Word rgb i)  = do
     w  <- scaleWidth i 
     h  <- asks char_height
+    uw <- asks char_width
     pt <- scaleCurrentCoord
     dF <- asks drawF
-    trace (dF w h rgb pt)
+    trace (dF (i,uw) (w,h) rgb pt)
     moveRightN i
    
 moveRightN :: Int -> RenderMonad ()
@@ -137,13 +151,4 @@
 
 --------------------------------------------------------------------------------
 
-filledRectangle :: (Num u, Ord u, Fill t) 
-                => t -> u -> u -> GraphicF u
-filledRectangle t w h bl = wrapH $ fill t $ rectangle w h bl
 
-rectangle :: Num u => u -> u -> Point2 u -> Path u
-rectangle w h bl = path bl [ lineTo br, lineTo tr, lineTo tl ]
-  where
-    br = bl .+^ hvec w
-    tr = br .+^ vvec h
-    tl = bl .+^ vvec h 
diff --git a/src/Wumpus/MicroPrint/VersionNumber.hs b/src/Wumpus/MicroPrint/VersionNumber.hs
--- a/src/Wumpus/MicroPrint/VersionNumber.hs
+++ b/src/Wumpus/MicroPrint/VersionNumber.hs
@@ -22,4 +22,4 @@
 
 
 wumpus_microprint_version :: (Int,Int,Int)
-wumpus_microprint_version = (0,1,1)
+wumpus_microprint_version = (0,2,0)
diff --git a/wumpus-microprint.cabal b/wumpus-microprint.cabal
--- a/wumpus-microprint.cabal
+++ b/wumpus-microprint.cabal
@@ -1,5 +1,5 @@
 name:             wumpus-microprint
-version:          0.1.1
+version:          0.2.0
 license:          BSD3
 license-file:     LICENSE
 copyright:        Stephen Tetley <stephen.tetley@gmail.com>
@@ -19,7 +19,15 @@
   .
   \[1\] <http://scg.unibe.ch/archive/papers/Robb05b-microprintsESUG.pdf>
   .
+  Changelog:
   .
+  0.1.1 to 0.2.0:
+  .
+  * Updated to use Basic.Graphic types from wumpus-basic-0.2.0
+  .
+  * Added bordered printing that marks the unit character width.
+  .
+  .
 build-type:         Simple
 stability:          highly unstable
 cabal-version:      >= 1.2
@@ -34,8 +42,8 @@
   build-depends:      base              < 5, 
                       vector-space      >= 0.6,
                       monadLib          >= 3.6,
-                      wumpus-core       >= 0.20.0,
-                      wumpus-basic      >= 0.1.0
+                      wumpus-core       >= 0.21.0,
+                      wumpus-basic      >= 0.2.0
 
   
   exposed-modules:
