diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c69870675fce858cf5f50ead2b4e525b04c7eabe
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+img/motivation-throwaway-playground.svg
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..8d830125fbad73a9f839b35b811b9b1a88d9419e
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,23 @@
+SUBDIRS = \
+	img
+
+$(SUBDIRS):
+	$(MAKE) -C $@
+
+all: subdirs
+
+clean:
+	for dir in $(SUBDIRS); do \
+	  $(MAKE) -C $$dir $@; \
+	done
+
+default: all
+
+subdirs: $(SUBDIRS)
+
+.PHONY: \
+	$(SUBDIRS) \
+	all \
+	clean \
+	default \
+	subdirs
diff --git a/basics.html b/basics.html
index fc684cf48cb6aa90c537ba2e0f910018c00c581d..b3a53bf53d9128747e7006b71b00f3b4a311c69d 100644
--- a/basics.html
+++ b/basics.html
@@ -43,20 +43,34 @@
             - show scenarios
           </section>
 
-          <section id="avoid" data-markdown>
-            ## motivation
-            ### avoid this
+          <section id="intro-motivation-avoid-mess" data-markdown>
+            ## motivation #1
+            ### avoid mess
 
             ![blah](img/draft_mess.png)
           </section>
 
-          <section id="avoid" data-markdown>
-            ## motivation
-            ### want this
+          <section id="intro-motivation-want-structure" data-markdown>
+            ## motivation #1
+            ### want structure
 
             ![blah](img/gitk-pretty-history.png)
           </section>
 
+          <section id="intro-motivation-playground" data-markdown>
+            ## motivation #2
+            ### throw-away playgrounds
+
+            ![playground](img/motivation-throwaway-playground.svg)
+
+            notes:
+            - test stuff without interfering
+              - throw away if garbage
+              - integrate if good
+            - switch back and forth
+            - (done right) decision based on regression testing
+          </section>
+
           <section id="audience" data-markdown>
             ## audience
 
diff --git a/img/Makefile b/img/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..899a7796549857b526ff135fbd0d3e8dd1cf6a50
--- /dev/null
+++ b/img/Makefile
@@ -0,0 +1,23 @@
+SOURCES_DOT = $(wildcard *.dot)
+
+OBJECTS_DOT_SVG = $(SOURCES_DOT:.dot=.svg)
+
+OBJECTS = \
+	$(OBJECTS_DOT_SVG)
+
+%.svg: %.dot
+	dot -Tsvg -o $@ $<
+
+$(OBJECTS):
+
+all: $(OBJECTS)
+
+clean:
+	rm -f $(OBJECTS)
+
+default: all
+
+.PHONY: \
+	all \
+	clean \
+	default
diff --git a/img/motivation-throwaway-playground.dot b/img/motivation-throwaway-playground.dot
new file mode 100644
index 0000000000000000000000000000000000000000..5b66168ccef7c5094a26a46651eff1f14a8b9411
--- /dev/null
+++ b/img/motivation-throwaway-playground.dot
@@ -0,0 +1,28 @@
+digraph {
+    node [shape = "box", style = "filled, rounded"]
+
+    subgraph clustermaster {
+        label = "master"
+
+        node [color = limegreen]
+
+        master3[label = "ebe0262"]
+        master2[label = "03f4f8d"]
+        master1[label = "62a0ee9"]
+
+        master3 -> master2 -> master1
+    }
+
+    subgraph clusterplayground {
+        label = "playground"
+
+        node [color = orchid]
+
+        playground2[label = "8b29f74"]
+        playground1[label = "7f295dd"]
+
+        playground2 -> playground1
+    }
+
+    playground1 -> master2
+}