diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -9,15 +9,14 @@
 import Control.Monad        (mapM_, filterM)
 import Control.Monad.Reader (ReaderT, runReaderT, asks)
 import System.FilePath      (joinPath, takeBaseName, (</>))
-import System.Directory     (removeFile, getDirectoryContents, doesFileExist)
 import System.IO            (readFile)
+import System.Directory
 
 import Database.Selda
 import Database.Selda.SQLite
 
-import qualified Data.Text    as T
-import qualified Data.Text.IO as T
-import qualified System.Environment.XDG.BaseDir as X
+import qualified Data.Text        as T
+import qualified Data.Text.IO     as T
 
 
 data Settings = Settings
@@ -38,7 +37,7 @@
 
 main :: IO ()
 main = do
-  config   <- X.getUserConfigFile "bisc" "bisc.conf"
+  config   <- getXdgDirectory XdgConfig ("bisc" </> "bisc.conf")
   settings <- loadSettings config
   runReaderT clean settings
 
@@ -83,16 +82,20 @@
 deleteData :: [Text] -> Action (Int, [Text])
 deleteData whitelist = do
   webengine <- asks webenginePath
-  appCache     <- liftIO $ getDirectoryFiles (webengine </> "Application Cache")
-  indexedDB    <- liftIO $ getDirectoryFiles (webengine </> "IndexedDB")
-  localStorage <- liftIO $ getDirectoryFiles (webengine </> "Local Storage")
+  appCache     <- liftIO $ listDirectoryAbs (webengine </> "Application Cache")
+  indexedDB    <- liftIO $ listDirectoryAbs (webengine </> "IndexedDB")
+  localStorage <- liftIO $ listDirectoryAbs (webengine </> "Local Storage")
   let
     entries    = appCache ++ indexedDB ++ localStorage 
     badFiles   = filterMaybe (fmap unlisted . domain) entries
     badDomains = mapMaybe domain badFiles
-  liftIO $ mapM_ removeFile badFiles
+  liftIO $ print indexedDB
+  liftIO $ mapM_ removePathForcibly badFiles
   return (length badFiles, nub badDomains)
   where
+    listDirectoryAbs :: FilePath -> IO [FilePath]
+    listDirectoryAbs dir = map (dir </>) <$> listDirectory dir
+
     maybeToBool :: Maybe Bool -> Bool
     maybeToBool Nothing  = False
     maybeToBool (Just x) = x
@@ -112,8 +115,8 @@
 
 loadSettings :: FilePath -> IO Settings
 loadSettings path = do
-  configdir <- X.getUserConfigDir "qutebrowser"
-  datadir   <- X.getUserDataDir   "qutebrowser"
+  configdir <- getXdgDirectory XdgConfig "qutebrowser"
+  datadir   <- getXdgDirectory XdgData   "qutebrowser"
   let
    defaultWhitelist = joinPath [configdir, "whitelists", "cookies"]
    defaultWebengine = joinPath [datadir, "webengine"]
diff --git a/bisc.cabal b/bisc.cabal
--- a/bisc.cabal
+++ b/bisc.cabal
@@ -1,8 +1,8 @@
 name:                bisc
-version:             0.2.0.0
+version:             0.2.1.0
 synopsis:            A small tool that clears qutebrowser cookies.
 description:         
-                    
+
   Bisc clears qutebrowser cookies and javascript local storage
   by domains, stored in a whitelist.
 
@@ -11,7 +11,7 @@
 license-file:        LICENSE
 author:              Michele Guerini Rocco
 maintainer:          rnhmjoj@inventati.org
-copyright:           Copyright (C) 2018 Michele Guerini Rocco
+copyright:           Copyright (C) 2019 Michele Guerini Rocco
 category:            Utility
 build-type:          Simple
 extra-source-files:  README.md
@@ -25,8 +25,8 @@
   main-is:             Main.hs
   build-depends:       base ==4.* , selda ==0.3.*,
                        selda-sqlite ==0.1.*,
-                       xdg-basedir, filepath, directory,
-                       text, mtl, configurator
+                       filepath, directory, text,
+                       mtl, configurator
   default-language:    Haskell2010
   default-extensions:  DeriveGeneric, OverloadedStrings
                        OverloadedLabels, FlexibleContexts
