Refactoring base controller

I need to rewrite the method `runAction` and realized so many to be repeated.
I think my changes make sense, all events are called out from where they should.

Thanks.