##
sub add {
my $self = shift;
my $thing = shift;
return undef if $self->contains($thing);
return $self->SUPER::add($thing);
}
####
sub add {
my $self = shift;
my $thing = shift;
my $collection = $self->{collection};
return undef if $collection->contains($thing);
return $collection->add($thing);
}
####
sub AUTOLOAD {
my $self = shift;
my $func = our $AUTOLOAD;
$func =~ s/.*:://;
return $self->{collection}->$func;
}