process_directive

walk_directives

Invoke with walk { wanted => sub { $self->directives(@_) } }, $self->other_thing;

Acts funny with $self->some_other_thing is not a reference

update_directive

Take the values from walk_directive and update the directive