diff --git a/README.md b/README.md
index 6c49948e95e24f17061dff5d722953d7d32f3409..155b50fbc10e45f43d28237e362e4d7de4c64925 100644
--- a/README.md
+++ b/README.md
@@ -12,20 +12,20 @@ Minimum requirements:
 * Docker 1.13-RC (to support attachable overlay networks)
 * At least a single host in Swarm Mode. (run `docker swarm init`)
 
-* Create an attachable network for the gateway and functions to join
+#### Create an attachable network for the gateway and functions to join
 
 ```
 # docker network create --driver overlay --attachable functions
 ```
 
-* Start the gateway
+#### Start the gateway
 
 ```
 # docker pull alexellisio/faas-gateway:latest
 # docker rm -f gateway; docker run -d -v /var/run/docker.sock:/var/run/docker.sock --name gateway -p 8080:8080 --network=functions alexellisio/faas-gateway:latest
 ```
 
-* Start at least one of the serverless functions:
+#### Start at least one of the serverless functions:
 
 Here we start an echo service using the `cat` command found in a shell.
 
@@ -33,30 +33,30 @@ Here we start an echo service using the `cat` command found in a shell.
 # docker service rm catservice ; docker service create --network=functions --name catservice alexellisio/faas-catservice:latest
 ```
 
-* Now send an event to the API gateway
+#### Now send an event to the API gateway
 
-**Method 1 - use the service name as a URL:**
+* Method 1 - use the service name as a URL:
 
 ```
 # curl -X POST --data-binary @$HOME/.ssh/known_hosts -v http://localhost:8080/function/catservice
 ```
 
-**Method 2 - use the X-Function header:**
+* Method 2 - use the X-Function header:
 
 ```
 # curl -X POST -H 'x-function: catservice' --data-binary @$HOME/.ssh/known_hosts -v http://localhost:8080/
 ```
 
-* Build your own function
+#### Build your own function
 
 Visit the accompanying blog post to find out how to build your own function in whatever programming language you prefer.
 
 [FaaS blog post](http://blog.alexellis.io/functions-as-a-service/)
 
-## Overview
+# Overview
+
+## the gateway
 
-gateway
-=======
 
 This container acts in a similar way to the API Gateway on AWS. Requests can be made to this endpoint with a JSON body.
 
@@ -75,8 +75,8 @@ Features:
 * [todo] unique URL routes for serverless functions
 * instrumentation via Prometheus metrics at GET /metrics
 
-watchdog
-========
+## the watchdog
+
 
 This binary fwatchdog acts as a watchdog for your function. Features:
 
@@ -86,8 +86,7 @@ This binary fwatchdog acts as a watchdog for your function. Features:
 * [todo] Only lets processes run for set duration i.e. 500ms, 2s, 3s.
 * Language/binding independent
 
-Building a development environment:
-===================================
+## Building a development environment:
 
 To use multiple hosts you should push your services (functions) to the Docker Hub or a registry accessible to all nodes.
 
@@ -112,8 +111,6 @@ Accessing the `cat` (read echo) service:
 # curl -X POST -H 'x-function: catservice' --data-binary @/etc/hostname -v http://localhost:8080/
 ```
 
-Prometheus metrics / instrumentation
-====================================
-
-* Standard go metrics and function invocation count / duration are available at http://localhost:8080/metrics/
+## Prometheus metrics / instrumentation
 
+Standard go metrics and function invocation count / duration are available at http://localhost:8080/metrics/