sub new { bless {}, ref($_[0]) || $_[0]; }