diff --git a/contrib/HACK.md b/contrib/HACK.md
index 7b5acba3a2c0b04055ed92c458b8d7f115a4867a..c460c7813c6769891aa351cad3849a46ae24e3db 100644
--- a/contrib/HACK.md
+++ b/contrib/HACK.md
@@ -15,11 +15,11 @@ This creates a Docker image with the name `functions/gateway:latest-dev`, but if
 
 Test. Repeat.
 
-## Hack on the UI for the API Gateway
+## Work on the UI the quick way
 
-To hack on the UI without rebuilding the gateway mount the assets in a bind-mount like this:
+Working on the UI with the procedure above could take up to a minute to iterate between changing code and testing the changes. This section of the post shows how to bind-mount the UI assets into the API gateway as a separate container.
 
-Remove the Docker stack, then create the faas network as "attachable":
+Remove the Docker stack, then re-define the faas network as "attachable":
 
 ```
 $ docker stack rm func
@@ -35,11 +35,14 @@ networks:
             name: func_functions
 ```
 
-Now you can run the gateway as its own container and bind-mount in the HTML assets.
+Now deploy the rest of the stack with: `./deploy_stack.sh`.
+
+Now you can run the gateway as its own container via `docker run` and bind-mount in the HTML assets.
 
 ```
-$ docker run -v `pwd`/gateway/assets:/root/assets -v "/var/run/docker.sock:/var/run/docker.sock" \
--p 8080:8080 --network=func_functions -d functions/gateway:latest-dev
+$ docker service rm func_gateway
+$ docker run --name func_gateway -v `pwd`/gateway/assets:/root/assets \
+  -v "/var/run/docker.sock:/var/run/docker.sock" \
+  -p 8080:8080 --network=func_functions \
+  -d functions/gateway:latest-dev
 ```
-
-Now deploy the rest of the stack with: `./deploy_stack.sh`.