diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,5 +1,8 @@
 -*-change-log-*-
 
+v0.2 April 2015
+ * Bumping: using svg-tree 0.3
+
 v0.1.1 April 2015
  * Fix: Fixing GHC 7.10.1 related warnings
  * Fix: Group transparency.
diff --git a/rasterific-svg.cabal b/rasterific-svg.cabal
--- a/rasterific-svg.cabal
+++ b/rasterific-svg.cabal
@@ -1,71 +1,71 @@
--- Initial svg.cabal generated by cabal init.  For further documentation, 
--- see http://haskell.org/cabal/users-guide/
-name:                rasterific-svg
-version:             0.1.1
-synopsis:            SVG renderer based on Rasterific.
-description:         SVG renderer that will let you render svg-tree parsed
-                     SVG file to a JuicyPixel image or Rasterific Drawing.
-license:             BSD3
-license-file:        LICENSE
-author:              Vincent Berthoux
-maintainer:          Vincent Berthoux
--- copyright:           
-extra-source-files:  changelog
-category:            Graphics, Svg
-build-type:          Simple
-cabal-version:       >=1.10
-
-Source-Repository head
-    Type:      git
-    Location:  git://github.com/Twinside/rasterific-svg.git
-
-Source-Repository this
-    Type:      git
-    Location:  git://github.com/Twinside/rasterific-svg.git
-    Tag:       v0.1.1
-
-library
-  hs-source-dirs: src
-  default-language: Haskell2010
-  Ghc-options: -O3 -Wall
-  ghc-prof-options: -Wall -prof 
-  -- -auto-all
-  exposed-modules: Graphics.Rasterific.Svg
-  other-modules: Graphics.Rasterific.Svg.RenderContext
-               , Graphics.Rasterific.Svg.PathConverter
-               , Graphics.Rasterific.Svg.RasterificRender
-               , Graphics.Rasterific.Svg.RasterificTextRendering
-
-  build-depends: base >= 4.6 && < 4.9
-               , directory
-               , bytestring >= 0.10
-               , filepath
-               , binary >= 0.7
-               , scientific >= 0.3
-               , JuicyPixels >= 3.2 && < 3.3
-               , containers >= 0.5
-               , Rasterific >= 0.5.2.1 && < 0.6
-               , FontyFruity >= 0.5 && < 0.6
-               , svg-tree   >= 0.2 && < 0.3
-               , lens >= 4.5 && < 4.10
-               , linear >= 1.16
-               , vector >= 0.10
-               , text >= 1.2
-               , transformers >= 0.3 && < 0.5
-               , mtl >= 2.1 && < 2.3
-
-Executable svgrender
-  default-language: Haskell2010
-  hs-source-dirs: exec-src
-  Main-Is: svgrender.hs
-  Ghc-options: -O3 -Wall
-  ghc-prof-options: -rtsopts -Wall -prof
-  Build-Depends: base >= 4.6
-               , optparse-applicative >= 0.11 && < 0.12
-               , rasterific-svg
-               , Rasterific
-               , JuicyPixels
-               , filepath
-               , FontyFruity
-               , svg-tree
-
+-- Initial svg.cabal generated by cabal init.  For further documentation, 
+-- see http://haskell.org/cabal/users-guide/
+name:                rasterific-svg
+version:             0.2
+synopsis:            SVG renderer based on Rasterific.
+description:         SVG renderer that will let you render svg-tree parsed
+                     SVG file to a JuicyPixel image or Rasterific Drawing.
+license:             BSD3
+license-file:        LICENSE
+author:              Vincent Berthoux
+maintainer:          Vincent Berthoux
+-- copyright:           
+extra-source-files:  changelog
+category:            Graphics, Svg
+build-type:          Simple
+cabal-version:       >=1.10
+
+Source-Repository head
+    Type:      git
+    Location:  git://github.com/Twinside/rasterific-svg.git
+
+Source-Repository this
+    Type:      git
+    Location:  git://github.com/Twinside/rasterific-svg.git
+    Tag:       v0.2
+
+library
+  hs-source-dirs: src
+  default-language: Haskell2010
+  Ghc-options: -O3 -Wall
+  ghc-prof-options: -Wall -prof 
+  -- -auto-all
+  exposed-modules: Graphics.Rasterific.Svg
+  other-modules: Graphics.Rasterific.Svg.RenderContext
+               , Graphics.Rasterific.Svg.PathConverter
+               , Graphics.Rasterific.Svg.RasterificRender
+               , Graphics.Rasterific.Svg.RasterificTextRendering
+
+  build-depends: base >= 4.6 && < 4.9
+               , directory
+               , bytestring >= 0.10
+               , filepath
+               , binary >= 0.7
+               , scientific >= 0.3
+               , JuicyPixels >= 3.2 && < 3.3
+               , containers >= 0.5
+               , Rasterific >= 0.5.2.1 && < 0.6
+               , FontyFruity >= 0.5 && < 0.6
+               , svg-tree   >= 0.3 && < 0.4
+               , lens >= 4.5 && < 4.10
+               , linear >= 1.16
+               , vector >= 0.10
+               , text >= 1.2
+               , transformers >= 0.3 && < 0.5
+               , mtl >= 2.1 && < 2.3
+
+Executable svgrender
+  default-language: Haskell2010
+  hs-source-dirs: exec-src
+  Main-Is: svgrender.hs
+  Ghc-options: -O3 -Wall
+  ghc-prof-options: -rtsopts -Wall -prof
+  Build-Depends: base >= 4.6
+               , optparse-applicative >= 0.11 && < 0.12
+               , rasterific-svg
+               , Rasterific
+               , JuicyPixels
+               , filepath
+               , FontyFruity
+               , svg-tree
+
diff --git a/src/Graphics/Rasterific/Svg/PathConverter.hs b/src/Graphics/Rasterific/Svg/PathConverter.hs
--- a/src/Graphics/Rasterific/Svg/PathConverter.hs
+++ b/src/Graphics/Rasterific/Svg/PathConverter.hs
@@ -32,12 +32,12 @@
    go (QuadraticBezier o lst) = QuadraticBezier o . pure <$> lst
    go (SmoothQuadraticBezierCurveTo o lst) =
        SmoothQuadraticBezierCurveTo o . pure <$> lst
