diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,24 +1,21 @@
-This is free and unencumbered software released into the public domain.
+The MIT License (MIT)
 
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
+Copyright (c) 2015 Karun Ramakrishnan
 
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
 
-For more information, please refer to <http://unlicense.org/>
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/arion.cabal b/arion.cabal
--- a/arion.cabal
+++ b/arion.cabal
@@ -1,8 +1,8 @@
 name:                arion
-version:             0.1.0.4
+version:             0.1.0.5
 synopsis:            Watcher and runner for Hspec
 description:         Watcher and runner for Hspec
-license:             PublicDomain
+license:             MIT
 license-file:        LICENSE
 author:              Karun Ramakrishnan
 maintainer:          karun012@gmail.com
@@ -18,8 +18,8 @@
 
 executable arion
   main-is:             Main.hs
-  build-depends:       base >=4.6 && <4.7,
-                       fsnotify ==0.1.0.3,
+  build-depends:       base >=4.6 && <5,
+                       fsnotify >=0.1.0.3,
                        filemanip,
                        system-filepath,
                        containers,
@@ -27,7 +27,7 @@
                        split,
                        text,
                        safe,
-                       process >= 1.2.0.0,
+                       process >=1.2.0.0,
                        directory,
                        transformers
   other-modules:       Arion.Runner,
@@ -42,9 +42,9 @@
 test-suite test
   default-language:    Haskell2010
   HS-Source-Dirs:      test, src
-  build-depends:       base >=4.6 && <4.7,
+  build-depends:       base >=4.6 && <5,
                        hspec,
-                       fsnotify ==0.1.0.3,
+                       fsnotify >=0.1.0.3,
                        filemanip,
                        time,
                        system-filepath,
@@ -53,7 +53,7 @@
                        split,
                        text,
                        safe,
-                       process >= 1.2.0.0,
+                       process >=1.2.0.0,
                        directory
   type:                exitcode-stdio-1.0
   ghc-options:         -threaded
diff --git a/src/Arion/EventProcessor.hs b/src/Arion/EventProcessor.hs
--- a/src/Arion/EventProcessor.hs
+++ b/src/Arion/EventProcessor.hs
@@ -4,7 +4,7 @@
 ) where
 
 import Arion.Types
-import System.FSNotify
+import System.FSNotify (Event(..))
 import Filesystem.Path.CurrentOS (encodeString)
 import Data.List (isSuffixOf)
 import qualified Data.Map as M
@@ -22,7 +22,7 @@
                                                                Source -> let testFiles = M.lookup filePath sourceToTestFileMap
                                                                          in toCommandCandidates testFiles
                                                                Test -> [filePath]
-                                     in Echo (filePath ++ " changed") : map (CabalCommand . RunHaskell sourceFolder) commandCandidates
+                                     in Echo (filePath ++ " changed") : map (CabalExec . RunHaskell sourceFolder) commandCandidates
         | otherwise = []
 
 toCommandCandidates :: Maybe [TestFile] -> [String]
diff --git a/src/Arion/Runner.hs b/src/Arion/Runner.hs
--- a/src/Arion/Runner.hs
+++ b/src/Arion/Runner.hs
@@ -13,8 +13,8 @@
 import Control.Exception (try, SomeException)
 import Control.Concurrent (forkIO)
 import System.Directory (canonicalizePath)
-import Control.Applicative ((<$>), liftA2, (<*>))
-import Control.Monad ((=<<), liftM2)
+import Control.Applicative ((<$>))
+import Control.Monad ((=<<))
 
 import Arion.Types
 import Arion.EventProcessor
diff --git a/src/Arion/Types.hs b/src/Arion/Types.hs
--- a/src/Arion/Types.hs
+++ b/src/Arion/Types.hs
@@ -12,17 +12,17 @@
 
 import Data.List (isInfixOf)
 import Data.List.Split (splitOn)
-import Text.Regex.Posix
+import Text.Regex.Posix ((=~), getAllTextMatches)
 import Data.Map (Map)
 
 data Command = RunHaskell { sourceFolder :: String, commandString :: String } |
                Echo String |
-               CabalCommand { command :: Command } deriving (Eq)
+               CabalExec { command :: Command } deriving (Eq)
 
 instance Show Command where
     show (RunHaskell sourceFolder commandString) = "runhaskell -- -i" ++ sourceFolder ++ " " ++ commandString
     show (Echo stringToEcho) = "echo " ++ stringToEcho
-    show (CabalCommand command) = "cabal exec " ++ show command
+    show (CabalExec command) = "cabal exec " ++ show command
 
 type FileContent = String
 
@@ -75,6 +75,7 @@
 
 importedModule :: [String] -> String
 importedModule [_, moduleName] = moduleName
+importedModule [_, _, moduleName, _, _] = moduleName
 importedModule _ = ""
 
 getModuleName :: FileContent -> String
diff --git a/src/Arion/Utilities.hs b/src/Arion/Utilities.hs
--- a/src/Arion/Utilities.hs
+++ b/src/Arion/Utilities.hs
@@ -4,7 +4,7 @@
 
 import Arion.Types
 import Data.Map (Map, fromList)
-import Data.List
+import Data.List (union)
 
 associate :: [SourceFile] -> [TestFile] -> Map FilePath [TestFile]
 associate sourceFiles testFiles = let preTransitive = map (createAssociations testFiles) sourceFiles
