##
multimethod process (Foo $thing, String $data) { ... }
multimethod process (Bar $thing, String $data) { ... }
multimethod process (Baz $thing, String $data) { ... }
####
sub name {
my ($self, $name) = @_;
$self->{name} = $name if $name;
return $self->{name};
}