diff --git a/hsudoku.cabal b/hsudoku.cabal
--- a/hsudoku.cabal
+++ b/hsudoku.cabal
@@ -1,5 +1,5 @@
 name:               hsudoku
-version:            0.1.0.1
+version:            0.1.1.0
 synopsis:           Sudoku game with a GTK3 interface
 description:        This package realizes a graphical GTK3 sudoku game. Moreover it
                     provides modules for loading and solving sudoku grids.
@@ -15,10 +15,14 @@
 cabal-version:      >=1.10
 Tested-with:        GHC == 8.0.2
 
-extra-source-files: gui/hsudoku.ui
-                    gui/icon.png,
-                    gui/theme.css
+extra-source-files:   gui/hsudoku.ui
+                    , gui/icon.png
+                    , gui/theme.css
 
+data-files:           gui/hsudoku.ui
+                    , gui/icon.png
+                    , gui/theme.css
+
 source-repository head
     type:           git
     location:       git@github.com:marcelmoosbrugger/hsudoku.git   
@@ -32,6 +36,7 @@
                      , Sudoku.Solver
                      , Sudoku.Loader
 
+  other-modules:       Paths_hsudoku
     
   build-depends:       base >=4.9 && <4.10
                      , text >=1.2 && <1.3
diff --git a/src/Hsudoku.hs b/src/Hsudoku.hs
--- a/src/Hsudoku.hs
+++ b/src/Hsudoku.hs
@@ -20,7 +20,7 @@
 main = do
     Gtk.init Nothing
 
-    ui <- buildSudokuUI "gui/hsudoku.ui"
+    ui <- buildSudokuUI
     cellsBindHandlers (cells ui) (popover ui)
     numbersBindHandlers (numberButtons ui) (popover ui)
     on (inputClear ui) #clicked $ writePopoverRelativeCell (popover ui) $ blankval
diff --git a/src/UserInterface.hs b/src/UserInterface.hs
--- a/src/UserInterface.hs
+++ b/src/UserInterface.hs
@@ -32,17 +32,17 @@
     , showMenu
     ) where
 
+import           Control.Concurrent     (forkIO, threadDelay)
 import           Control.Exception
 import           Control.Monad.IO.Class
 import           Data.GI.Base
 import qualified Data.Text              as T
 import           Data.Typeable
 import           GI.Gtk
-import           Sudoku.Type
+import           Paths_hsudoku
 import           Sudoku.Loader
 import           Sudoku.Solver
-import           Control.Concurrent (forkIO, threadDelay)
-
+import           Sudoku.Type
 
 -- | Thrown when 'castB' fails get an object.
 data BuilderCastException = UnknownIdException String deriving (Show, Typeable)
@@ -57,7 +57,7 @@
 type GameMenu = Widget
 
 -- | A type containing all handles of widgets necessary for the user interface.
-data SudokuUI = SudokuUI { window        :: Window 
+data SudokuUI = SudokuUI { window        :: Window
                          , menu          :: GameMenu
                          , gameButtons   :: [Button]
                          , cells         :: Cells
@@ -72,9 +72,10 @@
 
 
 -- | Builds the sudoku-ui from a gui-file for which the path is given.
-buildSudokuUI :: T.Text -> IO SudokuUI
-buildSudokuUI guiFilePath = do
-    (window, builder) <- buildMainWindow "mainWindow" guiFilePath
+buildSudokuUI :: IO SudokuUI
+buildSudokuUI = do
+    uiFile            <- T.pack <$> getDataFileName "gui/hsudoku.ui"
+    (window, builder) <- buildMainWindow "mainWindow" uiFile
     menu              <- builderGetTyped builder "menu" Widget
     gameButtons       <- builderGetsTyped builder gameButtonNames Button
     cells             <- builderGetsTyped builder cellNames Button
@@ -85,7 +86,7 @@
     solveButton       <- builderGetTyped builder "solveButton" Button
     checkButton       <- builderGetTyped builder "checkButton" Button
     menuButton        <- builderGetTyped builder "menuButton" Button
-    pure $ SudokuUI window menu gameButtons cells popover 
+    pure $ SudokuUI window menu gameButtons cells popover
                     numberButtons inputClear inputSolve solveButton
                     checkButton menuButton
 
@@ -99,7 +100,7 @@
 
 -- | The ids of the buttons which start a new game
 gameButtonNames :: [T.Text]
-gameButtonNames = map (T.pack . (++) "game" . show) [Easy ..] 
+gameButtonNames = map (T.pack . (++) "game" . show) [Easy ..]
 
 -- | Takes a builder and returns the object with a given name
 --   typed as a given gtype.
@@ -122,7 +123,8 @@
     builder <- builderNewFromFile path
     window  <- builderGetTyped builder name Window
     on window #destroy mainQuit
-    windowAddCss window "gui/theme.css"
+    cssFile <- T.pack <$> getDataFileName "gui/theme.css"
+    windowAddCss window cssFile
     pure (window, builder)
 
 -- | Adds to a given window a css file for which the path is given.
@@ -175,7 +177,7 @@
 checkCell :: Cell -> IO Bool
 checkCell cell = do
     solution <- T.head <$> (toWidget cell >>= #getName)
-    actual <- T.head <$> #getLabel cell 
+    actual <- T.head <$> #getLabel cell
     let isCorrect = actual == solution
     style <- #getStyleContext cell
     if not isCorrect
@@ -258,4 +260,4 @@
     #hide popover
     popover `set` [#relativeTo := menu]
     #show menu
-    
+
diff --git a/test/UserInterfaceSpec.hs b/test/UserInterfaceSpec.hs
--- a/test/UserInterfaceSpec.hs
+++ b/test/UserInterfaceSpec.hs
@@ -14,7 +14,7 @@
     describe "buildSudokuUI" $ do
         it "should actually return a UI data-structure and not fail" $ do
             _ <- Gtk.init Nothing
-            ui <- buildSudokuUI "gui/hsudoku.ui"
+            ui <- buildSudokuUI
             (length $ cells ui) `shouldSatisfy` (> 0)
             (length $ gameButtons ui) `shouldSatisfy` (> 0)
             (length $ numberButtons ui) `shouldSatisfy` (> 0)
