diff --git a/README.md b/README.md
index 5f6967b..d1fab8c 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@
+
+
# Description
diff --git a/src/dirname.hs b/src/dirname.hs
new file mode 100644
index 0000000..b352fc8
--- /dev/null
+++ b/src/dirname.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+import Prelude (IO, String, (.), (==), mapM_, putStrLn)
+import Control.Monad ((>>=))
+import System.Environment (getArgs)
+import Data.Text (Text, breakOnEnd, dropWhileEnd, pack, unpack)
+
+dropFilename :: (Text, Text) -> Text
+dropFilename ("", "") = "."
+dropFilename ("", file) = file
+dropFilename (dir, _file) = dropWhileEnd (== '/') dir
+
+dirname :: String -> String
+dirname = unpack . dropFilename . breakOnEnd "/" . pack
+
+main :: IO ()
+main = getArgs >>= mapM_ (putStrLn . dirname)
+