diff --git a/site/features.md b/site/features.md
index 789fb40b..bd839904 100644
--- a/site/features.md
+++ b/site/features.md
@@ -9,7 +9,7 @@ Weave has a few more features beyond those illustrated by the [basic
example](https://github.com/weaveworks/weave#example):
* [Virtual ethernet switch](#virtual-ethernet-switch)
- * [Manual addressing](#manual-addressing)
+ * [Address allocation](#addressing)
* [Application isolation](#application-isolation)
* [Dynamic network attachment](#dynamic-network-attachment)
* [Security](#security)
@@ -54,13 +54,25 @@ now re-use the same tools and techniques when deploying applications
as containers as we would have done when deploying them 'on metal' in
our data centre.
-### Manual addressing
+### Address allocation
-The examples so far have leveraged weave's [address allocation](ipam.html)
-and [discovery](#dns) features, meaning that we've not had to concern
-ourselves with IP addresses at all. It is, however, possible to
-specify address and network explicitly using [CIDR
-notation](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation)
+Containers are automatically allocated an IP address that is unique
+across the weave network. You can see which address was allocated with
+[`weave ps`](troubleshooting.html#list-attached-containers):
+
+ host1$ weave ps a1
+ a7aee7233393 7a:44:d3:11:10:70 10.128.0.2/10
+
+Weave detects when a container has exited and releases its
+automatically allocated addresses so they can be re-used.
+
+See the [Automatic IP Address Management](#ipam) documentation for
+further details.
+
+Instead of getting weave to allocate IP addresses automatically, it is
+also possible to specify an address and network explicitly, expressed
+in
+[CIDR notation](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation)
- let's see how the first example would have looked:
On $HOST1:
diff --git a/site/ipam.md b/site/ipam.md
index e1d9c22d..295bbf93 100644
--- a/site/ipam.md
+++ b/site/ipam.md
@@ -5,10 +5,13 @@ layout: default
# Automatic IP Address Management
-Weave can automatically assign containers an IP address that is unique
-across the network.
+Weave automatically assigns containers an IP address that is unique
+across the network, and releases that address when a container
+exits. This happens for all invocations of the `run`, `start`,
+`attach`, `detach`, `expose`, `hide` and `launch-dns` commands, unless
+the user explictly specified an address. Weave can also assign
+addresses in multiple subnets.
- * [Usage](#usage)
* [Initialisation](#initialisation)
* [Choosing an allocation range](#range)
* [Automatic allocation across multiple subnets](#subnets)
@@ -16,27 +19,6 @@ across the network.
* [Stopping and removing peers](#stop)
* [Troubleshooting](#troubleshooting)
-## Usage
-
-Containers are automatically allocated an IP address when none is
-specified when the container is started, e.g.
-
- host1$ weave launch && weave launch-proxy
- host1$ eval $(weave proxy-env)
- host1$ C=$(docker run -ti ubuntu)
-
-You can see which address was allocated with
-[`weave ps`](troubleshooting.html#list-attached-containers):
-
- host1$ weave ps $C
- a7aff7249393 7a:51:d1:09:21:78 10.128.0.1/10
-
-Weave detects when a container has exited and releases its
-automatically allocated addresses so they can be re-used.
-
-Automatic IP address assignment is available for the `run`, `start`,
-`attach`, `detach`, `expose`, `hide` and `launch-dns` commands.
-
## Initialisation
Just once, when the first automatic IP address allocation is requested