diff --git a/README.md b/README.md
index 7890c50..ebfd0fa 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
 # Glide: Vendor Package Management for Golang
 
+Are you used to tools such as Cargo, npm, Composer, Nuget, Pip, Maven, Bunder,
+or other modern package managers? If so, Glide is the comparable Go tool.
+
 *Manage your vendor and vendored packages with ease.* Glide is a tool for
 managing the `vendor` directory within a Go package. This feature, first
 introduced in Go 1.5, allows each package to have a `vendor` directory
@@ -36,7 +39,10 @@
 to the `vendor` directory. It then recursively walks through the downloaded
 packages looking for those with a `glide.yaml` file (or Godep, gb, or GPM config
 file) that don't already have a `vendor` directory and installing their
-dependencies to their `vendor` directories.
+dependencies to their `vendor` directories. Once Glide has downloaded and figured
+out versions to use in the dependency tree it creates a `glide.lock` file
+containing the complete dependency tree pinned to specific versions. To install
+the correct versions use `glide install`.
 
 A projects is structured like this:
 
@@ -45,6 +51,8 @@
   |
   |-- glide.yaml
   |
+  |-- glide.lock
+  |
   |-- main.go (Your main go code can live here)
   |
   |-- mySubpackage (You can create your own subpackages, too)
@@ -102,40 +110,46 @@
 Check out the `glide.yaml` in this directory, or examples in the `docs/`
 directory.
 
-### glide create [optional package name]
+### glide create (aliased to init)
 
-Initialize a new workspace. Among other things, this creates a stub
-`glide.yaml`
+Initialize a new workspace. Among other things, this creates a `glide.yaml` file
+while attempting to guess the packages and versions to put in it. For example,
+if your project is using Godep it will use the versions specified there. Glide
+is smart enough to scan your codebase and detect the imports being used whether
+they are specified with another package manager or not.
 
 ```
 $ glide create
-[INFO] Initialized. You can now edit 'glide.yaml'
+[INFO] Generating a YAML configuration file and guessing the dependencies
+[INFO] Attempting to import from other package managers (use --skip-import to skip)
+[INFO] Found reference to github.com/Sirupsen/logrus
+[INFO] Adding sub-package hooks/syslog to github.com/Sirupsen/logrus
+[INFO] Found reference to github.com/boltdb/bolt
+[INFO] Found reference to github.com/gorilla/websocket
+[INFO] Found reference to github.com/mndrix/ps
+[INFO] Found reference to github.com/spf13/cobra
+[INFO] Found reference to github.com/spf13/pflag
+[INFO] Found reference to github.com/tinylib/msgp/msgp
+[INFO] Found reference to github.com/unrolled/secure
+[INFO] Found reference to github.com/xeipuuv/gojsonschema
+[INFO] Found reference to github.com/zenazn/goji/graceful
+[INFO] Adding sub-package web to github.com/zenazn/goji
+[INFO] Adding sub-package web/mutil to github.com/zenazn/goji
 ```
 
-If an optional package name is specified, Glide will add it to
-glide.yaml as the name of your project.
-
 ### glide get [package name]
 
-You can download package to your `vendor` directory and have it added to your
+You can download one or more packages to your `vendor` directory and have it added to your
 `glide.yaml` file with `glide get`.
 
 ```
 $ glide get github.com/Masterminds/cookoo
 ```
 
-### glide guess and glide pin
+When `glide get` is used it will introspect the listed package to resolve its
+dependencies including using Godep, GPM, and GB config files.
 
-To help with the creating and managing your `glide.yaml` files there are two
-more helper commands. The `glide guess` command will look over your project,
-read the imports, attempt to intelligently guess at the ones you need to list,
-and create the text for a `glide.yaml` file.
-
-There are times you need to pin a dependency to a version, such as when you're
-preparing to deploy to production. For that case there is the `glide pin` command
-that will pin each dependency in the `glide.yaml` file to the current commit id.
-
-### glide up (aliased to update and install)
+### glide update (aliased to up)
 
 Download or update all of the libraries listed in the `glide.yaml` file and put
 them in the `vendor` directory. It will also recursively walk through the
@@ -148,6 +162,30 @@
 This will recurse over the packages looking for other projects managed by Glide,
 Godep, gb, and GPM. When one is found those packages will be installed as needed.
 
+A `glide.lock` file will be created or updated with the dependencies pinned to
+specific versions. For example, if in the `glide.yaml` file a version was
+specified as a range (e.g., `^1.2.3`) it will be set to a specific commit id in
+the `glide.lock` file. That allows for reproducible installs (see `glide install`).
+
+### glide install
+
+When you want to install the specific versions from the `glide.lock` file use
+`glide install`.
+
+```
+$ glide install
+```
+
+This will read the `glide.lock` file, making sure it's tied to the `glide.yaml`
+file, and install the commit id specific versions there.
+
+When the `glide.lock` file doesn't tie to the `glide.yaml` file, such as there
+being a change, it will provide an error. Running `glide up` will recreate the
+`glide.lock` file when updating the dependency tree.
+
+If no `glide.lock` file is present `glide install` will perform an `update` and
+generate a lock file.
+
 ## glide novendor (aliased to nv)
 
 When you run commands like `go test ./...` it will iterate over all the