-   go (ElipticalArc o lst) = ElipticalArc o . pure <$> lst
+   go (EllipticalArc o lst) = EllipticalArc o . pure <$> lst
    go EndPath = [EndPath]
 
 toR :: RPoint -> R.Point
 {-# INLINE toR #-}
-toR (L.V2 x y) = R.V2 x y
+toR (L.V2 x y) = realToFrac <$> R.V2 x y
 
 svgPathToPrimitives :: Bool -> [PathCommand] -> [R.Primitive]
 svgPathToPrimitives _ lst | isPathWithArc lst = []
@@ -67,14 +67,14 @@
         ((pp, pp, pp), []) where pp = o ^+^ toR p
 
     go (o@(R.V2 _ y), _, fp) (HorizontalTo OriginAbsolute (c:_)) =
-        ((p, p, fp), R.line o p) where p = R.V2 c y
+        ((p, p, fp), R.line o p) where p = R.V2 (realToFrac c) y
     go (o@(R.V2 x y), _, fp) (HorizontalTo OriginRelative (c:_)) =
-        ((p, p, fp), R.line o p) where p = R.V2 (x + c) y
+        ((p, p, fp), R.line o p) where p = R.V2 (x + realToFrac c) y
 
     go (o@(R.V2 x _), _, fp) (VerticalTo OriginAbsolute (c:_)) =
-        ((p, p, fp), R.line o p) where p = R.V2 x c
+        ((p, p, fp), R.line o p) where p = R.V2 x (realToFrac c)
     go (o@(R.V2 x y), _, fp) (VerticalTo OriginRelative (c:_)) =
-        ((p, p, fp), R.line o p) where p = R.V2 x (c + y)
+        ((p, p, fp), R.line o p) where p = R.V2 x (realToFrac c + y)
 
     go (o, _, fp) (LineTo OriginRelative (c:_)) =
         ((p, p, fp), R.line o p) where p = o ^+^ toR c
@@ -129,7 +129,7 @@
       where c1' = o ^* 2 ^-^ control
             e' = o ^+^ toR e
 
-    go _ (ElipticalArc _ _) = error "Unimplemented"
+    go _ (EllipticalArc _ _) = error "Unimplemented"
 
 
 -- | Conversion function between svg path to the rasterific one.
@@ -162,14 +162,14 @@
       ((pp, pp, pp), []) where pp = o ^+^ toR p
 
   go (R.V2 _ y, _, fp) (HorizontalTo OriginAbsolute (c:_)) =
-      ((p, p, fp), lineTo p) where p = R.V2 c y
+      ((p, p, fp), lineTo p) where p = R.V2 (realToFrac c) y
   go (R.V2 x y, _, fp) (HorizontalTo OriginRelative (c:_)) =
-      ((p, p, fp), lineTo p) where p = R.V2 (x + c) y
+      ((p, p, fp), lineTo p) where p = R.V2 (x + realToFrac c) y
 
   go (R.V2 x _, _, fp) (VerticalTo OriginAbsolute (c:_)) =
-      ((p, p, fp), lineTo p) where p = R.V2 x c
+      ((p, p, fp), lineTo p) where p = R.V2 x (realToFrac c)
   go (R.V2 x y, _, fp) (VerticalTo OriginRelative (c:_)) =
-      ((p, p, fp), lineTo p) where p = R.V2 x (c + y)
+      ((p, p, fp), lineTo p) where p = R.V2 x (realToFrac c + y)
 
   go (o, _, fp) (LineTo OriginRelative (c:_)) =
       ((p, p, fp), lineTo p) where p = o ^+^ toR c
@@ -224,5 +224,5 @@
     where c1' = o ^* 2 ^-^ control
           e' = o ^+^ toR e
 
-  go _ (ElipticalArc _ _) = error "Unimplemented"
+  go _ (EllipticalArc _ _) = error "Unimplemented"
 
diff --git a/src/Graphics/Rasterific/Svg/RasterificRender.hs b/src/Graphics/Rasterific/Svg/RasterificRender.hs
--- a/src/Graphics/Rasterific/Svg/RasterificRender.hs
+++ b/src/Graphics/Rasterific/Svg/RasterificRender.hs
@@ -134,17 +134,19 @@
 
 toTransformationMatrix :: Transformation -> RT.Transformation
 toTransformationMatrix = go where
+  rf = realToFrac
+
   go (TransformMatrix a b c d e f) =
-     RT.Transformation a b c d e f
-  go (Translate x y) = RT.translate $ V2 x y
-  go (Scale xs Nothing) = RT.scale xs xs
-  go (Scale xs (Just ys)) = RT.scale xs ys
+     RT.Transformation (rf a) (rf b) (rf c) (rf d) (rf e) (rf f)
+  go (Translate x y) = RT.translate $ V2 (rf x) (rf y)
+  go (Scale xs Nothing) = RT.scale (rf xs) (rf xs)
+  go (Scale xs (Just ys)) = RT.scale (rf xs) (rf ys)
   go (Rotate angle Nothing) =
-      RT.rotate $ toRadian angle
+      RT.rotate . toRadian $ rf angle
   go (Rotate angle (Just (cx, cy))) =
-      RT.rotateCenter (toRadian angle) $ V2 cx cy
-  go (SkewX v) = RT.skewX $ toRadian v
-  go (SkewY v) = RT.skewY $ toRadian v
+      RT.rotateCenter (toRadian $ rf angle) $ V2 (rf cx) (rf cy)
+  go (SkewX v) = RT.skewX . toRadian $ rf v
+  go (SkewY v) = RT.skewY . toRadian $ rf v
   go TransformUnknown = mempty
 
 withTransform :: DrawAttributes -> R.Drawing a ()
@@ -206,7 +208,7 @@
        Nothing -> id
        Just OrientationAuto -> id
        Just (OrientationAngle a) -> 
-         R.withTransformation (RT.rotate $ toRadian a)
+         R.withTransformation (RT.rotate . toRadian $ realToFrac a)
 
     units =
       fromMaybe MarkerUnitStrokeWidth . _markerUnits
diff --git a/src/Graphics/Rasterific/Svg/RasterificTextRendering.hs b/src/Graphics/Rasterific/Svg/RasterificTextRendering.hs
--- a/src/Graphics/Rasterific/Svg/RasterificTextRendering.hs
+++ b/src/Graphics/Rasterific/Svg/RasterificTextRendering.hs
@@ -141,7 +141,7 @@
     , _charY = yC
     , _charDx = dxC
     , _charDy = dyC
-    , _charRotate = rotateC
+    , _charRotate = realToFrac <$> rotateC
     , _charStroke =
         (,, joinOfSvg attr, capOfSvg attr) <$> sWidth <*> tex
     }
