diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # xmonad-spotify
 
+## 0.1.0.1
+
+* Generalize type signatures
+* Remove dependency on `xmonad-contrib` and `xmonad`
+
 ## 0.1.0.0
 
 Initial release
diff --git a/cabal.project.local b/cabal.project.local
--- a/cabal.project.local
+++ b/cabal.project.local
@@ -1,6 +1,9 @@
 constraints: xmonad-spotify +development
-tests: True
-benchmarks: True
-documentation: True
-haddock-hoogle: True
-haddock-internal: True
+allow-newer:
+    base
+    Cabal
+
+-- source-repository-package
+    -- location: https://github.com/rblaze/haskell-dbus
+    -- type: git
+    -- tag: 6f923bfd2c7ee58bee5281e9006fe92a42f49774
diff --git a/src/XMonad/Util/Spotify.hs b/src/XMonad/Util/Spotify.hs
--- a/src/XMonad/Util/Spotify.hs
+++ b/src/XMonad/Util/Spotify.hs
@@ -16,15 +16,14 @@
 import           DBus.Client
 import           Graphics.X11.ExtraTypes.XF86
 import           Graphics.X11.Types
-import           XMonad.Core
 
 -- | Given your keymaps, add the media keybindings. Currently they are set up
 -- for Spotify.
-mediaKeys :: M.Map (KeyMask, KeySym) (X ()) -> M.Map (KeyMask, KeySym) (X ())
+mediaKeys :: MonadIO m => M.Map (KeyMask, KeySym) (m ()) -> M.Map (KeyMask, KeySym) (m ())
 mediaKeys = M.union mediaKeyMap
     where mediaKeyMap = M.fromList mediaKeyList
 
-mediaKeyList :: [((KeyMask, KeySym), X ())]
+mediaKeyList :: MonadIO m => [((KeyMask, KeySym), m ())]
 mediaKeyList = go <$> [ (xF86XK_AudioNext, audioNext)
                       , (xF86XK_AudioPrev, audioPrev)
                       , (xF86XK_AudioPlay, audioPlayPause)
@@ -39,17 +38,17 @@
     disconnect client
 
 -- | Helper function for use with dbus
-sp :: String -> X ()
+sp :: MonadIO m => String -> m ()
 sp = liftIO . spIO
 
 -- | Action in the 'X' monad to go to next
-audioNext :: X ()
+audioNext :: MonadIO m => m ()
 audioNext = sp "Next"
 
 -- | Action in the 'X' monad to go the previous
-audioPrev :: X ()
+audioPrev :: MonadIO m => m ()
 audioPrev = sp "Previous"
 
 -- | Action in the 'X' monad to play/pause
-audioPlayPause :: X ()
+audioPlayPause :: MonadIO m => m ()
 audioPlayPause = sp "PlayPause"
diff --git a/xmonad-spotify.cabal b/xmonad-spotify.cabal
--- a/xmonad-spotify.cabal
+++ b/xmonad-spotify.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: xmonad-spotify
-version: 0.1.0.0
+version: 0.1.0.1
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -30,12 +30,10 @@
     exposed-modules:
         XMonad.Util.Spotify
     hs-source-dirs: src
-    default-language: Haskell2010
+    default-language: Haskell98
     ghc-options: -Wall
     build-depends:
         base >=4.8 && <5,
-        xmonad -any,
-        xmonad-contrib -any,
         dbus -any,
         containers -any,
         X11 -any
