Added some life cycle functionality to abstract controllers