diff --git a/event/logging/egokit/gokit_test.go b/event/logging/egokit/gokit_test.go
index eac1008..cb82926 100644
--- a/event/logging/egokit/gokit_test.go
+++ b/event/logging/egokit/gokit_test.go
@@ -4,7 +4,7 @@
 
 // +build !disable_events
 
-package egokit
+package egokit_test
 
 import (
 	"context"
@@ -13,11 +13,12 @@
 	"github.com/google/go-cmp/cmp"
 	"golang.org/x/exp/event"
 	"golang.org/x/exp/event/keys"
+	"golang.org/x/exp/event/logging/egokit"
 	"golang.org/x/exp/event/logging/internal"
 )
 
 func Test(t *testing.T) {
-	log := NewLogger()
+	log := egokit.NewLogger()
 	e, h := internal.NewTestExporter()
 	ctx := event.WithExporter(context.Background(), e)
 	log.Log(ctx, "msg", "mess", "level", 1, "name", "n/m", "traceID", 17, "resource", "R")
diff --git a/event/logging/elogr/logr_test.go b/event/logging/elogr/logr_test.go
index 183a15f..36e3693 100644
--- a/event/logging/elogr/logr_test.go
+++ b/event/logging/elogr/logr_test.go
@@ -4,7 +4,7 @@
 
 // +build !disable_events
 
-package elogr
+package elogr_test
 
 import (
 	"context"
@@ -13,12 +13,13 @@
 	"github.com/google/go-cmp/cmp"
 	"golang.org/x/exp/event"
 	"golang.org/x/exp/event/keys"
+	"golang.org/x/exp/event/logging/elogr"
 	"golang.org/x/exp/event/logging/internal"
 )
 
 func TestInfo(t *testing.T) {
 	e, th := internal.NewTestExporter()
-	log := NewLogger(event.WithExporter(context.Background(), e), "/").WithName("n").V(3)
+	log := elogr.NewLogger(event.WithExporter(context.Background(), e), "/").WithName("n").V(3)
 	log = log.WithName("m")
 	log.Info("mess", "traceID", 17, "resource", "R")
 	want := &event.Event{
diff --git a/event/logging/elogrus/logrus_test.go b/event/logging/elogrus/logrus_test.go
index 9ffe5bd..7558ec1 100644
--- a/event/logging/elogrus/logrus_test.go
+++ b/event/logging/elogrus/logrus_test.go
@@ -4,7 +4,7 @@
 
 // +build !disable_events
 
-package elogrus
+package elogrus_test
 
 import (
 	"context"
@@ -16,13 +16,14 @@
 	"github.com/sirupsen/logrus"
 	"golang.org/x/exp/event"
 	"golang.org/x/exp/event/keys"
+	"golang.org/x/exp/event/logging/elogrus"
 	"golang.org/x/exp/event/logging/internal"
 )
 
 func Test(t *testing.T) {
 	e, th := internal.NewTestExporter()
 	log := logrus.New()
-	log.SetFormatter(NewFormatter())
+	log.SetFormatter(elogrus.NewFormatter())
 	log.SetOutput(io.Discard)
 	// adding WithContext panics, because event.FromContext assumes
 	ctx := event.WithExporter(context.Background(), e)
diff --git a/event/logging/ezap/zap_test.go b/event/logging/ezap/zap_test.go
index 37f7e1d..980180c 100644
--- a/event/logging/ezap/zap_test.go
+++ b/event/logging/ezap/zap_test.go
@@ -4,7 +4,7 @@
 
 // +build !disable_events
 
-package ezap
+package ezap_test
 
 import (
 	"context"
@@ -14,13 +14,14 @@
 	"go.uber.org/zap"
 	"golang.org/x/exp/event"
 	"golang.org/x/exp/event/keys"
+	"golang.org/x/exp/event/logging/ezap"
 	"golang.org/x/exp/event/logging/internal"
 )
 
 func Test(t *testing.T) {
 	e, h := internal.NewTestExporter()
 	ctx := event.WithExporter(context.Background(), e)
-	log := zap.New(NewCore(ctx), zap.Fields(zap.Int("traceID", 17), zap.String("resource", "R")))
+	log := zap.New(ezap.NewCore(ctx), zap.Fields(zap.Int("traceID", 17), zap.String("resource", "R")))
 	log = log.Named("n/m")
 	log.Info("mess", zap.Float64("pi", 3.14))
 	want := &event.Event{
diff --git a/event/otel/trace_test.go b/event/otel/trace_test.go
index 0f808b5..a7eea9c 100644
--- a/event/otel/trace_test.go
+++ b/event/otel/trace_test.go
@@ -4,7 +4,7 @@
 
 // +build !disable_events
 
-package otel
+package otel_test
 
 import (
 	"bytes"
@@ -16,6 +16,7 @@
 	sdktrace "go.opentelemetry.io/otel/sdk/trace"
 	"go.opentelemetry.io/otel/trace"
 	"golang.org/x/exp/event"
+	"golang.org/x/exp/event/otel"
 )
 
 func TestTrace(t *testing.T) {
@@ -110,7 +111,7 @@
 	stp := sdktrace.NewTracerProvider(sdktrace.WithSpanProcessor(bsp))
 	tracer := stp.Tracer("")
 
-	ee := event.NewExporter(NewTraceHandler(tracer))
+	ee := event.NewExporter(otel.NewTraceHandler(tracer))
 	ctx = event.WithExporter(ctx, ee)
 	return ctx, tracer, func() string { stp.Shutdown(ctx); return e.got }
 }
