diff --git a/README.md b/README.md
index ca31847..115437b 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,7 @@
 
 -compile({parse_transform, passage_transform}). % Enables `passage_transform'
 
--passage_trace([{tags, #{foo => bar}}, {eval_tags, #{size => "byte_size(Bin)"}}]).
+-passage_trace([{tags, #{foo => "bar", size => "byte_size(Bin)"}}]).
 -spec foo(binary()) -> binary().
 foo(Bin) ->
   <<"foo", Bin/binary>>.
@@ -76,14 +76,18 @@
 ```erlang
 foo(Bin) ->
   try
-    passage_pd:start_span(
-      'example:foo/1',
-      [{tags, #{'location.pid' => self(),
+    passage_pd:start_span('example:foo/1', []),
+    passage_pd:set_tags(
+        fun () ->
+            #{
+                'location.pid' => self(),
                 'location.application' => example,
                 'location.module' => example,
-                'location.line' => 7,
-                foo => bar}}]),
-    passage_pd:set_tags(#{process => self(), size => byte_size(Bin)}),
+                'location.line' => 7
+                foo => bar,
+                size => byte_size(Bin)
+             }
+        end),
     <<"foo", Bin/binary>>
   after
     passage_pd:finish_span()
diff --git a/src/passage_example.erl b/src/passage_example.erl
index d185e7c..e165f7d 100644
--- a/src/passage_example.erl
+++ b/src/passage_example.erl
@@ -13,7 +13,7 @@
 %%------------------------------------------------------------------------------
 %% Exported Functions
 %%------------------------------------------------------------------------------
