sub new { my $class = shift; my %args = @_; my $self = {}; # validate the args # do stuff to populate $self bless $self, $class; return $self; }