diff --git a/boots-app.cabal b/boots-app.cabal
--- a/boots-app.cabal
+++ b/boots-app.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.12
 name: boots-app
-version: 0.1
+version: 0.1.0.1
 license: MIT
 license-file: LICENSE
 copyright: 2019 Daniel YU
@@ -32,7 +32,7 @@
     ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures
     build-depends:
         base >=4.10 && <5,
-        boots ==0.1.*,
+        boots >=0.1.1 && <0.2,
         data-default >=0.7.1.1 && <0.8,
         exceptions >=0.10.2 && <0.11,
         fast-logger >=2.4.16 && <2.5,
@@ -64,7 +64,7 @@
     ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures
     build-depends:
         base >=4.10 && <5,
-        boots ==0.1.*,
+        boots >=0.1.1 && <0.2,
         data-default >=0.7.1.1 && <0.8,
         exceptions >=0.10.2 && <0.11,
         fast-logger >=2.4.16 && <2.5,
diff --git a/src/Boots/Factory/Application.hs b/src/Boots/Factory/Application.hs
--- a/src/Boots/Factory/Application.hs
+++ b/src/Boots/Factory/Application.hs
@@ -11,7 +11,7 @@
 import           Boots.Factory.Salak
 import           Control.Concurrent.MVar
 import           Data.Maybe
-import           Data.String             (fromString)
+import           Data.String
 import           Data.Text               (Text)
 import           Data.Version            (Version)
 import           Data.Word
@@ -37,7 +37,6 @@
   { name       :: Text    -- ^ Service name.
   , instanceId :: Text    -- ^ Instance id.
   , version    :: Version -- ^ Service version.
-  , tags       :: [Text]  -- ^ Service tags.
   , randSeed   :: MVar SMGen -- ^ Random seed
   , configure  :: Salak
   , logF       :: LogFunc
@@ -48,10 +47,9 @@
   configure  <- buildSalak confName
   within configure $ do
     name       <- fromMaybe (fromString confName) <$> require "application.name"
-    logF       <- buildLogger name
-    tags       <- require "application.tags"
     randSeed   <- offer $ liftIO $ initSMGen >>= newMVar
     instanceId <- offer $ liftIO $ hex64 <$> random64 randSeed
+    logF       <- buildLogger (name <> "," <> instanceId)
     return AppEnv{..}
 
 random64 :: MVar SMGen -> IO Word64
@@ -59,13 +57,13 @@
   where
     go (a,b) = (b,a)
 
-hex64 :: Word64 -> Text
+hex64 :: IsString a => Word64 -> a
 hex64 i = fromString $ let x = showHex i "" in replicate (16 - length x) '0' ++ x
 
-rand64 :: MonadIO m => MVar SMGen -> m Text
+rand64 :: (IsString a, MonadIO m) => MVar SMGen -> m a
 rand64 = liftIO . fmap hex64 . random64
 
-buildRandom :: (MonadIO m, HasApp env) => Factory m env Text
+buildRandom :: (IsString a, MonadIO m, HasApp env) => Factory m env a
 buildRandom = do
   AppEnv{..} <- asks (view askApp)
   offer $ rand64 randSeed
diff --git a/src/Boots/Factory/Logger.hs b/src/Boots/Factory/Logger.hs
--- a/src/Boots/Factory/Logger.hs
+++ b/src/Boots/Factory/Logger.hs
@@ -4,7 +4,16 @@
   , LogFunc
   , addTrace
   , buildLogger
+  -- ** Log Functions
   , MonadLogger(..)
+  , MonadLoggerIO(..)
+  , runLoggingT
+  , logInfo
+  , logDebug
+  , logError
+  , logWarn
+  , logOther
+  , LogLevel(..)
   ) where
 
 import           Boots.App.Internal
@@ -34,15 +43,15 @@
     LogFunc{..} <- asks (view askLogger)
     liftIO $ logfunc a b c (toLogStr d)
 
-instance (MonadIO m, HasLogger cxt) => MonadLogger (AppT cxt m) where
+instance (MonadIO m, HasLogger env) => MonadLogger (AppT env m) where
   monadLoggerLog a b c d = do
     LogFunc{..} <- asks (view askLogger)
     liftIO $ logfunc a b c (toLogStr d)
 
-instance (MonadIO m, HasLogger cxt) => MonadLoggerIO (Factory m cxt) where
+instance (MonadIO m, HasLogger env) => MonadLoggerIO (Factory m env) where
   askLoggerIO = logfunc <$> asks (view askLogger)
 
-instance (MonadIO m, HasLogger cxt) => MonadLoggerIO (AppT cxt m) where
+instance (MonadIO m, HasLogger env) => MonadLoggerIO (AppT env m) where
   askLoggerIO = logfunc <$> asks (view askLogger)
 
 instance Monad m => FromProp m LogLevel where
