diff --git a/musicScroll.cabal b/musicScroll.cabal
--- a/musicScroll.cabal
+++ b/musicScroll.cabal
@@ -4,7 +4,7 @@
 -- http://haskell.org/cabal/users-guide/
 
 name:                musicScroll
-version:             0.3.3
+version:             0.3.4
 synopsis:            Supply your tunes info without leaving your music player.
 description:         Automatically retrive the lyrics of of your current
                      song on SMPlayer/VLC and update it on each change. See the
@@ -31,28 +31,28 @@
 library
   default-language:    Haskell2010
   hs-source-dirs:      src
-  build-depends:       base <4.15,
-                       containers,
-                       dbus,
-                       gi-gtk,
-                       gi-gtk-hs,
-                       text,
-                       bytestring,
-                       mtl,
-                       transformers,
-                       stm,
-                       async,
-                       req,
-                       tagsoup,
-                       sqlite-simple,
-                       xdg-basedir,
-                       cryptonite,
-                       bytestring,
-                       directory,
-                       deepseq,
-                       pipes,
-                       pipes-concurrency,
-                       contravariant
+  pkgconfig-depends:   gtk+-3.0
+  build-depends:       base <5,
+                       async >= 2.2.5 && < 2.3,
+                       bytestring >= 0.11.5 && < 0.13,
+                       deepseq >= 1.4.8 && < 1.5,
+                       containers >= 0.6.7 && < 0.7,
+                       text >= 2.0.2 && < 2.1,
+                       stm >= 2.5.1 && < 2.6,
+                       contravariant >= 1.5.5 && < 1.6,
+                       transformers >= 0.5.6 && < 0.6,
+                       cryptonite >= 0.30 && < 0.31,
+                       dbus >= 1.2.29 && < 1.3,
+                       directory >= 1.3.7 && < 1.4,
+                       mtl >= 2.2.2 && < 2.3,
+                       gi-gtk >= 3.0.41 && < 3.1,
+                       xdg-basedir >= 0.2.2 && < 0.3,
+                       gi-gtk-hs >= 0.3.16 && < 0.4,
+                       pipes >= 4.3.16 && < 4.4,
+                       pipes-concurrency >= 2.0.14 && < 2.1,
+                       req >= 3.13.0 && < 3.14,
+                       sqlite-simple >= 0.4.19 && < 0.5,
+                       tagsoup >= 0.14.8 && < 0.15
   exposed-modules:     MusicScroll.RealMain
                        MusicScroll.UI
                        MusicScroll.MPRIS
@@ -83,7 +83,7 @@
   main-is:             Main.hs
   -- other-modules:
   -- other-extensions:
-  build-depends:       base <4.15,
+  build-depends:       base <5,
                        musicScroll
   hs-source-dirs:      app
   default-language:    Haskell2010
diff --git a/shell.nix b/shell.nix
--- a/shell.nix
+++ b/shell.nix
@@ -4,29 +4,7 @@
 
   inherit (nixpkgs) pkgs;
 
-  f = { mkDerivation, async, base, bytestring, containers
-      , cryptonite, dbus, directory, gi-gtk, gi-gtk-hs, gtk3, mtl, req
-      , sqlite-simple, stdenv, stm, tagsoup, text, transformers
-      , xdg-basedir, pipes, pipes-concurrency, haskell-language-server
-      }:
-      mkDerivation {
-        pname = "musicScroll";
-        version = "0.3.1.0";
-        src = ./.;
-        isLibrary = true;
-        isExecutable = true;
-        enableSeparateDataOutput = true;
-        libraryHaskellDepends = [
-          async base bytestring containers cryptonite dbus directory gi-gtk
-          gi-gtk-hs mtl req sqlite-simple stm tagsoup text transformers
-          xdg-basedir pipes pipes-concurrency haskell-language-server
-        ];
-        executableHaskellDepends = [ base ];
-        executablePkgconfigDepends = [ gtk3 ];
-        homepage = "https://github.com/RubenAstudillo/MusicScroll";
-        description = "Supply your tunes info without leaving your music player";
-        license = stdenv.lib.licenses.gpl3;
-      };
+  f = import ./default.nix ;
 
   haskellPackages = if compiler == "default"
                        then pkgs.haskellPackages
@@ -36,8 +14,18 @@
 
   variant = if doBenchmark then pkgs.haskell.lib.doBenchmark else pkgs.lib.id;
 
-  drv = variant (haskellPackages.callPackage f { gtk3 = nixpkgs.gtk3; });
+  drv = haskellPackages.callPackage f { inherit (pkgs) gtk3; };
+  buildInputsS = [
+    haskellPackages.cabal-install
+    haskellPackages.haskell-language-server
+    pkgs.gtk3
+    pkgs.gobject-introspection
+    pkgs.glib
+  ];
 
 in
+  haskellPackages.shellFor {
+    packages = p: [drv];
+    buildInputs = buildInputsS;
+  }
 
-  if pkgs.lib.inNixShell then drv.env else drv
diff --git a/src/MusicScroll/Providers/AZLyrics.hs b/src/MusicScroll/Providers/AZLyrics.hs
--- a/src/MusicScroll/Providers/AZLyrics.hs
+++ b/src/MusicScroll/Providers/AZLyrics.hs
@@ -5,7 +5,7 @@
 
 import Control.Category hiding (id, (.))
 import Data.Maybe (catMaybes)
-import Data.Text as T hiding (filter, map, mapAccumL, tail)
+import Data.Text as T hiding (filter, map, mapAccumL, tail, elem)
 import Data.Traversable (mapAccumL)
 import MusicScroll.Providers.Utils
 import MusicScroll.TrackInfo (TrackInfo (..))
