diff --git a/metropolis/node/core/delve_enabled.go b/metropolis/node/core/delve_enabled.go
index 9df937d..0bd546f 100644
--- a/metropolis/node/core/delve_enabled.go
+++ b/metropolis/node/core/delve_enabled.go
@@ -35,7 +35,7 @@
 		// Delve for some reason connects to itself and in early-boot no
 		// network interface is available to do that through. Also external
 		// access isn't possible early on anyways.
-		watcher := networkSvc.Watch()
+		watcher := networkSvc.Status.Watch()
 		_, err := watcher.Get(context.Background())
 		if err != nil {
 			panic(err)
diff --git a/metropolis/node/core/network/BUILD.bazel b/metropolis/node/core/network/BUILD.bazel
index a9a6309..52e4614 100644
--- a/metropolis/node/core/network/BUILD.bazel
+++ b/metropolis/node/core/network/BUILD.bazel
@@ -14,7 +14,6 @@
         "//metropolis/node/core/network/dhcp4c",
         "//metropolis/node/core/network/dhcp4c/callback",
         "//metropolis/node/core/network/dns",
-        "//metropolis/pkg/event",
         "//metropolis/pkg/event/memory",
         "//metropolis/pkg/logtree",
         "//metropolis/pkg/supervisor",
diff --git a/metropolis/node/core/network/hostsfile/hostsfile.go b/metropolis/node/core/network/hostsfile/hostsfile.go
index 660cf3b..48f4f18 100644
--- a/metropolis/node/core/network/hostsfile/hostsfile.go
+++ b/metropolis/node/core/network/hostsfile/hostsfile.go
@@ -149,7 +149,8 @@
 	localC := make(chan *network.Status)
 	s.clusterC = make(chan nodeMap)
 
-	if err := supervisor.Run(ctx, "local", event.Pipe(s.Network.Value(), localC)); err != nil {
+	st := &s.Network.Status
+	if err := supervisor.Run(ctx, "local", event.Pipe(st, localC)); err != nil {
 		return err
 	}
 	if err := supervisor.Run(ctx, "cluster", s.runCluster); err != nil {
diff --git a/metropolis/node/core/network/main.go b/metropolis/node/core/network/main.go
index f420d55..7426ee4 100644
--- a/metropolis/node/core/network/main.go
+++ b/metropolis/node/core/network/main.go
@@ -30,7 +30,6 @@
 	"source.monogon.dev/metropolis/node/core/network/dhcp4c"
 	dhcpcb "source.monogon.dev/metropolis/node/core/network/dhcp4c/callback"
 	"source.monogon.dev/metropolis/node/core/network/dns"
-	"source.monogon.dev/metropolis/pkg/event"
 	"source.monogon.dev/metropolis/pkg/event/memory"
 	"source.monogon.dev/metropolis/pkg/supervisor"
 	"source.monogon.dev/metropolis/pkg/sysctl"
@@ -70,7 +69,8 @@
 	natTable            *nftables.Table
 	natPostroutingChain *nftables.Chain
 
-	status memory.Value[*Status]
+	// Status is the current status of the network as seen by the service.
+	Status memory.Value[*Status]
 }
 
 // New instantiates a new network service. If autoconfiguration is desired,
@@ -95,21 +95,6 @@
 	DNSServers      dhcp4c.DNSServers
 }
 
-// Watch returns a Watcher, which can be used by consumers of the network
-// Service to retrieve the current network status.
-// Close must be called on the Watcher when it is not used anymore in order to
-// prevent goroutine leaks.
-func (s *Service) Watch() event.Watcher[*Status] {
-	return s.status.Watch()
-}
-
-// Value returns the underlying event.Value for the network service status.
-//
-// TODO(q3k): just expose s.status directly and remove the Watch and Event methods.
-func (s *Service) Value() event.Value[*Status] {
-	return &s.status
-}
-
 // ConfigureDNS sets a DNS ExtraDirective on the built-in DNS server of the
 // network Service. See //metropolis/node/core/network/dns for more
 // information.
@@ -161,7 +146,7 @@
 		s.ConfigureDNS(dns.NewUpstreamDirective(newServers))
 	}
 	// Notify status waiters.
-	s.status.Set(&Status{
+	s.Status.Set(&Status{
 		ExternalAddress: new.AssignedIP,
 		DNSServers:      new.DNSServers(),
 	})
diff --git a/metropolis/node/core/network/static.go b/metropolis/node/core/network/static.go
index 31ecabc..5cec110 100644
--- a/metropolis/node/core/network/static.go
+++ b/metropolis/node/core/network/static.go
@@ -174,7 +174,7 @@
 				}
 			}
 		}
-		s.status.Set(&Status{
+		s.Status.Set(&Status{
 			ExternalAddress: selectedAddr,
 			DNSServers:      nsIPList,
 		})
diff --git a/metropolis/node/core/roleserve/worker_clusternet.go b/metropolis/node/core/roleserve/worker_clusternet.go
index 5ae6877..1eb5649 100644
--- a/metropolis/node/core/roleserve/worker_clusternet.go
+++ b/metropolis/node/core/roleserve/worker_clusternet.go
@@ -42,7 +42,7 @@
 		},
 		DataDirectory:             &s.storageRoot.Data.Kubernetes.ClusterNetworking,
 		LocalKubernetesPodNetwork: s.podNetwork,
-		Network:                   s.network.Value(),
+		Network:                   &s.network.Status,
 	}
 	return svc.Run(ctx)
 }
diff --git a/metropolis/node/core/roleserve/worker_heartbeat.go b/metropolis/node/core/roleserve/worker_heartbeat.go
index f79951c..c11c5d0 100644
--- a/metropolis/node/core/roleserve/worker_heartbeat.go
+++ b/metropolis/node/core/roleserve/worker_heartbeat.go
@@ -23,7 +23,7 @@
 }
 
 func (s *workerHeartbeat) run(ctx context.Context) error {
-	nw := s.network.Watch()
+	nw := s.network.Status.Watch()
 	defer nw.Close()
 
 	w := s.curatorConnection.Watch()
diff --git a/metropolis/node/core/roleserve/worker_statuspush.go b/metropolis/node/core/roleserve/worker_statuspush.go
index e2a5cb9..63ab227 100644
--- a/metropolis/node/core/roleserve/worker_statuspush.go
+++ b/metropolis/node/core/roleserve/worker_statuspush.go
@@ -117,7 +117,7 @@
 	// runnable could get stuck.
 
 	supervisor.Run(ctx, "map-network", func(ctx context.Context) error {
-		nw := s.network.Watch()
+		nw := s.network.Status.Watch()
 		defer nw.Close()
 
 		supervisor.Signal(ctx, supervisor.SignalHealthy)
