diff --git a/README.md b/README.md
index 200ae7214bf97baa8167475c51e4ddcf5397ace5..e7589afb6c554e95cc619b9e252fa557ef89b466 100644
--- a/README.md
+++ b/README.md
@@ -32,9 +32,7 @@ go get nhooyr.io/ws@master
 ```go
 func main() {
 	fn := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-		c, err := ws.Accept(w, r,
-			ws.AcceptSubprotocols("echo"),
-		)
+		c, err := ws.Accept(w, r)
 		if err != nil {
 			log.Printf("server handshake failed: %v", err)
 			return
@@ -44,11 +42,8 @@ func main() {
 		ctx, cancel := context.WithTimeout(r.Context(), time.Second*10)
 		defer cancel()
 
-		type myJsonStruct struct {
-			MyField string `json:"my_field"`
-		}
-		err = wsjson.Write(ctx, c, myJsonStruct{
-			MyField: "foo",
+		err = wsjson.Write(ctx, c, map[string]interface{}{
+			"my_field": "foo",
 		})
 		if err != nil {
 			log.Printf("failed to write json struct: %v", err)
@@ -63,7 +58,7 @@ func main() {
 	if err != nil {
 		log.Fatalf("failed to listen and serve: %v", err)
 	}
-}
+ }
 ```
 
 ### Client
@@ -80,11 +75,8 @@ func main() {
 	}
 	defer c.Close(ws.StatusInternalError, "")
 
-	type myJsonStruct struct {
-		MyField string `json:"my_field"`
-	}
-	err = wsjson.Write(ctx, c, myJsonStruct{
-		MyField: "foo",
+	err = wsjson.Write(ctx, c, map[string]interface{}{
+		"my_field": "foo",
 	})
 	if err != nil {
 		log.Fatalf("failed to write json struct: %v", err)
diff --git a/example_test.go b/example_test.go
index 882302a3050a4bbb7bacd793e8964d828329c6c9..e37a390b60d37be6526700342dc8ff47488716a1 100644
--- a/example_test.go
+++ b/example_test.go
@@ -75,9 +75,7 @@ func ExampleAccept_echo() {
 
 func ExampleAccept() {
 	fn := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-		c, err := ws.Accept(w, r,
-			ws.AcceptSubprotocols("echo"),
-		)
+		c, err := ws.Accept(w, r)
 		if err != nil {
 			log.Printf("server handshake failed: %v", err)
 			return
@@ -87,11 +85,8 @@ func ExampleAccept() {
 		ctx, cancel := context.WithTimeout(r.Context(), time.Second*10)
 		defer cancel()
 
-		type myJsonStruct struct {
-			MyField string `json:"my_field"`
-		}
-		err = wsjson.Write(ctx, c, myJsonStruct{
-			MyField: "foo",
+		err = wsjson.Write(ctx, c, map[string]interface{}{
+			"my_field": "foo",
 		})
 		if err != nil {
 			log.Printf("failed to write json struct: %v", err)
@@ -119,11 +114,8 @@ func ExampleDial() {
 	}
 	defer c.Close(ws.StatusInternalError, "")
 
-	type myJsonStruct struct {
-		MyField string `json:"my_field"`
-	}
-	err = wsjson.Write(ctx, c, myJsonStruct{
-		MyField: "foo",
+	err = wsjson.Write(ctx, c, map[string]interface{}{
+		"my_field": "foo",
 	})
 	if err != nil {
 		log.Fatalf("failed to write json struct: %v", err)