sub new { my $class = shift; my ($params) = @_; my $self = bless {}, $class; $self->{engine} = $params->{engine}; Scalar::Util::weaken( $self->{engine} ); return $self; }