diff --git a/pathwalk.cabal b/pathwalk.cabal
--- a/pathwalk.cabal
+++ b/pathwalk.cabal
@@ -1,5 +1,5 @@
 name:                pathwalk
-version:             0.1.0.0
+version:             0.1.1.0
 synopsis:            Path walking utilities for Haskell programs
 description:         Simple directory tree walking utilities.
 license:             PublicDomain
@@ -15,7 +15,7 @@
     location: https://github.com/Xe/pathwalk
 
 library
-  exposed-modules:     Within.PathWalk
+  exposed-modules:     System.Directory.PathWalk
   build-depends:       base >=4.6 && <4.7, directory >=1.2 && <1.3, filepath >=1.3 && <1.4
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/System/Directory/PathWalk.hs b/src/System/Directory/PathWalk.hs
new file mode 100644
--- /dev/null
+++ b/src/System/Directory/PathWalk.hs
@@ -0,0 +1,33 @@
+module Within.PathWalk where
+
+import Control.Monad (forM_)
+import Data.IORef (newIORef, readIORef, writeIORef)
+import System.Directory (doesDirectoryExist, getDirectoryContents)
+import System.FilePath ((</>))
+
+pathWalk :: FilePath -> (FilePath -> [FilePath] -> [FilePath] -> IO ()) -> IO ()
+pathWalk root callback = do
+    dirs  <- newIORef ([] :: [FilePath])
+    files <- newIORef ([] :: [FilePath])
+    names <- getDirectoryContents root
+    let properNames = filter (`notElem` [".", ".."]) names
+
+    forM_ properNames $ \name -> do
+        isDir <- doesDirectoryExist $ root </> name
+
+        case isDir of
+            True -> do
+                val <- readIORef dirs
+                writeIORef dirs $ val ++ [name]
+            False -> do
+                val <- readIORef files
+                writeIORef files $ val ++ [name]
+
+    cbDirs  <- readIORef dirs
+    cbFiles <- readIORef files
+
+    callback root cbDirs cbFiles
+
+    forM_ cbDirs $ \dir -> do
+        let newPath = root </> dir
+        pathWalk newPath callback
diff --git a/src/Within/PathWalk.hs b/src/Within/PathWalk.hs
deleted file mode 100644
--- a/src/Within/PathWalk.hs
+++ /dev/null
@@ -1,33 +0,0 @@
-module Within.PathWalk where
-
-import Control.Monad (forM_)
-import Data.IORef (newIORef, readIORef, writeIORef)
-import System.Directory (doesDirectoryExist, getDirectoryContents)
-import System.FilePath ((</>))
-
-pathWalk :: FilePath -> (FilePath -> [FilePath] -> [FilePath] -> IO ()) -> IO ()
-pathWalk root callback = do
-    dirs  <- newIORef ([] :: [FilePath])
-    files <- newIORef ([] :: [FilePath])
-    names <- getDirectoryContents root
-    let properNames = filter (`notElem` [".", ".."]) names
-
-    forM_ properNames $ \name -> do
-        isDir <- doesDirectoryExist $ root </> name
-
-        case isDir of
-            True -> do
-                val <- readIORef dirs
-                writeIORef dirs $ val ++ [name]
-            False -> do
-                val <- readIORef files
-                writeIORef files $ val ++ [name]
-
-    cbDirs  <- readIORef dirs
-    cbFiles <- readIORef files
-
-    callback root cbDirs cbFiles
-
-    forM_ cbDirs $ \dir -> do
-        let newPath = root </> dir
-        pathWalk newPath callback
