#only there for the validator below which do stuff after build. sub BUILD {} has '_creative_validators' => ( is => 'ro', default => sub { [] }, ); sub register_validator { my ($class, $sub) = @_; $class->can('after')->(BUILD => sub { my ($self) = @_; push @{$self->_creative_validators}, $sub; }); }