diff --git a/README.md b/README.md
index 40fe72a..fc9b3fc 100644
--- a/README.md
+++ b/README.md
@@ -15,54 +15,55 @@ old `go1` API.
 ### Using the framework
 
 Synopsis:
+```go
+package main
 
-	package main
+import (
+	"crypto/tls"
+	"fmt"
 
-	import (
-		"crypto/tls"
-		"fmt"
+	irc "github.com/fluffle/goirc/client"
+)
 
-		irc "github.com/fluffle/goirc/client"
-	)
+func main() {
+	// Creating a simple IRC client is simple.
+	c := irc.SimpleClient("nick")
 
-	func main() {
-		// Creating a simple IRC client is simple.
-		c := irc.SimpleClient("nick")
+	// Or, create a config and fiddle with it first:
+	cfg := irc.NewConfig("nick")
+	cfg.SSL = true
+	cfg.SSLConfig = &tls.Config{ServerName: "irc.freenode.net"}
+	cfg.Server = "irc.freenode.net:7000"
+	cfg.NewNick = func(n string) string { return n + "^" }
+	c = irc.Client(cfg)
 
-		// Or, create a config and fiddle with it first:
-		cfg := irc.NewConfig("nick")
-		cfg.SSL = true
-		cfg.SSLConfig = &tls.Config{ServerName: "irc.freenode.net"}
-		cfg.Server = "irc.freenode.net:7000"
-		cfg.NewNick = func(n string) string { return n + "^" }
-		c = irc.Client(cfg)
+	// Add handlers to do things here!
+	// e.g. join a channel on connect.
+	c.HandleFunc(irc.CONNECTED,
+		func(conn *irc.Conn, line *irc.Line) { conn.Join("#channel") })
+	// And a signal on disconnect
+	quit := make(chan bool)
+	c.HandleFunc(irc.DISCONNECTED,
+		func(conn *irc.Conn, line *irc.Line) { quit <- true })
 
-		// Add handlers to do things here!
-		// e.g. join a channel on connect.
-		c.HandleFunc(irc.CONNECTED,
-			func(conn *irc.Conn, line *irc.Line) { conn.Join("#channel") })
-		// And a signal on disconnect
-		quit := make(chan bool)
-		c.HandleFunc(irc.DISCONNECTED,
-			func(conn *irc.Conn, line *irc.Line) { quit <- true })
-
-		// Tell client to connect.
-		if err := c.Connect(); err != nil {
-			fmt.Printf("Connection error: %s\n", err.Error())
-		}
-
-		// With a "simple" client, set Server before calling Connect...
-		c.Config().Server = "irc.freenode.net"
-
-		// ... or, use ConnectTo instead.
-		if err := c.ConnectTo("irc.freenode.net"); err != nil {
-			fmt.Printf("Connection error: %s\n", err.Error())
-		}
-
-		// Wait for disconnect
-		<-quit
+	// Tell client to connect.
+	if err := c.Connect(); err != nil {
+		fmt.Printf("Connection error: %s\n", err.Error())
 	}
 
+	// With a "simple" client, set Server before calling Connect...
+	c.Config().Server = "irc.freenode.net"
+
+	// ... or, use ConnectTo instead.
+	if err := c.ConnectTo("irc.freenode.net"); err != nil {
+		fmt.Printf("Connection error: %s\n", err.Error())
+	}
+
+	// Wait for disconnect
+	<-quit
+}
+```
+
 The test client provides a good (if basic) example of how to use the framework.
 Reading `client/handlers.go` gives a more in-depth look at how handlers can be
 written. Commands to be sent to the server (e.g. PRIVMSG) are methods of the