sub new { my($class, $c, $args) = @_; $args ||= {}; my $self = bless { %{ $args }, _class_component_plugins => [], _class_component_components => $default_components->{$c}, _class_component_methods => {}, _class_component_hooks => {}, _class_component_config => $args->{config} || {}, _class_component_default_plugins => $default_plugins->{$c}, }, $c; $self->load_plugins(@{ $default_plugins->{$c} }, @{ $args->{load_plugins} || [] }); $self; }