--passage_trace([{tags, #{kind => greeting}}, {eval_tags, #{name => "Name"}}]).
+-passage_trace([{tags, #{kind => "greeting", name => "Name"}}]).
 -spec hello(atom()) -> ok.
 hello(Name) ->
     io:format("Hello ~s\n", [Name]),
diff --git a/src/passage_transform.erl b/src/passage_transform.erl
index fc10140..2889b2f 100644
--- a/src/passage_transform.erl
+++ b/src/passage_transform.erl
@@ -13,7 +13,7 @@
 %%
 %% -compile({parse_transform, passage_transform}). % Enables `passage_transform'
 %%
-%% -passage_trace([{tags, #{foo => bar}}, {eval_tags, #{size => "byte_size(Bin)"}}]).
+%% -passage_trace([{tags, #{foo => "bar", size => "byte_size(Bin)"}}]).
 %% -spec foo(binary()) -> binary().
 %% foo(Bin) ->
 %%   <<"foo", Bin/binary>>.
@@ -24,14 +24,18 @@
 %% ```
 %% foo(Bin) ->
 %%   try
-%%     passage_pd:start_span(
-%%       'example:foo/1',
-%%       [{tags, #{'location.pid' => self(),
+%%     passage_pd:start_span('example:foo/1', []),
+%%     passage_pd:set_tags(
+%%         fun () ->
+%%             #{
+%%                 'location.pid' => self(),
 %%                 'location.application' => example,
 %%                 'location.module' => example,
-%%                 'location.line' => 7,
-%%                 foo => bar}}]),
-%%     passage_pd:set_tags(#{process => self(), size => byte_size(Bin)}),
+%%                 'location.line' => 7
+%%                 foo => bar,
+%%                 size => byte_size(Bin)
+%%              }
+%%         end),
 %%     <<"foo", Bin/binary>>
 %%   after
 %%     passage_pd:finish_span()
@@ -59,16 +63,14 @@
 %% Exported Types
 %%------------------------------------------------------------------------------
 -type passage_trace_option() :: {tracer, passage:tracer_id()} |
-                                {tags, passage:tags()} |
-                                {eval_tags, #{passage:tag_name() => expr_string()}} |
+                                {tags, #{passage:tag_name() => expr_string()}} |
                                 {child_of, expr_string()} |
                                 {follows_from, expr_string()} |
                                 {error_if, expr_string()} |
                                 error_if_exception.
 %% <ul>
 %% <li><b>tracer</b>: See {@link passage:start_span/2}</li>
-%% <li><b>tags</b>: See {@link passage:start_span/2}</li>
-%% <li><b>eval_tags</b>: This is the same as `tags' except the values are dynamically evaluated in the transforming phase.</li>
+%% <li><b>tags</b>: This is the same as {@type passage:tags()} except the values are dynamically evaluated in the transforming phase.</li>
 %% <li><b>child_of</b>: See {@link passage:start_span/2}</li>
 %% <li><b>follows_from</b>: See {@link passage:start_span/2}</li>
 %% <li><b>error_if</b>
@@ -144,8 +146,7 @@
           tracer = error  :: {ok, passage:tracer_id()} | error,
           child_of        :: expr_string() | undefined,
           follows_from    :: expr_string() | undefined,
-          tags      = #{} :: passage:tags(),
-          eval_tags = #{} :: #{passage:tag_name() => expr_string()},
+          tags = #{}      :: #{passage:tag_name() => expr_string()},
           error_if        :: expr_string() | undefined,
           error_if_exception = false :: boolean()
         }).
@@ -171,13 +172,6 @@
     {_, ResultFroms} =
         lists:foldl(
           fun ({attribute, _, passage_trace, Options}, {State0, Acc}) ->
-                  Tags =
-                      maps:merge(
-                        proplists:get_value(tags, Options, #{}),
-                        #{
-                           'location.application' => State0#state.application,
-                           'location.module' => State0#state.module
-                         }),
                   Tracer =
                       case lists:keyfind(tracer, 1, Options) of
                           false   -> error;
@@ -186,18 +180,16 @@
                   State1 =
                       State0#state{
                         trace = true,
-
                         tracer = Tracer,
                         child_of = proplists:get_value(child_of, Options),
                         follows_from = proplists:get_value(follows_from, Options),
-                        tags = Tags,
-                        eval_tags = proplists:get_value(eval_tags, Options, #{}),
+                        tags = proplists:get_value(tags, Options, #{}),
                         error_if = proplists:get_value(error_if, Options),
                         error_if_exception =
                             proplists:is_defined(error_if_exception, Options)
                        },
                   {State1, Acc};
-              ({function, _, Name, _, Clauses} = Form, {State0 = #state{trace = true}, Acc}) ->
+              ({function, _, Name, _,Clauses} = Form, {State0 = #state{trace = true}, Acc}) ->
                   State1 = State0#state{function = Name},
                   NewForm = setelement(5, Form, walk_clauses(Clauses, State1)),
                   {State1#state{trace = false}, [NewForm | Acc]};
@@ -216,13 +208,10 @@
                                  [State#state.module, State#state.function, length(Args)]),
              OperationName = {atom, Line, binary_to_atom(list_to_binary(Mfa), utf8)},
              StartOptions0 =
-                 erl_parse:abstract(
-                   [{tags, maps:merge(State#state.tags, #{line => Line})} |
-                    case State#state.tracer of
-                        error        -> [];
-                        {ok, Tracer} -> [{tracer, Tracer}]
-                    end],
-                   [{'location.line', Line}]),
+                 case State#state.tracer of
+                     error        -> erl_parse:abstract([]);
+                     {ok, Tracer} -> erl_parse:abstract([{tracer, Tracer}])
+                 end,
              StartOptions1 =
                  case State#state.child_of of
                      undefined -> StartOptions0;
@@ -244,16 +233,21 @@
                  make_call_remote(
                    Line, passage_pd, 'start_span', [OperationName, StartOptions2]),
 
-             EvalTags =
+             Tags =
                  {map, Line,
                   [
-                   ?MAP_FIELD(Line, 'location.pid', make_call_remote(Line, erlang, self, [])) |
+                   ?MAP_FIELD(Line, 'location.pid',
+                              make_call_remote(Line, erlang, self, [])),
+                   ?MAP_FIELD(Line, 'location.application',
+                              {atom, Line, State#state.application}),
+                   ?MAP_FIELD(Line, 'location.module', {atom, Line, State#state.module}),
+                   ?MAP_FIELD(Line, 'location.line', {integer, Line, Line}) |
                    [begin
                         ?MAP_FIELD(Line, Key, parse_expr_string(Line, ValueExprStr, State))
-                    end || {Key, ValueExprStr} <- maps:to_list(State#state.eval_tags)]
+                    end || {Key, ValueExprStr} <- maps:to_list(State#state.tags)]
                   ]},
              SetTags =
-                 make_call_remote(Line, passage_pd, 'set_tags', [EvalTags]),
+                 make_call_remote(Line, passage_pd, 'set_tags', [make_fun(Line, [Tags])]),
              Body1 =
                  case State#state.error_if of
                      undefined  -> Body0;
@@ -384,3 +378,8 @@
     Name =
         list_to_atom(Prefix ++ "_" ++ integer_to_list(Line) ++ "_" ++ integer_to_list(Seq)),
     {var, Line, Name}.
+
+-spec make_fun(line(), [expr()]) -> expr().
+make_fun(Line, Body) ->
+    {'fun', Line,
+     {clauses, [{clause, Line, [], [], Body}]}}.
