diff --git a/src/passage_pd.erl b/src/passage_pd.erl
index 119444d..0958adc 100644
--- a/src/passage_pd.erl
+++ b/src/passage_pd.erl
@@ -179,7 +179,7 @@
 -spec set_tags(Tags) -> ok when
       Tags :: passage:tags() | fun (() -> passage:tags()).
 set_tags(Tags) ->
-    update_current_span(fun (Span) -> passage_span:set_tags(Span, Tags) end).
+    update_current_span(fun (Span) -> passage:set_tags(Span, Tags) end).
 
 %% @doc Sets the baggage items of the current span to `Items'.
 %%
@@ -189,7 +189,7 @@
 -spec set_baggage_items(Items) -> ok when
       Items :: passage:baggage_items() | fun (() -> passage:baggage_items()).
 set_baggage_items(Items) ->
-    update_current_span(fun (Span) -> passage_span:set_baggage_items(Span, Items) end).
+    update_current_span(fun (Span) -> passage:set_baggage_items(Span, Items) end).
 
 %% @doc Returns the baggage items carried by the current span.
 -spec get_baggage_items() -> passage:baggage_items().
diff --git a/test/passage_tests.erl b/test/passage_tests.erl
index 49d7965..d53c70b 100644
--- a/test/passage_tests.erl
+++ b/test/passage_tests.erl
@@ -66,6 +66,19 @@
                ?assertEqual(#{foo => bar, baz => qux, 111 => 333},
                             passage_span:get_tags(FinishedSpan))
        end},
+      {"tag function",
+       fun () ->
+               ok = start_test_tracer(),
+               Span0 =
+                   passage:start_span(
+                     root, [{tracer, test_tracer}, {tags, #{foo => bar, 111 => 222}}]),
+               Span1 = passage:set_tags(Span0, fun () -> #{baz => qux, 111 => 333} end),
+
+               passage:finish_span(Span1),
+               [FinishedSpan] = finished_spans(),
+               ?assertEqual(#{foo => bar, baz => qux, 111 => 333},
+                            passage_span:get_tags(FinishedSpan))
+       end},
       {"baggage item",
        fun () ->
                ok = start_test_tracer(),
@@ -80,6 +93,22 @@
                ?assertEqual(#{<<"foo">> => <<"bar">>, <<"baz">> => <<"qux">>},
                             passage:get_baggage_items(ChildSpan1))
        end},
+      {"baggage item function",
+       fun () ->
+               ok = start_test_tracer(),
+               RootSpan0 = passage:start_span(root, [{tracer, test_tracer}]),
+               RootSpan1 = passage:set_baggage_items(
+                             RootSpan0, fun () -> #{<<"foo">> => <<"bar">>} end),
+
+               ChildSpan0 = passage:start_span(child, [{child_of, RootSpan1}]),
+               ?assertEqual(#{<<"foo">> => <<"bar">>},
+                            passage:get_baggage_items(ChildSpan0)),
+
+               ChildSpan1 = passage:set_baggage_items(
+                              ChildSpan0, fun () -> #{<<"baz">> => <<"qux">>} end),
+               ?assertEqual(#{<<"foo">> => <<"bar">>, <<"baz">> => <<"qux">>},
+                            passage:get_baggage_items(ChildSpan1))
+       end},
       {"log",
        fun () ->
                ok = start_test_tracer(),
@@ -93,6 +122,20 @@
                              {#{hello := world}, {1, 2, 3}}],
                             passage_span:get_logs(FinishedSpan))
        end},
+      {"log function",
+       fun () ->
+               ok = start_test_tracer(),
+               Span0 = passage:start_span(root, [{tracer, test_tracer}]),
+               Span1 = passage:log(Span0, fun () -> #{hello => world} end,
+                                   [{time, {1, 2, 3}}]),
+               Span2 = passage:log(Span1, fun () -> #{foo => bar} end),
+
+               passage:finish_span(Span2),
+               [FinishedSpan] = finished_spans(),
+               ?assertMatch([{#{foo := bar}, {_, _, _}},
+                             {#{hello := world}, {1, 2, 3}}],
+                            passage_span:get_logs(FinishedSpan))
+       end},
       {"error log",
        fun () ->
                ok = start_test_tracer(),
