diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,1 @@
+TODO
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,51 @@
+# load-env
+
+[![Build Status](https://circleci.com/gh/pbrisbin/load-env/tree/master.png)](https://circleci.com/gh/pbrisbin/load-env)
+
+This is effectively a port of [dotenv][], whose README explains it best:
+
+> Storing configuration in the environment is one of the tenets of a
+> twelve-factor app. Anything that is likely to change between deployment
+> environments–such as resource handles for databases or credentials for
+> external services–should be extracted from the code into environment
+> variables.
+>
+> But it is not always practical to set environment variables on development
+> machines or continuous integration servers where multiple projects are run.
+> dotenv loads variables from a .env file into ENV when the environment is
+> bootstrapped.
+
+[dotenv]: https://github.com/bkeepers/dotenv
+
+This library exposes functions for doing just that.
+
+## Usage
+
+```haskell
+import LoadEnv
+import System.Environment (lookupEnv)
+
+main :: IO ()
+main = do
+    loadEnv
+
+    print =<< lookupEnv "FOO"
+```
+
+```console
+% cat .env
+FOO=bar
+% runhaskell main.hs
+Just "bar"
+```
+
+## Development & Test
+
+```
+stack setup
+stack build --pedantic --test
+```
+
+---
+
+[CHANGELOG](./CHANGELOG.md) | [LICENSE](./LICENSE)
diff --git a/load-env.cabal b/load-env.cabal
--- a/load-env.cabal
+++ b/load-env.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b1f053dbd45894ad7e296e47dd667ef92f771066b17032b259e2f8d68b156898
+-- hash: 2e4f7d0d54d77f91f6586cbaae5aef26c673de9f74d2d3b0447d42773e3630c0
 
 name:           load-env
-version:        0.2.0.0
+version:        0.2.0.1
 synopsis:       Load environment variables from a file.
 description:    Parse a .env file and load any declared variables into the current process's environment. This allows for a .env file to specify development-friendly defaults for configuration values normally set in the deployment environment.
 category:       Configuration
@@ -17,6 +17,9 @@
 license-file:   LICENSE
 build-type:     Simple
 cabal-version:  >= 1.10
+extra-source-files:
+    CHANGELOG.md
+    README.md
 
 source-repository head
   type: git
diff --git a/src/LoadEnv.hs b/src/LoadEnv.hs
--- a/src/LoadEnv.hs
+++ b/src/LoadEnv.hs
@@ -2,16 +2,16 @@
 --
 -- This is effectively a port of dotenv, whose README explains it best:
 --
--- /Storing configuration in the environment is one of the tenets of a
--- twelve-factor app. Anything that is likely to change between deployment
--- environments–such as resource handles for databases or credentials for
--- external services–should be extracted from the code into environment
--- variables./
---
--- /But it is not always practical to set environment variables on development
--- machines or continuous integration servers where multiple projects are run.
--- dotenv loads variables from a .env file into ENV when the environment is
--- bootstrapped./
+-- > Storing configuration in the environment is one of the tenets of a
+-- > twelve-factor app. Anything that is likely to change between deployment
+-- > environments–such as resource handles for databases or credentials for
+-- > external services–should be extracted from the code into environment
+-- > variables.
+-- >
+-- > But it is not always practical to set environment variables on development
+-- > machines or continuous integration servers where multiple projects are run.
+-- > dotenv loads variables from a .env file into ENV when the environment is
+-- > bootstrapped.
 --
 -- <https://github.com/bkeepers/dotenv>
 --
diff --git a/test/LoadEnvSpec.hs b/test/LoadEnvSpec.hs
--- a/test/LoadEnvSpec.hs
+++ b/test/LoadEnvSpec.hs
@@ -39,6 +39,17 @@
 
             lookupEnv "FOO" `shouldReturn` Just "bar"
 
+        it "loads only the nearest file" $ do
+            inTempDirectory $ do
+                writeFile ".env.test" "FOO=\"bar\"\n"
+                inNewDirectory "foo/bar" $ do
+                    writeFile ".env.test" "BAR=\"baz\"\n"
+                    inNewDirectory "baz/bat" $ do
+                        loadEnvFrom ".env.test"
+
+            lookupEnv "BAR" `shouldReturn` Just "baz"
+            lookupEnv "FOO" `shouldReturn` Nothing
+
     describe "loadEnvFromAbsolute" $ do
         it "does not traverse up the directory tree" $ do
             inTempDirectory $ do
