diff --git a/haskgame.cabal b/haskgame.cabal
--- a/haskgame.cabal
+++ b/haskgame.cabal
@@ -1,5 +1,5 @@
 Name:                haskgame
-Version:             0.0.3
+Version:             0.0.4
 Cabal-Version:       >= 1.2
 Synopsis:            Haskell game library.
 Category:            graphics
diff --git a/src/Graphics/UI/HaskGame.hs b/src/Graphics/UI/HaskGame.hs
--- a/src/Graphics/UI/HaskGame.hs
+++ b/src/Graphics/UI/HaskGame.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS -Wall -O2 #-}
 
 module Graphics.UI.HaskGame
-    (Surface,Event
+    (Surface,Event,Size
     ,createRGBSurface,blit,fillRect,fillSurface
     ,withInit,getEvents,surfaceSize,setVideoMode
     )
@@ -11,6 +11,7 @@
 import qualified Graphics.UI.HaskGame.Rect as Rect
 import qualified Graphics.UI.HaskGame.Font as Font
 import qualified Graphics.UI.HaskGame.Utils as Utils
+import Graphics.UI.HaskGame.Utils(Size)
 import Graphics.UI.HaskGame.Color(Color(..))
 import Graphics.UI.HaskGame.Vector2(Vector2(..))
 import Control.Monad(liftM)
@@ -65,7 +66,7 @@
 getEvents :: IO [Event]
 getEvents = whileM (/=SDL.NoEvent) SDL.pollEvent
 
-surfaceSize :: Surface -> Vector2 Int
+surfaceSize :: Surface -> Size
 surfaceSize surface = Vector2 (SDL.surfaceGetWidth surface)
                               (SDL.surfaceGetHeight surface)
 
diff --git a/src/Graphics/UI/HaskGame/Font.hs b/src/Graphics/UI/HaskGame/Font.hs
--- a/src/Graphics/UI/HaskGame/Font.hs
+++ b/src/Graphics/UI/HaskGame/Font.hs
@@ -11,6 +11,7 @@
 import qualified Graphics.UI.HaskGame.Utils as Utils
 import Graphics.UI.HaskGame.Color(Color(..))
 import Graphics.UI.HaskGame.Vector2(Vector2(..))
+import System.IO.Unsafe(unsafePerformIO)
 
 type Font = TTF.Font
 
@@ -21,10 +22,10 @@
                              else
                                  TTF.renderTextBlended font text (SDL.Color r g b)
 
-textSize :: Font -> String -> IO (Vector2 Int)
-textSize font text = do
-  (w, h) <- TTF.textSize font text
-  return $ Vector2 w h
+textSize :: Font -> String -> Vector2 Int
+textSize font text =
+    let (w, h) = unsafePerformIO $ TTF.textSize font text
+    in Vector2 w h
 
 defaultFont :: Int -> IO Font
 defaultFont = TTF.openFont "/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf"
diff --git a/src/Graphics/UI/HaskGame/Utils.hs b/src/Graphics/UI/HaskGame/Utils.hs
--- a/src/Graphics/UI/HaskGame/Utils.hs
+++ b/src/Graphics/UI/HaskGame/Utils.hs
@@ -1,10 +1,13 @@
 {-# OPTIONS -Wall -O2 #-}
 
 module Graphics.UI.HaskGame.Utils
-    (bracket__,ioBoolToError)
+    (Size, bracket__,ioBoolToError)
 where
 
 import qualified IO
+import Graphics.UI.HaskGame.Vector2(Vector2)
+
+type Size = Vector2 Int
 
 bracket__ :: IO () -> IO () -> IO () -> IO ()
 bracket__ pre post code = IO.bracket_ pre (const post) code
