stop stomping on the global namespace with $::CLASS and $::SELF and now use ${^SELF} and ${^CLASS} instead