package MyClass;
use Moose;
use SpecialAttributes;

has 'argument_values' => (
	isa     => 'HashRef',
	traits  => [qw/Hash/],
	builder => '_build_argument_values',
	handles => {
		'get_argument_value' => 'get',
		'has_argument_value' => 'exists'
	}
);

sub _build_argument_values {
	my ($self) = @_;
	my %values = (
			apple => 'A',
			mango => 'M',
			banana => 'B',
			);

	return \%values;
}
__PACKAGE__->meta()->make_immutable();
no Moose;
1;

package SubClass;
use Moose;
extends 'MyClass';

for (qw/apple mango banana/) {
	has $_ => (
			is     => 'rw',
			isa    => 'Str',
			traits => [qw/SpecialAttributes/],
		  );
}

1;

package main;
my $c=SubClass->new;
print $c->apple,"\n";

