diff --git a/_examples/peer-client.go b/_examples/peer-client.go
new file mode 100644
index 0000000..165b740
--- /dev/null
+++ b/_examples/peer-client.go
@@ -0,0 +1,24 @@
+package main
+
+import (
+	"fmt"
+	"github.com/guelfey/go.dbus"
+)
+
+func main() {
+	conn, err := dbus.Dial("unix:path=./socket")
+	if err != nil {
+		panic(err)
+	}
+	fmt.Println("Connected on unix:path=./socket")
+
+	err = conn.Auth(nil)
+	if err != nil {
+		panic(err)
+	}
+
+	obj := conn.Object("", "/com/github/guelfey/Demo/PeerServer")
+	var r string
+	err = obj.Call("com.github.guelfey.PeerServer.Foo", 0, int32(42)).Store(&r)
+	fmt.Printf("Got reply: %s\n", r)
+}
diff --git a/_examples/peer-server.go b/_examples/peer-server.go
new file mode 100644
index 0000000..4902e4a
--- /dev/null
+++ b/_examples/peer-server.go
@@ -0,0 +1,53 @@
+package main
+
+import (
+	"fmt"
+	"github.com/guelfey/go.dbus"
+	"github.com/guelfey/go.dbus/introspect"
+	"os"
+)
+
+const intro = `
+<node>
+	<interface name="com.github.guelfey.PeerServer">
+		<method name="Foo">
+			<arg direction="in" type="i"/>
+			<arg direction="out" type="s"/>
+		</method>
+	</interface>` + introspect.IntrospectDataString + `</node> `
+
+type foo string
+
+func (f foo) Foo(val int32) (string, *dbus.Error) {
+	s := fmt.Sprintf("%s %d", f, val)
+	fmt.Println(s)
+	return s, nil
+}
+
+type handler struct {
+	f foo
+}
+
+func (h handler) GotConnection(server dbus.Server, conn *dbus.Conn) {
+	conn.Export(h.f, "/com/github/guelfey/Demo/PeerServer", "com.github.guelfey.PeerServer")
+	conn.Export(introspect.Introspectable(intro), "/com/github/guelfey/Demo/PeerServer",
+		"org.freedesktop.DBus.Introspectable")
+	if err := conn.ServerAuth(nil, server.Uuid()); err != nil {
+		panic(err)
+	}
+}
+
+func main() {
+	err := os.Remove("socket")
+	if err != nil && !os.IsNotExist(err) {
+		panic(err)
+	}
+	server, err := dbus.NewServer("unix:path=./socket", "1234567890123456")
+	if err != nil {
+		panic(err)
+	}
+	fmt.Println("Listening on unix:path=./socket")
+
+	h := handler{foo("Bar!")}
+	dbus.Serve(server, h)
+}
