why use inheritance when we can use composition??!
use namespace::autoclean instead of clean
convert all uses of Test::Exception to Test::Fatal