@@ -212,7 +212,7 @@
   lowerLeftCorner = boundLowerLeftCorner bounds
   toRPoint a b = linearisePoint ctxt mempty (a, b)
   mzero = Just $ Num 0
-  V2 pmx pmy = Just . Num <$> prevAbsolute
+  V2 pmx pmy = Just . Num . realToFrac <$> prevAbsolute
 
   mayForcedPoint = case (_charX info, _charY info) of
     (Nothing, Nothing) -> Nothing
@@ -230,7 +230,7 @@
 
     Just p ->
       let newDelta = prevDelta ^+^ delta
-          positionDelta = p ^-^ lowerLeftCorner
+          positionDelta = (realToFrac <$> p) ^-^ lowerLeftCorner
           trans = RT.translate $ positionDelta ^+^ newDelta in
       (newDelta, positionDelta, trans)
 
@@ -435,10 +435,10 @@
 
 startOffsetOfPath :: RenderContext -> DrawAttributes -> R.Path -> Number
                   -> Float
-startOffsetOfPath _ _ _ (Num i) = i
-startOffsetOfPath _ attr _ (Em i) = emTransform attr i
+startOffsetOfPath _ _ _ (Num i) = realToFrac i
+startOffsetOfPath _ attr _ (Em i) = emTransform attr $ realToFrac i
 startOffsetOfPath _ _ tPath (Percent p) =
