diff --git a/src/Yam/Prop.hs b/src/Yam/Prop.hs
--- a/src/Yam/Prop.hs
+++ b/src/Yam/Prop.hs
@@ -22,6 +22,7 @@
 
 import           Data.Aeson          (Result (..), fromJSON)
 import           Data.Aeson.Types
+import           Data.Either         (either)
 import qualified Data.HashMap.Strict as M
 import           Data.List           (foldl')
 import qualified Data.Text           as T
@@ -88,7 +89,7 @@
     then do
       size <- liftIO $ getFileSize file
       if size > 0 then
-        Just . (cs file,) <$> (liftIO (decodeFile file) >>= maybe (throwM $ FileLoadFailed file) return)
+        Just . (cs file,) <$> (liftIO (decodeFileEither file) >>= either (\_ -> throwM $ FileLoadFailed file) return)
       else return Nothing
     else return Nothing
 
diff --git a/src/Yam/Transaction.hs b/src/Yam/Transaction.hs
--- a/src/Yam/Transaction.hs
+++ b/src/Yam/Transaction.hs
@@ -27,6 +27,7 @@
 import           Yam.Import
 import           Yam.Logger
 
+import           Control.Monad.IO.Unlift
 import           Control.Monad.Trans.Control (MonadBaseControl)
 import           Data.Acquire                (with)
 import           Data.Aeson
@@ -74,7 +75,7 @@
 type DataSourceProvider  m a = (Text, DataSourceConnector m a)
 
 class HasDataSource ds where
-  connector :: (MonadTransaction m, MonadThrow m) => Proxy ds -> DataSourceConnector m a
+  connector :: (MonadTransaction m, MonadUnliftIO m) => Proxy ds -> DataSourceConnector m a
 
 data DataSourceException = DataSourcePoolNotFound Text
                          | DataSourceNotSupported Text
diff --git a/src/Yam/Transaction/Sqlite.hs b/src/Yam/Transaction/Sqlite.hs
--- a/src/Yam/Transaction/Sqlite.hs
+++ b/src/Yam/Transaction/Sqlite.hs
@@ -3,10 +3,11 @@
 
 module Yam.Transaction.Sqlite where
 
-import           Control.Monad.Logger    (runLoggingT)
 import           Yam.Import
 import           Yam.Transaction
 
+import           Control.Monad.IO.Unlift
+import           Control.Monad.Logger    (runLoggingT)
 import           Database.Persist.Sqlite
 
 
@@ -15,7 +16,7 @@
 instance HasDataSource SQLite where
   connector _ logger ds a = runLoggingT (withSqlitePool (conn ds) (toThread ds) (lift.a)) logger
     where toThread d | conn d == conn def = 1
-                     | otherwise           = thread d
+                     | otherwise          = thread d
 
-sqliteProvider :: (MonadTransaction m, MonadThrow m) => DataSourceProvider m a
+sqliteProvider :: (MonadTransaction m, MonadUnliftIO m) => DataSourceProvider m a
 sqliteProvider = ("sqlite", connector (Proxy :: Proxy SQLite))
diff --git a/yam-app.cabal b/yam-app.cabal
--- a/yam-app.cabal
+++ b/yam-app.cabal
@@ -1,5 +1,5 @@
 name:                yam-app
-version:             0.1.11
+version:             0.1.13
 synopsis:            Yam App
 description:         Base Module for Yam
 homepage:            https://github.com/leptonyu/yam/tree/master/yam-app#readme
@@ -47,6 +47,7 @@
                      , conduit
                      , resourcet
                      , mtl
+                     , unliftio-core
   default-language:    Haskell2010
 
 source-repository head
