It's time to review the API, check how Moose can improve it, remove the redundancies and make it slim.
One more piece of food for thought: the thing that always bothered me is the first parameter every action receives:
I've never seen it used. I even was never sure if that thing is a controller object or if it is the controller class (i.e. if the actions are class or object methods), is it ever explained in the docs? Now I tested it and the output was:
so at least that action was an object method. I've reviewed the whole Catalyst Tutorial and, even though this parameter is passed to every action example there it is used in only a couple places (as
$self->roles). This does not seem like the best Huffman coding.