-    p * RO.approximatePathLength tPath
+    realToFrac p * RO.approximatePathLength tPath
 startOffsetOfPath ctxt attr tPath num =
     startOffsetOfPath ctxt attr tPath $ stripUnits ctxt num
 
diff --git a/src/Graphics/Rasterific/Svg/RenderContext.hs b/src/Graphics/Rasterific/Svg/RenderContext.hs
--- a/src/Graphics/Rasterific/Svg/RenderContext.hs
+++ b/src/Graphics/Rasterific/Svg/RenderContext.hs
@@ -103,11 +103,11 @@
              abs <$> (maxi ^-^ mini)
   two = 2 :: Int
   coeff = sqrt (actualWidth ^^ two + actualHeight ^^ two)
-        / sqrt 2
+        / sqrt 2 :: Float
   go num = case num of
-    Num n -> n
-    Em n -> emTransform attr n
-    Percent p -> p * coeff
+    Num n -> realToFrac n
+    Em n -> emTransform attr $ realToFrac n
+    Percent p -> realToFrac p * coeff
     _ -> go $ stripUnits ctxt num
 
 boundbingBoxLinearise :: RenderContext -> DrawAttributes -> R.PlaneBound -> Point
@@ -117,32 +117,32 @@
   where
     R.V2 w h = abs <$> (maxi ^-^ mini)
     finalX nu = case nu of
-      Num n -> n
-      Em n -> emTransform attr n
-      Percent p -> p * w + xi
+      Num n -> realToFrac n
+      Em n -> emTransform attr $ realToFrac n
+      Percent p -> realToFrac p * w + xi
       _ -> finalX $ stripUnits ctxt nu
 
     finalY nu = case nu of
-      Num n -> n
-      Em n -> emTransform attr n
-      Percent p -> p * h + yi
+      Num n -> realToFrac n
+      Em n -> emTransform attr $ realToFrac n
+      Percent p -> realToFrac p * h + yi
       _ -> finalY $ stripUnits ctxt nu
 
 lineariseXLength :: RenderContext -> DrawAttributes -> Number
-                 -> Coord
-lineariseXLength _ _ (Num i) = i
-lineariseXLength _ attr (Em i) = emTransform attr i
-lineariseXLength ctxt _ (Percent p) = abs (xe - xs) * p
+                 -> Float
+lineariseXLength _ _ (Num i) = realToFrac i
+lineariseXLength _ attr (Em i) = emTransform attr $ realToFrac i
+lineariseXLength ctxt _ (Percent p) = abs (xe - xs) * realToFrac p
   where
     (R.V2 xs _, R.V2 xe _) = _renderViewBox ctxt
 lineariseXLength ctxt attr num =
     lineariseXLength ctxt attr $ stripUnits ctxt num
 
 lineariseYLength :: RenderContext -> DrawAttributes -> Number
-                 -> Coord
-lineariseYLength _ _ (Num i) = i
-lineariseYLength _ attr (Em n) = emTransform attr n
-lineariseYLength ctxt _ (Percent p) = abs (ye - ys) * p
+                 -> Float
+lineariseYLength _ _ (Num i) = realToFrac i
+lineariseYLength _ attr (Em n) = emTransform attr $ realToFrac n
+lineariseYLength ctxt _ (Percent p) = abs (ye - ys) * (realToFrac p)
   where
     (R.V2 _ ys, R.V2 _ ye) = _renderViewBox ctxt
 lineariseYLength ctxt attr num =
@@ -158,16 +158,15 @@
 
 emTransform :: DrawAttributes -> Float -> Float
 emTransform attr n = case getLast $ _fontSize attr of
-    Nothing -> 16 * n
-    Just (Num v) -> v * n
+    Nothing -> 16 * realToFrac n
+    Just (Num v) -> realToFrac v * n
     Just _ -> 16 * n
 
 lineariseLength :: RenderContext -> DrawAttributes -> Number
-                -> Coord
-lineariseLength _ _ (Num i) = i
-lineariseLength _ attr (Em i) =
-    emTransform attr i
-lineariseLength ctxt _ (Percent v) = v * coeff
+                -> Float
+lineariseLength _ _ (Num i) = realToFrac i
+lineariseLength _ attr (Em i) = emTransform attr $ realToFrac i
+lineariseLength ctxt _ (Percent v) = realToFrac v * coeff
   where
     (R.V2 x1 y1, R.V2 x2 y2) = _renderViewBox ctxt
     actualWidth = abs $ x2 - x1