@@ -238,21 +276,17 @@
 
 ```
 $ glide list
-github.com/Masterminds/cookoo (Location: vendored)
-github.com/Masterminds/cookoo/io (Location: vendored)
-github.com/Masterminds/glide/cmd (Location: gopath)
-github.com/Masterminds/glide/gb (Location: gopath)
-github.com/Masterminds/glide/util (Location: gopath)
-github.com/Masterminds/glide/yaml (Location: gopath)
-github.com/Masterminds/semver (Location: vendored)
-github.com/Masterminds/vcs (Location: vendored)
-github.com/codegangsta/cli (Location: vendored)
-gopkg.in/yaml.v2 (Location: vendored)
+INSTALLED packages:
+	vendor/github.com/Masterminds/cookoo
+	vendor/github.com/Masterminds/cookoo/fmt
+	vendor/github.com/Masterminds/cookoo/io
+	vendor/github.com/Masterminds/cookoo/web
+	vendor/github.com/Masterminds/semver
+	vendor/github.com/Masterminds/vcs
+	vendor/github.com/codegangsta/cli
+	vendor/gopkg.in/yaml.v2
 ```
 
-The possible locations for `list` are `vendored`, `gopath`, and `missing` (if
-the package is not installed anywhere accessible).
-
 ### glide help
 
 Print the glide help.
@@ -267,7 +301,7 @@
 
 ```
 $ glide --version
-glide version 0.7.0
+glide version 0.8.0
 ```
 
 ### glide.yaml
@@ -347,7 +381,16 @@
 The Git, SVN, Mercurial (Hg), and Bzr source control systems are supported. This
 happens through the [vcs package](https://github.com/masterminds/vcs).
 
-## Troubleshooting
+## Frequently Asked Questions (F.A.Q.)
+
+#### Q: Why does Glide have the concept of sub-packages when Go doesn't?
+
+In Go every directory is a package. This works well when you have one repo
+containing all of your packages. When you have different packages in different
+VCS locations things become a bit more complicated. A project containing a
+collection of packages should be handled with the same information including
+the version. By grouping packages this way we are able to manage the related
+information.
 
 #### Q: bzr (or hg) is not working the way I expected. Why?
 
@@ -379,7 +422,7 @@
 You can write it to file like this:
 
 ```
-$ glide import godep > new-glide.yaml
+$ glide import godep -f glide.yaml
 ```
 
 #### Q: Can Glide fetch a package based on OS or Arch?
diff --git a/glide.go b/glide.go
index b0a064f..b568270 100644
--- a/glide.go
+++ b/glide.go
@@ -145,7 +145,7 @@
 		},
 		{
 			Name:  "get",
-			Usage: "Install one or more package into `vendor/` and add dependency to glide.yaml.",
+			Usage: "Install one or more packages into `vendor/` and add dependency to glide.yaml.",
 			Description: `Gets one or more package (like 'go get') and then adds that file
 	to the glide.yaml file. Multiple package names can be specified on one line.
 
@@ -154,19 +154,14 @@
 	The above will install the project github.com/Masterminds/cookoo and add
 	the subpackage 'web'.
 
-	If a fetched dependency has a glide.yaml file, 'get' will also install
-	all of the dependencies for that dependency. Those are installed in a scoped
-	vendor directory. So dependency vendor/foo/bar has its dependencies stored
-	in vendor/foo/bar/vendor. This behavior can be disabled using
-	'--no-recursive'
+	If a fetched dependency has a glide.yaml file, configuration from Godep,
+	GPM, or GB Glide that configuration will be used to find the dependencies
+	and versions to fetch. If those are not available the dependent packages will
+	be fetched as either a version specified elsewhere or the latest version.
 
-	If '--import' is set, this will also read the dependency projects, looking
-	for gb, Godep and GPM files. When it finds them, it will build a comparable
-	glide.yaml file, and then fetch all of the necessary dependencies. The
-	dependencies are then vendored in the appropriate project. Subsequent calls
-	to 'glide up' will use the glide.yaml to maintain those dependencies.
-	However, only if you call 'glide up --import' will the glide file be
-	rebuilt. When '--no-recursive' is used, '--import' does nothing.
+	When adding a new dependency Glide will perform an update to work out the
+	the versions to use from the dependency tree. This will generate an updated
+	glide.lock file with specific locked versions to use.
 	`,
 			Flags: []cli.Flag{
 				cli.BoolFlag{
