sub singleton { $singleton ||= shift->new(@_) }