diff --git a/app/ZipkinExample.hs b/app/ZipkinExample.hs
--- a/app/ZipkinExample.hs
+++ b/app/ZipkinExample.hs
@@ -1,27 +1,15 @@
-{-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE OverloadedStrings #-}
 
--- | A simple tracing example which outputs traces to stdout.
---
--- It also showcases how to trace calls across threads.
+{-| A simple tracing example which publishes traces to a local Zipkin server. -}
 module Main where
 
 import Control.Concurrent (threadDelay)
 import Control.Monad (void)
 import Monitor.Tracing
 import qualified Monitor.Tracing.Zipkin as Zipkin
-import qualified Net.IPv4 as IPv4
 
-example1 :: MonadTrace m => m ()
-example1 = Zipkin.rootSpan Zipkin.Deny "example1" $ do
-  Zipkin.annotate "TEST_LOG0"
-  Zipkin.localSpan "nested1" $ Zipkin.tag "TEST_TAG1" "12"
-  Zipkin.localSpan "nested2" $ do
-    Zipkin.tag "TEST_TAG2" "a.2"
-    Zipkin.localSpan "nestednsted" $ Zipkin.tag "TEST_TAG3" ""
-
-example2 :: (MonadTrace m, MonadUnliftIO m) => m ()
-example2 = Zipkin.rootSpan Zipkin.Accept "something" $ do
+example :: (MonadTrace m, MonadUnliftIO m) => m ()
+example = Zipkin.rootSpan Zipkin.Accept "something" $ do
   Zipkin.annotate "log2"
   Zipkin.tag "tag2" "def"
   liftIO $ threadDelay 100000
@@ -37,9 +25,7 @@
 main = do
   zipkin <- Zipkin.new $ Zipkin.defaultSettings
     { Zipkin.settingsEndpoint = Just $ Zipkin.defaultEndpoint
-      { Zipkin.endpointService = Just "print-spans"
-      , Zipkin.endpointIPv4 = Just IPv4.localhost }
+      { Zipkin.endpointService = Just "print-spans" }
     , Zipkin.settingsHost = "localhost" }
-  Zipkin.run zipkin example1
-  Zipkin.run zipkin example2
+  Zipkin.run zipkin example
   Zipkin.publish zipkin
diff --git a/tracing.cabal b/tracing.cabal
--- a/tracing.cabal
+++ b/tracing.cabal
@@ -1,5 +1,5 @@
 name:                tracing
-version:             0.0.1.0
+version:             0.0.1.1
 synopsis:            Distributed tracing
 description:         https://github.com/mtth/tracing
 homepage:            https://github.com/mtth/tracing
